vbman213
May 10th, 2009, 03:49 PM
Private Sub UserControl_Initialize()
Dim sUnk As vbActiveScript3.IUnknown, pUnk As vbActiveScript3.IUnknown
Dim clsidVBS As vbActiveScript3.UUID
Dim uuidActScr As vbActiveScript3.UUID, uuidActScrParse As vbActiveScript3.UUID
CLSIDFromProgID "VBScript", clsidVBS 'Get CLSID VBScript/JScript
CLSIDFromString IID_IActiveScript, uuidActScr 'Get CLSID IActiveScript
CLSIDFromString IID_IActiveScriptParse, uuidActScrParse 'Get CLSID IActiveScriptParse
hRes = CoInitialize(Empty) 'Initialize COM Interfaces (This is not required)
hRes = CoCreateInstance(clsidVBS, Nothing, CLSCTX_INPROC_SERVER, uuidActScr, sUnk) 'Inproc the interfaces
sUnk.AddRef
Set iScript = sUnk
hRes = iScript.SetScriptSite(Me)
hRes = sUnk.QueryInterface(uuidActScrParse, pUnk)
pUnk.AddRef
Set iParse = pUnk
hRes = iParse.InitNew
pUnk.Release
sUnk.Release
Set pUnk = Nothing
Set sUnk = Nothing
End Sub
This works just fine, but I am wondering if this is "incorrect"...
I don't want any posts saying, "Why are you doing this in VB?!?!?"... Simply answer, because I can :P
Dim sUnk As vbActiveScript3.IUnknown, pUnk As vbActiveScript3.IUnknown
Dim clsidVBS As vbActiveScript3.UUID
Dim uuidActScr As vbActiveScript3.UUID, uuidActScrParse As vbActiveScript3.UUID
CLSIDFromProgID "VBScript", clsidVBS 'Get CLSID VBScript/JScript
CLSIDFromString IID_IActiveScript, uuidActScr 'Get CLSID IActiveScript
CLSIDFromString IID_IActiveScriptParse, uuidActScrParse 'Get CLSID IActiveScriptParse
hRes = CoInitialize(Empty) 'Initialize COM Interfaces (This is not required)
hRes = CoCreateInstance(clsidVBS, Nothing, CLSCTX_INPROC_SERVER, uuidActScr, sUnk) 'Inproc the interfaces
sUnk.AddRef
Set iScript = sUnk
hRes = iScript.SetScriptSite(Me)
hRes = sUnk.QueryInterface(uuidActScrParse, pUnk)
pUnk.AddRef
Set iParse = pUnk
hRes = iParse.InitNew
pUnk.Release
sUnk.Release
Set pUnk = Nothing
Set sUnk = Nothing
End Sub
This works just fine, but I am wondering if this is "incorrect"...
I don't want any posts saying, "Why are you doing this in VB?!?!?"... Simply answer, because I can :P