The script file is c.txt
sss1.cpp
#define INITGUID
#include <windows.h>
#include <olectl.h>
#include "olescrpt.h"
#include "vbsguids.h"
#include "helpers.h"
#include "sss.h"
sss.odl
[uuid(00000001-669C-11cf-A92B-00AA00688A2F),version(1.0)]
library sss
{
importlib("stdole32.tlb");
coclass ABCD;
interface IABCD;
dispinterface IABCDEvents;
[uuid(00000002-669C-11cf-A92B-00AA00688A2F),odl,dual]
interface IABCD :IDispatch
{
[id(1),propget] HRESULT Application([out,retval] IABCD ** ppRet);
[id(2),propget] HRESULT Parent([out,retval] IABCD ** ppRet);
[id(6),propput] HRESULT Image([in] int val);
[id(7),propget] HRESULT xyz([out,retval] int *val);
[id(41),propget,source] HRESULT BubbleClass([out,retval] IABCD **pRet);
}
[uuid(00000003-669C-11cf-A92B-00AA00688A2F)]
dispinterface IABCDEvents
{
properties:
methods:
[id(9)] void NewABCD();
[id(10)] void Init();
}
[uuid(00000004-669C-11cf-A92B-00AA00688A2F)]
coclass ABCD
{
[default]interface IABCD;
[default,source]dispinterface IABCDEvents;
};
}
sss.rc
1 typelib "sss.tlb"
c.txt
OPTION EXPLICIT
Sub ABCD_NewABCD()
BubbleClass.Image=60
BubbleClass.Image=BubbleClass.xyz
End Sub
Sub ABCD_Init ()
BubbleClass.Image=100
End Sub
sss.h
/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: sss */
#ifndef _sss_H_
#define _sss_H_
DEFINE_GUID(LIBID_sss,0x00000001L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);
#ifdef __cplusplus
class ABCD;
#endif
interface IABCD;
interface IABCDEvents;
DEFINE_GUID(IID_IABCD,0x00000002L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);
/* Definition of interface: IABCD */
#undef INTERFACE
#define INTERFACE IABCD
DECLARE_INTERFACE_(IABCD, IDispatch)
{
#ifndef NO_BASEINTERFACE_FUNCS
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDispatch methods */
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
STDMETHOD(GetTypeInfo)(
THIS_
UINT itinfo,
LCID lcid,
ITypeInfo FAR* FAR* pptinfo) PURE;
STDMETHOD(GetIDsOfNames)(
THIS_
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgdispid) PURE;
STDMETHOD(Invoke)(
THIS_
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pdispparams,
VARIANT FAR* pvarResult,
EXCEPINFO FAR* pexcepinfo,
UINT FAR* puArgErr) PURE;
#endif
/* IABCD methods */
STDMETHOD(get_Application)(THIS_ IABCD FAR* FAR* ppRet) PURE;
STDMETHOD(get_Parent)(THIS_ IABCD FAR* FAR* ppRet) PURE;
STDMETHOD(put_Image)(THIS_ int val) PURE;
STDMETHOD(get_xyz)(THIS_ int FAR* val) PURE;
STDMETHOD(get_BubbleClass)(THIS_ IABCD FAR* FAR* pRet) PURE;
};
DEFINE_GUID(DIID_IABCDEvents,0x00000003L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);
/* Definition of dispatch interface: IABCDEvents */
#undef INTERFACE
#define INTERFACE IABCDEvents
DECLARE_INTERFACE_(IABCDEvents, IDispatch)
{
#ifndef NO_BASEINTERFACE_FUNCS
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDispatch methods */
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
STDMETHOD(GetTypeInfo)(
THIS_
UINT itinfo,
LCID lcid,
ITypeInfo FAR* FAR* pptinfo) PURE;
STDMETHOD(GetIDsOfNames)(
THIS_
REFIID riid,
OLECHAR FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgdispid) PURE;
STDMETHOD(Invoke)(
THIS_
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS FAR* pdispparams,
VARIANT FAR* pvarResult,
EXCEPINFO FAR* pexcepinfo,
UINT FAR* puArgErr) PURE;
#endif
/* IABCDEvents methods:
void NewABCD(void);
void Init(void);
*/
};
DEFINE_GUID(CLSID_ABCD,0x00000004L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);
#ifdef __cplusplus
class ABCD;
#endif
#endif
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
IOleScript *m_pIOleScript;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("11");return 0; }
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("13");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("14");return 0; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** )
{abc("15");return 0; }
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
14..
113..
m_pIOleScript->SetScriptSite...h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("11");return 0; }
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("13");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** )
{abc("15");return 0; }
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("11");return 0; }
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("13");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** )
{abc("15");return 0; }
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
15..
m_pIOleScript->AddNamedItem...h..80004002..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("11");return 0; }
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScriptSite::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScriptSite::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
11..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..80004002..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..80004002..
end....
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIDispatch :public IDispatch
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
};
CIDispatch *m_pIDispatch;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIDispatch = new CIDispatch;
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIDispatch;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100];
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h=m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown,
struct ITypeInfo ** m_pITypeInfo)
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,
struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
CIOleScriptSite::Release..
43..
113..
m_pIOleScript->SetScriptState..h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("41");return 0;}
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
41..
error.....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("47");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("113");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
abc("CIABCD::IID_IProvideClassInfo");
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
113..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
42..
42..
42..
42..
42..
42..
42..
47..
47..
47..
CIOleScriptSite::Release..
43..
113..
m_pIOleScript->SetScriptState..h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("Invoke");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIProvideClassInfo :public IProvideClassInfo
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("51");return 0; }
unsigned long __stdcall AddRef(void)
{abc("52");return 0; }
unsigned long __stdcall Release(void)
{abc("53");return 0; }
long __stdcall GetClassInfo(struct ITypeInfo ** )
{abc("54");return 0; }
};
CIProvideClassInfo *m_pIProvideClassInfo;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
{
abc("CIABCD::IID_IProvideClassInfo");
*ppv = m_pIProvideClassInfo;
return 0;
}
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
54..
error.....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *)
{abc("Invoke");return 0;}
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIProvideClassInfo :public IProvideClassInfo
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("51");return 0; }
unsigned long __stdcall AddRef(void)
{abc("52");return 0; }
unsigned long __stdcall Release(void)
{abc("53");return 0; }
long __stdcall GetClassInfo(struct ITypeInfo ** );
};
CIProvideClassInfo *m_pIProvideClassInfo;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
{
abc("CIABCD::IID_IProvideClassInfo");
*ppv = m_pIProvideClassInfo;
return 0;
}
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
long __stdcall CIProvideClassInfo::GetClassInfo(struct ITypeInfo **m_pITypeInfo )
{
abc("CIProvideClassInfo::GetClassInfo");
*m_pITypeInfo = m_pITypeInfoCls;
(*m_pITypeInfo)->AddRef();
return 0;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
CIProvideClassInfo::GetClassInfo..
53..
42..
42..
42..
42..
42..
42..
42..
42..
Invoke..
Invoke..
Invoke..
CIOleScriptSite::Release..
43..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
OnStateChange..
m_pIOleScript->SetScriptState..h..00000000..
end....
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *);
long __stdcall get_Application(struct IABCD ** ){abc("48");return 0;}
long __stdcall get_Parent(struct IABCD ** ){abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIProvideClassInfo :public IProvideClassInfo
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("51");return 0; }
unsigned long __stdcall AddRef(void)
{abc("52");return 0; }
unsigned long __stdcall Release(void)
{abc("53");return 0; }
long __stdcall GetClassInfo(struct ITypeInfo ** );
};
CIProvideClassInfo *m_pIProvideClassInfo;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
{
abc("CIABCD::IID_IProvideClassInfo");
*ppv = m_pIProvideClassInfo;
return 0;
}
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
long __stdcall CIProvideClassInfo::GetClassInfo(struct ITypeInfo **m_pITypeInfo )
{
abc("CIProvideClassInfo::GetClassInfo");
*m_pITypeInfo = m_pITypeInfoCls;
(*m_pITypeInfo)->AddRef();
return 0;
}
long __stdcall CIABCD::Invoke(long dispid,const struct _GUID & riid,
unsigned long lciid,unsigned short wFlags, struct tagDISPPARAMS * pdispparams,
struct tagVARIANT * pvarResult,struct tagEXCEPINFO * pexcepinfo,
unsigned int * Err)
{ sprintf(aa,"Invoke..dispid....%ld",dispid);
abc(aa);
m_pITypeInfoIntf->Invoke(this,dispid,wFlags,pdispparams,pvarResult,
pexcepinfo,Err);
return 0;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
CIProvideClassInfo::GetClassInfo..
53..
42..
42..
42..
42..
42..
42..
42..
42..
Invoke..dispid....1..
48..
error......
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *);
long __stdcall get_Application(struct IABCD ** );
long __stdcall get_Parent(struct IABCD ** )
{abc("49");return 0;}
long __stdcall put_Image(int){abc("50");return 0;}
long __stdcall get_xyz(int *){abc("51");return 0;}
long __stdcall get_BubbleClass(struct IABCD ** ){abc("52");return 0;}
};
CIABCD *m_pIABCD;
class CIProvideClassInfo :public IProvideClassInfo
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("51");return 0; }
unsigned long __stdcall AddRef(void)
{abc("52");return 0; }
unsigned long __stdcall Release(void)
{abc("53");return 0; }
long __stdcall GetClassInfo(struct ITypeInfo ** );
};
CIProvideClassInfo *m_pIProvideClassInfo;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
{
abc("CIABCD::IID_IProvideClassInfo");
*ppv = m_pIProvideClassInfo;
return 0;
}
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
long __stdcall CIProvideClassInfo::GetClassInfo(struct ITypeInfo **m_pITypeInfo )
{
abc("CIProvideClassInfo::GetClassInfo");
*m_pITypeInfo = m_pITypeInfoCls;
(*m_pITypeInfo)->AddRef();
return 0;
}
long __stdcall CIABCD::Invoke(long dispid,const struct _GUID & riid,
unsigned long lciid,unsigned short wFlags, struct tagDISPPARAMS * pdispparams,
struct tagVARIANT * pvarResult,struct tagEXCEPINFO * pexcepinfo,
unsigned int * Err)
{ sprintf(aa,"Invoke..dispid....%ld",dispid);
abc(aa);
m_pITypeInfoIntf->Invoke(this,dispid,wFlags,pdispparams,pvarResult,
pexcepinfo,Err);
return 0;
}
long __stdcall CIABCD::get_Application(struct IABCD ** m_pIABCD)
{
*m_pIABCD = this;
abc("CIABCD::get_Application");
return 0;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
CIProvideClassInfo::GetClassInfo..
53..
42..
42..
42..
42..
42..
42..
42..
42..
Invoke..dispid....1..
CIABCD::get_Application..
42..
43..
Invoke..dispid....2..
49..
sss.cpp
#define STRICT
#include <windows.h>
#include <olectl.h>
#include "OleScrpt.h"
#include "VBSGuids.h"
#include "helpers.h"
#include <stdio.h>
#include "sss.h"
void abc(char *p)
{
FILE * fp;
fp = fopen("d:\\sss\\s.txt","a+");
fprintf(fp,"%s..\n",p);
fclose(fp);
}
class CIABCD :public IABCD
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef(void)
{abc("42");return 0;}
unsigned long __stdcall Release(void)
{abc("43");return 0;}
long __stdcall GetTypeInfoCount(unsigned int *)
{abc("44");return 0;}
long __stdcall GetTypeInfo(unsigned int,unsigned long,struct ITypeInfo ** )
{abc("45");return 0;}
long __stdcall GetIDsOfNames(const struct _GUID &,unsigned short ** ,unsigned int,unsigned long,long *)
{abc("46");return 0;}
long __stdcall Invoke(long,const struct _GUID &,unsigned long,unsigned short,
struct tagDISPPARAMS *,struct tagVARIANT *,
struct tagEXCEPINFO *,unsigned int *);
long __stdcall get_Application(struct IABCD ** );
long __stdcall get_Parent(struct IABCD ** );
long __stdcall put_Image(int);
long __stdcall get_xyz(int *);
long __stdcall get_BubbleClass(struct IABCD ** );
};
CIABCD *m_pIABCD;
class CIProvideClassInfo :public IProvideClassInfo
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("51");return 0; }
unsigned long __stdcall AddRef(void)
{abc("52");return 0; }
unsigned long __stdcall Release(void)
{abc("53");return 0; }
long __stdcall GetClassInfo(struct ITypeInfo ** );
};
CIProvideClassInfo *m_pIProvideClassInfo;
class CIOleScriptSite :public IOleScriptSite
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** );
unsigned long __stdcall AddRef()
{abc("12");return 0; }
unsigned long __stdcall Release()
{abc("CIOleScriptSite::Release");return 0; }
long __stdcall GetLCID(unsigned long *)
{abc("CIOleScript::GetLCID");return E_NOTIMPL; }
long __stdcall GetItemInfo(const unsigned short *,
unsigned long,struct IUnknown ** ,struct ITypeInfo ** );
long __stdcall GetDocVersionString(unsigned short ** )
{abc("16");return 0; }
long __stdcall RequestItems()
{abc("17");return 0; }
long __stdcall RequestTypeLibs()
{abc("18");return 0; }
long __stdcall GetComponentManager(struct IOleComponentManager ** )
{abc("19");return 0; }
long __stdcall EnableModeless(int)
{abc("111");return 0; }
long __stdcall OnScriptTerminate(const struct tagVARIANT *,const struct tagEXCEPINFO *)
{abc("112");return 0; }
long __stdcall OnStateChange(SCRIPTSTATE)
{abc("OnStateChange");return 0; }
long __stdcall OnScriptError(const struct tagEXCEPINFO *)
{abc("114");return 0; }
long __stdcall CreateItem(const unsigned short *,struct IUnknown ** )
{abc("115");return 0; }
};
IOleScript *m_pIOleScript;
IOleScriptParse *m_pIOleScriptParse;
CIOleScriptSite *m_pIOleScriptSite;
HRESULT h;
char aa[100],*bb;
FILE * ff;
HINSTANCE ii;
ITypeLib *m_pITypeLib;
ITypeInfo *m_pITypeInfoCls;
ITypeInfo *m_pITypeInfoIntf;
int _stdcall WinMain(HINSTANCE i, HINSTANCE j, LPSTR k, int l)
{
abc("start...");
ii = i;
CoInitialize(0);
h = CoCreateInstance(CLSID_VBScript,0,CLSCTX_INPROC_SERVER,
IID_IUnknown,(void **)&m_pIOleScript);
sprintf(aa,"CoCreateInstance..h..%p m_pIOleScript...%p",h,m_pIOleScript);
abc(aa);
h = m_pIOleScript->QueryInterface(IID_IOleScriptParse,(void **)&m_pIOleScriptParse);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIOleScriptParse..%p",h,m_pIOleScriptParse);
abc(aa);
IPersistStreamInit *m_pIPersistStreamInit ;
h=m_pIOleScript->QueryInterface(IID_IPersistStreamInit,(void**)&m_pIPersistStreamInit);
sprintf(aa,"m_pIOleScript->QueryInterface..h..%p..m_pIPersistStreamInit..%p",h,m_pIPersistStreamInit);
abc(aa);
m_pIPersistStreamInit->InitNew();
m_pIPersistStreamInit->Release();
m_pIABCD = new CIABCD;
m_pIOleScriptSite = new CIOleScriptSite;
h-m_pIOleScript->SetScriptSite(m_pIOleScriptSite);
sprintf(aa,"m_pIOleScript->SetScriptSite...h..%p",h);
abc(aa);
h=m_pIOleScript->AddNamedItem(L"ABCD",SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_EXISTS);
sprintf(aa,"m_pIOleScript->AddNamedItem...h..%p",h);
abc(aa);
bb = new char [1000];
ff = fopen("d:\\sss\\c.txt","r");
fread(bb,155,1,ff);
bb[155]=0;
MAKE_WIDEPTR_FROMANSI(t,bb);
h=m_pIOleScriptParse->ParseScriptText(t,L"ABCD",0,0,SCRIPTTEXT_KEEPDEFINITIONS,0,0);
sprintf(aa,"m_pIOleScriptParse->ParseScriptText..%p",h);
abc(aa);
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
abc("end..");
MessageBox(0,"end","end",0);
}
long __stdcall CIOleScriptSite::GetItemInfo(const unsigned short *a,
unsigned long b,struct IUnknown **m_pIUnknown ,struct ITypeInfo ** m_pITypeInfo )
{ abc("CIOleScriptSite::GetItemInfo");
if(b & SCRIPTINFO_IUNKNOWN)
{
abc("GetItemInfo..SCRIPTINFO_IUNKNOWN");
*m_pIUnknown = this;
}
if(b & SCRIPTINFO_ITYPEINFO)
{
abc("GetItemInfo..SCRIPTINFO_ITYPEINFO");
char dd[512];
GetModuleFileName(ii,dd,512);
sprintf(aa,"GetModuleName..dd=%s",dd);
abc(aa);
MAKE_WIDEPTR_FROMANSI(tt,dd);
LoadTypeLib(tt,&m_pITypeLib);
m_pITypeLib->GetTypeInfoOfGuid(CLSID_ABCD,&m_pITypeInfoCls);
m_pITypeLib->GetTypeInfoOfGuid(IID_IABCD,&m_pITypeInfoIntf);
*m_pITypeInfo=m_pITypeInfoCls;
}
return 0;
}
long __stdcall CIOleScriptSite::QueryInterface(REFIID riid,void **ppv )
{
abc("CIOleScriptSite::QueryInterface");
if(riid == IID_IDispatch)
{
*ppv = m_pIABCD;
abc("CIOleScriptSite::QueryInterface..IID_IDispatch");
return 0;
}
if (riid == IID_IProvideClassInfo)
{
abc("CIOleScript::QueryInterface..IID_IProvideClassInfo");
}
return E_NOINTERFACE;
}
long __stdcall CIABCD::QueryInterface(REFIID riid,void **ppv )
{ abc("CIABCD::QueryInterface");
if (riid == IID_IDispatch)
abc("CIABCD::IID_IDispatch");
if(riid == IID_IProvideClassInfo)
{
abc("CIABCD::IID_IProvideClassInfo");
*ppv = m_pIProvideClassInfo;
return 0;
}
if(riid == IID_IConnectionPointContainer)
abc("CIABCD::IID_IConnectionPointContainer");
return E_NOINTERFACE;
}
long __stdcall CIProvideClassInfo::GetClassInfo(struct ITypeInfo **m_pITypeInfo )
{
abc("CIProvideClassInfo::GetClassInfo");
*m_pITypeInfo = m_pITypeInfoCls;
(*m_pITypeInfo)->AddRef();
return 0;
}
long __stdcall CIABCD::Invoke(long dispid,const struct _GUID & riid,
unsigned long lciid,unsigned short wFlags, struct tagDISPPARAMS * pdispparams,
struct tagVARIANT * pvarResult,struct tagEXCEPINFO * pexcepinfo,
unsigned int * Err)
{ sprintf(aa,"Invoke..dispid....%ld",dispid);
abc(aa);
m_pITypeInfoIntf->Invoke(this,dispid,wFlags,pdispparams,pvarResult,
pexcepinfo,Err);
return 0;
}
long __stdcall CIABCD::get_Application(struct IABCD ** m_pIABCD)
{
*m_pIABCD = this;
abc("CIABCD::get_Application");
return 0;
}
long __stdcall CIABCD::get_Parent(struct IABCD ** m_pIABCD)
{
*m_pIABCD = this;
abc("CIABCD::get_Parent");
return 0;
}
long __stdcall CIABCD::put_Image(int val)
{
sprintf(aa,"CIABCD::put_Image..val..%d",val);
abc(aa);
return 0;
}
long __stdcall CIABCD::get_xyz(int * val)
{
*val = 4;
sprintf(aa,"CIABCD::get_xyz...%d",*val);
abc(aa);
return 0;
}
long __stdcall CIABCD::get_BubbleClass(struct IABCD ** m_pIABCD)
{
*m_pIABCD=this;
abc("CIABCD::get_BubbleClass");
return 0;
}
s.txt
start.....
CoCreateInstance..h..00000000 m_pIOleScript...00BE0078..
m_pIOleScript->QueryInterface..h..00000000..m_pIOleScriptParse..00BE007C..
m_pIOleScript->QueryInterface..h..00000000..m_pIPersistStreamInit..00BE0080..
CIOleScript::GetLCID..
OnStateChange..
m_pIOleScript->SetScriptSite...h..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
42..
42..
43..
CIOleScriptSite::Release..
m_pIOleScript->AddNamedItem...h..00000000..
m_pIOleScriptParse->ParseScriptText..00000000..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_IUNKNOWN..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::QueryInterface..IID_IDispatch..
CIOleScriptSite::QueryInterface..
CIOleScriptSite::GetItemInfo..
GetItemInfo..SCRIPTINFO_ITYPEINFO..
GetModuleName..dd=D:\SSS\RELEASE\SSS.EXE..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
CIProvideClassInfo::GetClassInfo..
53..
42..
42..
42..
42..
42..
42..
42..
42..
Invoke..dispid....1..
CIABCD::get_Application..
42..
43..
Invoke..dispid....2..
CIABCD::get_Parent..
42..
43..
Invoke..dispid....41..
CIABCD::get_BubbleClass..
42..
CIABCD::QueryInterface..
CIABCD::QueryInterface..
CIABCD::IID_IProvideClassInfo..
CIProvideClassInfo::GetClassInfo..
53..
42..
43..
CIOleScriptSite::Release..
43..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
OnStateChange..
m_pIOleScript->SetScriptState..h..00000000..
end....
ContinuedHave any suggestions, comments, ideas, cracked code, feed back ? Feel free to let us know .
Want to be in touch with still more latest technologies? Visit VIJAY MUKHI'S TECHNOLOGY CORNUCOPIA .