Click here to Skip to main content
15,891,943 members
Articles / Desktop Programming / WTL

Web Win32/WTL Hybrid

Rate me:
Please Sign up or sign in to vote.
4.83/5 (15 votes)
22 Dec 20054 min read 136.4K   2.1K   50  
How to implement a two-way communication path from IExplorer and WTL code
#pragma warning( disable: 4049 )  /* more than 64k source lines */

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 5.03.0280 */
/* at Mon Sep 02 22:19:36 2002
 */
/* Compiler settings for c:\borrar\WebWin32Sample\WebWin32Sample.idl:
    Oicf (OptLev=i2), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __WebWin32Sample_h__
#define __WebWin32Sample_h__

/* Forward Declarations */ 

#ifndef __IWebWin32Lib_FWD_DEFINED__
#define __IWebWin32Lib_FWD_DEFINED__
typedef interface IWebWin32Lib IWebWin32Lib;
#endif 	/* __IWebWin32Lib_FWD_DEFINED__ */


#ifndef __IWebWin32EventHandler_FWD_DEFINED__
#define __IWebWin32EventHandler_FWD_DEFINED__
typedef interface IWebWin32EventHandler IWebWin32EventHandler;
#endif 	/* __IWebWin32EventHandler_FWD_DEFINED__ */


#ifndef __WebWin32Lib_FWD_DEFINED__
#define __WebWin32Lib_FWD_DEFINED__

#ifdef __cplusplus
typedef class WebWin32Lib WebWin32Lib;
#else
typedef struct WebWin32Lib WebWin32Lib;
#endif /* __cplusplus */

#endif 	/* __WebWin32Lib_FWD_DEFINED__ */


#ifndef __WebWin32EventHandler_FWD_DEFINED__
#define __WebWin32EventHandler_FWD_DEFINED__

#ifdef __cplusplus
typedef class WebWin32EventHandler WebWin32EventHandler;
#else
typedef struct WebWin32EventHandler WebWin32EventHandler;
#endif /* __cplusplus */

#endif 	/* __WebWin32EventHandler_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 

#ifndef __IWebWin32Lib_INTERFACE_DEFINED__
#define __IWebWin32Lib_INTERFACE_DEFINED__

/* interface IWebWin32Lib */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IWebWin32Lib;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("17D4BA6F-0565-4C27-9549-89ACA363B8EC")
    IWebWin32Lib : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MyMessageBox( 
            /* [in] */ BSTR Text,
            /* [in] */ BSTR Title,
            /* [retval][out] */ LONG __RPC_FAR *Result) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HideTree( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowTree( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetChildFrame( 
            /* [in] */ LONG pChildFrame) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddChildToTree( 
            /* [in] */ BSTR childText) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_StatusBarText( 
            /* [in] */ BSTR Text) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FormSubmit( 
            BSTR FormName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWebWin32LibVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IWebWin32Lib __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IWebWin32Lib __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [out] */ UINT __RPC_FAR *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
            /* [out] */ VARIANT __RPC_FAR *pVarResult,
            /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
            /* [out] */ UINT __RPC_FAR *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MyMessageBox )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ BSTR Text,
            /* [in] */ BSTR Title,
            /* [retval][out] */ LONG __RPC_FAR *Result);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *HideTree )( 
            IWebWin32Lib __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ShowTree )( 
            IWebWin32Lib __RPC_FAR * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetChildFrame )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ LONG pChildFrame);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddChildToTree )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ BSTR childText);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_StatusBarText )( 
            IWebWin32Lib __RPC_FAR * This,
            /* [in] */ BSTR Text);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FormSubmit )( 
            IWebWin32Lib __RPC_FAR * This,
            BSTR FormName);
        
        END_INTERFACE
    } IWebWin32LibVtbl;

    interface IWebWin32Lib
    {
        CONST_VTBL struct IWebWin32LibVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWebWin32Lib_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IWebWin32Lib_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IWebWin32Lib_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IWebWin32Lib_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IWebWin32Lib_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IWebWin32Lib_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IWebWin32Lib_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IWebWin32Lib_MyMessageBox(This,Text,Title,Result)	\
    (This)->lpVtbl -> MyMessageBox(This,Text,Title,Result)

#define IWebWin32Lib_HideTree(This)	\
    (This)->lpVtbl -> HideTree(This)

#define IWebWin32Lib_ShowTree(This)	\
    (This)->lpVtbl -> ShowTree(This)

#define IWebWin32Lib_SetChildFrame(This,pChildFrame)	\
    (This)->lpVtbl -> SetChildFrame(This,pChildFrame)

#define IWebWin32Lib_AddChildToTree(This,childText)	\
    (This)->lpVtbl -> AddChildToTree(This,childText)

#define IWebWin32Lib_put_StatusBarText(This,Text)	\
    (This)->lpVtbl -> put_StatusBarText(This,Text)

#define IWebWin32Lib_FormSubmit(This,FormName)	\
    (This)->lpVtbl -> FormSubmit(This,FormName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_MyMessageBox_Proxy( 
    IWebWin32Lib __RPC_FAR * This,
    /* [in] */ BSTR Text,
    /* [in] */ BSTR Title,
    /* [retval][out] */ LONG __RPC_FAR *Result);


void __RPC_STUB IWebWin32Lib_MyMessageBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_HideTree_Proxy( 
    IWebWin32Lib __RPC_FAR * This);


void __RPC_STUB IWebWin32Lib_HideTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_ShowTree_Proxy( 
    IWebWin32Lib __RPC_FAR * This);


void __RPC_STUB IWebWin32Lib_ShowTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_SetChildFrame_Proxy( 
    IWebWin32Lib __RPC_FAR * This,
    /* [in] */ LONG pChildFrame);


void __RPC_STUB IWebWin32Lib_SetChildFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_AddChildToTree_Proxy( 
    IWebWin32Lib __RPC_FAR * This,
    /* [in] */ BSTR childText);


void __RPC_STUB IWebWin32Lib_AddChildToTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_put_StatusBarText_Proxy( 
    IWebWin32Lib __RPC_FAR * This,
    /* [in] */ BSTR Text);


void __RPC_STUB IWebWin32Lib_put_StatusBarText_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32Lib_FormSubmit_Proxy( 
    IWebWin32Lib __RPC_FAR * This,
    BSTR FormName);


void __RPC_STUB IWebWin32Lib_FormSubmit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IWebWin32Lib_INTERFACE_DEFINED__ */


#ifndef __IWebWin32EventHandler_INTERFACE_DEFINED__
#define __IWebWin32EventHandler_INTERFACE_DEFINED__

/* interface IWebWin32EventHandler */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IWebWin32EventHandler;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DDD0E784-6B9A-4D89-91AE-A33A314269EB")
    IWebWin32EventHandler : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHandler( 
            /* [in] */ LONG pThis,
            /* [in] */ LONG pMember) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CallHandler( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IWebWin32EventHandlerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IWebWin32EventHandler __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IWebWin32EventHandler __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [out] */ UINT __RPC_FAR *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
            /* [out] */ VARIANT __RPC_FAR *pVarResult,
            /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
            /* [out] */ UINT __RPC_FAR *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetHandler )( 
            IWebWin32EventHandler __RPC_FAR * This,
            /* [in] */ LONG pThis,
            /* [in] */ LONG pMember);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CallHandler )( 
            IWebWin32EventHandler __RPC_FAR * This);
        
        END_INTERFACE
    } IWebWin32EventHandlerVtbl;

    interface IWebWin32EventHandler
    {
        CONST_VTBL struct IWebWin32EventHandlerVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IWebWin32EventHandler_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IWebWin32EventHandler_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IWebWin32EventHandler_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IWebWin32EventHandler_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IWebWin32EventHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IWebWin32EventHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IWebWin32EventHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IWebWin32EventHandler_SetHandler(This,pThis,pMember)	\
    (This)->lpVtbl -> SetHandler(This,pThis,pMember)

#define IWebWin32EventHandler_CallHandler(This)	\
    (This)->lpVtbl -> CallHandler(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32EventHandler_SetHandler_Proxy( 
    IWebWin32EventHandler __RPC_FAR * This,
    /* [in] */ LONG pThis,
    /* [in] */ LONG pMember);


void __RPC_STUB IWebWin32EventHandler_SetHandler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IWebWin32EventHandler_CallHandler_Proxy( 
    IWebWin32EventHandler __RPC_FAR * This);


void __RPC_STUB IWebWin32EventHandler_CallHandler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IWebWin32EventHandler_INTERFACE_DEFINED__ */



#ifndef __WebWin32SampleLib_LIBRARY_DEFINED__
#define __WebWin32SampleLib_LIBRARY_DEFINED__

/* library WebWin32SampleLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_WebWin32SampleLib;

EXTERN_C const CLSID CLSID_WebWin32Lib;

#ifdef __cplusplus

class DECLSPEC_UUID("F5B33126-8AD7-4A05-956D-04036F97B0BB")
WebWin32Lib;
#endif

EXTERN_C const CLSID CLSID_WebWin32EventHandler;

#ifdef __cplusplus

class DECLSPEC_UUID("CF333D13-2608-46DA-AED0-5E1FAEF96913")
WebWin32EventHandler;
#endif
#endif /* __WebWin32SampleLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long __RPC_FAR *, unsigned long            , BSTR __RPC_FAR * ); 
unsigned char __RPC_FAR * __RPC_USER  BSTR_UserMarshal(  unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); 
unsigned char __RPC_FAR * __RPC_USER  BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long __RPC_FAR *, BSTR __RPC_FAR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
CEO wave-vs.net
Spain Spain
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions