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 CIConnectionPoint :public IConnectionPoint
{ public:
long __stdcall QueryInterface(const struct _GUID &,void ** ){abc("71");return 0;}
unsigned long __stdcall AddRef(void){abc("72");return 0;}
unsigned long __stdcall Release(void){abc("73");return 0;}
long __stdcall GetConnectionInterface(struct _GUID *){abc("74");return 0;}
long __stdcall GetConnectionPointContainer(struct IConnectionPointContainer ** ){abc("75");return 0;}
long __stdcall Advise(struct IUnknown *,unsigned long *){abc("76");return 0;}
long __stdcall Unadvise(unsigned long){abc("77");return 0;}
long __stdcall EnumConnections(struct IEnumConnections ** ){abc("78");return 0;}
};
CIConnectionPoint *m_pIConnectionPoint;
class CIConnectionPointContainer :public IConnectionPointContainer
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("61");return 0;}
unsigned long __stdcall AddRef()
{abc("62");return 0;}
unsigned long __stdcall Release()
{abc("63");return 0;}
long __stdcall EnumConnectionPoints(struct IEnumConnectionPoints ** )
{abc("64");return 0;}
long __stdcall FindConnectionPoint(const struct _GUID &,struct IConnectionPoint ** );
};
CIConnectionPointContainer *m_pIConnectionPointContainer;
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_pIConnectionPoint = new CIConnectionPoint ;
m_pIConnectionPointContainer = new CIConnectionPointContainer ;
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");
*ppv = m_pIConnectionPointContainer;
return 0;
}
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;
}
long __stdcall CIConnectionPointContainer::FindConnectionPoint(REFIID riid,struct IConnectionPoint **m_pIConnectionPt )
{
abc("CIConnectionPointContainer::FindConnectionPoint");
*m_pIConnectionPt = m_pIConnectionPoint;
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..
CIConnectionPointContainer::FindConnectionPoint..
76..
63..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIConnectionPointContainer::FindConnectionPoint..
76..
63..
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 CIConnectionPoint :public IConnectionPoint
{ public:
long __stdcall QueryInterface(const struct _GUID &,void ** ){abc("71");return 0;}
unsigned long __stdcall AddRef(void){abc("72");return 0;}
unsigned long __stdcall Release(void){abc("73");return 0;}
long __stdcall GetConnectionInterface(struct _GUID *){abc("74");return 0;}
long __stdcall GetConnectionPointContainer(struct IConnectionPointContainer ** ){abc("75");return 0;}
long __stdcall Advise(struct IUnknown *,unsigned long *);
long __stdcall Unadvise(unsigned long){abc("77");return 0;}
long __stdcall EnumConnections(struct IEnumConnections ** ){abc("78");return 0;}
};
CIConnectionPoint *m_pIConnectionPoint;
class CIConnectionPointContainer :public IConnectionPointContainer
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("61");return 0;}
unsigned long __stdcall AddRef()
{abc("62");return 0;}
unsigned long __stdcall Release()
{abc("63");return 0;}
long __stdcall EnumConnectionPoints(struct IEnumConnectionPoints ** )
{abc("64");return 0;}
long __stdcall FindConnectionPoint(const struct _GUID &,struct IConnectionPoint ** );
};
CIConnectionPointContainer *m_pIConnectionPointContainer;
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;
IDispatch *m_pIDispatch;
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_pIConnectionPoint = new CIConnectionPoint ;
m_pIConnectionPointContainer = new CIConnectionPointContainer ;
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");
*ppv = m_pIConnectionPointContainer;
return 0;
}
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;
}
long __stdcall CIConnectionPointContainer::FindConnectionPoint(REFIID riid,struct IConnectionPoint **m_pIConnectionPt )
{
abc("CIConnectionPointContainer::FindConnectionPoint");
*m_pIConnectionPt = m_pIConnectionPoint;
return 0;
}
long __stdcall CIConnectionPoint ::Advise(struct IUnknown *m_pIUnknown,unsigned long *c)
{
abc("CIConnectionPoint ::Advise");
m_pIUnknown->QueryInterface(DIID_IABCDEvents,(void**)&m_pIDispatch);
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..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
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 CIConnectionPoint :public IConnectionPoint
{ public:
long __stdcall QueryInterface(const struct _GUID &,void ** ){abc("71");return 0;}
unsigned long __stdcall AddRef(void){abc("72");return 0;}
unsigned long __stdcall Release(void){abc("73");return 0;}
long __stdcall GetConnectionInterface(struct _GUID *){abc("74");return 0;}
long __stdcall GetConnectionPointContainer(struct IConnectionPointContainer ** ){abc("75");return 0;}
long __stdcall Advise(struct IUnknown *,unsigned long *);
long __stdcall Unadvise(unsigned long){abc("77");return 0;}
long __stdcall EnumConnections(struct IEnumConnections ** ){abc("78");return 0;}
};
CIConnectionPoint *m_pIConnectionPoint;
class CIConnectionPointContainer :public IConnectionPointContainer
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("61");return 0;}
unsigned long __stdcall AddRef()
{abc("62");return 0;}
unsigned long __stdcall Release()
{abc("63");return 0;}
long __stdcall EnumConnectionPoints(struct IEnumConnectionPoints ** )
{abc("64");return 0;}
long __stdcall FindConnectionPoint(const struct _GUID &,struct IConnectionPoint ** );
};
CIConnectionPointContainer *m_pIConnectionPointContainer;
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; }
};
DISPPARAMS dp;
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;
IDispatch *m_pIDispatch;
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_pIConnectionPoint = new CIConnectionPoint ;
m_pIConnectionPointContainer = new CIConnectionPointContainer ;
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
h=m_pIDispatch->Invoke(9,IID_NULL,0,DISPATCH_METHOD,&dp,0,0,0);
sprintf(aa,"m_pIDispatch->Invoke.1.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");
*ppv = m_pIConnectionPointContainer;
return 0;
}
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;
}
long __stdcall CIConnectionPointContainer::FindConnectionPoint(REFIID riid,struct IConnectionPoint **m_pIConnectionPt )
{
abc("CIConnectionPointContainer::FindConnectionPoint");
*m_pIConnectionPt = m_pIConnectionPoint;
return 0;
}
long __stdcall CIConnectionPoint ::Advise(struct IUnknown *m_pIUnknown,unsigned long *c)
{
abc("CIConnectionPoint ::Advise");
m_pIUnknown->QueryInterface(DIID_IABCDEvents,(void**)&m_pIDispatch);
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..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
OnStateChange..
m_pIOleScript->SetScriptState..h..00000000..
42..
42..
46..
Invoke..dispid....9986958..
46..
Invoke..dispid....9986958..
46..
Invoke..dispid....9986958..
43..
m_pIDispatch->Invoke.1.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 CIConnectionPoint :public IConnectionPoint
{ public:
long __stdcall QueryInterface(const struct _GUID &,void ** ){abc("71");return 0;}
unsigned long __stdcall AddRef(void){abc("72");return 0;}
unsigned long __stdcall Release(void){abc("73");return 0;}
long __stdcall GetConnectionInterface(struct _GUID *){abc("74");return 0;}
long __stdcall GetConnectionPointContainer(struct IConnectionPointContainer ** ){abc("75");return 0;}
long __stdcall Advise(struct IUnknown *,unsigned long *);
long __stdcall Unadvise(unsigned long){abc("77");return 0;}
long __stdcall EnumConnections(struct IEnumConnections ** ){abc("78");return 0;}
};
CIConnectionPoint *m_pIConnectionPoint;
class CIConnectionPointContainer :public IConnectionPointContainer
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("61");return 0;}
unsigned long __stdcall AddRef()
{abc("62");return 0;}
unsigned long __stdcall Release()
{abc("63");return 0;}
long __stdcall EnumConnectionPoints(struct IEnumConnectionPoints ** )
{abc("64");return 0;}
long __stdcall FindConnectionPoint(const struct _GUID &,struct IConnectionPoint ** );
};
CIConnectionPointContainer *m_pIConnectionPointContainer;
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 *);
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; }
};
DISPPARAMS dp;
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;
IDispatch *m_pIDispatch;
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_pIConnectionPoint = new CIConnectionPoint ;
m_pIConnectionPointContainer = new CIConnectionPointContainer ;
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
h=m_pIDispatch->Invoke(9,IID_NULL,0,DISPATCH_METHOD,&dp,0,0,0);
sprintf(aa,"m_pIDispatch->Invoke.1.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");
*ppv = m_pIConnectionPointContainer;
return 0;
}
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;
}
long __stdcall CIConnectionPointContainer::FindConnectionPoint(REFIID riid,struct IConnectionPoint **m_pIConnectionPt )
{
abc("CIConnectionPointContainer::FindConnectionPoint");
*m_pIConnectionPt = m_pIConnectionPoint;
return 0;
}
long __stdcall CIConnectionPoint ::Advise(struct IUnknown *m_pIUnknown,unsigned long *c)
{
abc("CIConnectionPoint ::Advise");
m_pIUnknown->QueryInterface(DIID_IABCDEvents,(void**)&m_pIDispatch);
return 0;
}
long __stdcall CIABCD::GetIDsOfNames(REFIID riid,unsigned short ** m,unsigned int n,unsigned long l,long * iid)
{
abc("IABCD::GetIDsOfNames");
sprintf(aa,"GetIDsOfNames..DISPID..%ld",*iid);
abc(aa);
sprintf(aa,"GetIDsOfNames..cnames..%d",n);
abc(aa);
h=m_pITypeInfoIntf->GetIDsOfNames(m,n,iid);
sprintf(aa,"m_pITypeInfoIntf->GetIDsOfNames..h..%p ..dispid..%ld",h,*iid);
abc(aa);
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..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
OnStateChange..
m_pIOleScript->SetScriptState..h..00000000..
42..
42..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
GetIDsOfNames..cnames..1..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..6..
Invoke..dispid....6..
CIABCD::put_Image..val..60..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
GetIDsOfNames..cnames..1..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..7..
Invoke..dispid....7..
CIABCD::get_xyz...4..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
GetIDsOfNames..cnames..1..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..6..
Invoke..dispid....6..
CIABCD::put_Image..val..4..
43..
m_pIDispatch->Invoke.1.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 CIConnectionPoint :public IConnectionPoint
{ public:
long __stdcall QueryInterface(const struct _GUID &,void ** ){abc("71");return 0;}
unsigned long __stdcall AddRef(void){abc("72");return 0;}
unsigned long __stdcall Release(void){abc("73");return 0;}
long __stdcall GetConnectionInterface(struct _GUID *){abc("74");return 0;}
long __stdcall GetConnectionPointContainer(struct IConnectionPointContainer ** ){abc("75");return 0;}
long __stdcall Advise(struct IUnknown *,unsigned long *);
long __stdcall Unadvise(unsigned long){abc("77");return 0;}
long __stdcall EnumConnections(struct IEnumConnections ** ){abc("78");return 0;}
};
CIConnectionPoint *m_pIConnectionPoint;
class CIConnectionPointContainer :public IConnectionPointContainer
{
public:
long __stdcall QueryInterface(const struct _GUID &,void ** )
{abc("61");return 0;}
unsigned long __stdcall AddRef()
{abc("62");return 0;}
unsigned long __stdcall Release()
{abc("63");return 0;}
long __stdcall EnumConnectionPoints(struct IEnumConnectionPoints ** )
{abc("64");return 0;}
long __stdcall FindConnectionPoint(const struct _GUID &,struct IConnectionPoint ** );
};
CIConnectionPointContainer *m_pIConnectionPointContainer;
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 *);
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; }
};
DISPPARAMS dp;
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;
IDispatch *m_pIDispatch;
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_pIConnectionPoint = new CIConnectionPoint ;
m_pIConnectionPointContainer = new CIConnectionPointContainer ;
m_pIProvideClassInfo = new CIProvideClassInfo ;
h=m_pIOleScript->SetScriptState(SCRIPTSTATE_CONNECTED);
sprintf(aa,"m_pIOleScript->SetScriptState..h..%p",h);
abc(aa);
h=m_pIDispatch->Invoke(9,IID_NULL,0,DISPATCH_METHOD,&dp,0,0,0);
sprintf(aa,".....m_pIDispatch->Invoke.1.h..%p.....",h);
abc(aa);
h=m_pIDispatch->Invoke(10,IID_NULL,0,DISPATCH_METHOD,&dp,0,0,0);
sprintf(aa,".....m_pIDispatch->Invoke.2.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");
*ppv = m_pIConnectionPointContainer;
return 0;
}
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;
}
long __stdcall CIConnectionPointContainer::FindConnectionPoint(REFIID riid,struct IConnectionPoint **m_pIConnectionPt )
{
abc("CIConnectionPointContainer::FindConnectionPoint");
*m_pIConnectionPt = m_pIConnectionPoint;
return 0;
}
long __stdcall CIConnectionPoint ::Advise(struct IUnknown *m_pIUnknown,unsigned long *c)
{
abc("CIConnectionPoint ::Advise");
m_pIUnknown->QueryInterface(DIID_IABCDEvents,(void**)&m_pIDispatch);
return 0;
}
long __stdcall CIABCD::GetIDsOfNames(REFIID riid,unsigned short ** m,unsigned int n,unsigned long l,long * iid)
{
abc("IABCD::GetIDsOfNames");
sprintf(aa,"GetIDsOfNames..DISPID..%ld",*iid);
abc(aa);
sprintf(aa,"GetIDsOfNames..cnames..%d",n);
abc(aa);
h=m_pITypeInfoIntf->GetIDsOfNames(m,n,iid);
sprintf(aa,"m_pITypeInfoIntf->GetIDsOfNames..h..%p ..dispid..%ld",h,*iid);
abc(aa);
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..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
CIABCD::QueryInterface..
CIABCD::IID_IConnectionPointContainer..
CIConnectionPointContainer::FindConnectionPoint..
CIConnectionPoint ::Advise..
63..
OnStateChange..
m_pIOleScript->SetScriptState..h..00000000..
42..
42..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..6..
Invoke..dispid....6..
CIABCD::put_Image..val..60..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..7..
Invoke..dispid....7..
CIABCD::get_xyz...4..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..6..
Invoke..dispid....6..
CIABCD::put_Image..val..4..
43..
.....m_pIDispatch->Invoke.1.h..00000000.......
42..
42..
IABCD::GetIDsOfNames..
GetIDsOfNames..DISPID..9986958..
m_pITypeInfoIntf->GetIDsOfNames..h..00000000 ..dispid..6..
Invoke..dispid....6..
CIABCD::put_Image..val..100..
43..
.....m_pIDispatch->Invoke.2.h..00000000.........
end....
Want to be in touch with still more latest technologies? Visit VIJAY MUKHI'S TECHNOLOGY CORNUCOPIA .