Results 1 to 6 of 6

Thread: Is this correct use of AddRef/Release/QueryInterface

Threaded View

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    May 2006
    Posts
    389

    Is this correct use of AddRef/Release/QueryInterface

    Code:
    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
    Last edited by vbman213; May 10th, 2009 at 03:53 PM.
    Visual Basic Rules!!!!!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width