Click here to Skip to main content
15,881,809 members
Articles / Desktop Programming / ATL

Using XSLT to Render XML Data Returned by a COM Object

Rate me:
Please Sign up or sign in to vote.
4.50/5 (4 votes)
12 Sep 20016 min read 137.8K   885   32  
This is a 3-tier application. A COM component returns SQL data in XML format, then using XSLT to transform to HTML at client side. By using XML, all the data can be sort, split into pages locally, that will give users a quick response!
/* this ALWAYS GENERATED file contains the definitions for the interfaces */


/* File created by MIDL compiler version 5.01.0164 */
/* at Tue Sep 11 16:02:12 2001
 */
/* Compiler settings for C:\Documents and Settings\administrator.ALANWEN01\Desktop\code\xmlrs\xmlrs.idl:
    Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
*/
//@@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 __xmlrs_h__
#define __xmlrs_h__

#ifdef __cplusplus
extern "C"{
#endif 

/* Forward Declarations */ 

#ifndef __Ixmlrsobj_FWD_DEFINED__
#define __Ixmlrsobj_FWD_DEFINED__
typedef interface Ixmlrsobj Ixmlrsobj;
#endif 	/* __Ixmlrsobj_FWD_DEFINED__ */


#ifndef __xmlrsobj_FWD_DEFINED__
#define __xmlrsobj_FWD_DEFINED__

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

#endif 	/* __xmlrsobj_FWD_DEFINED__ */


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

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

#ifndef __Ixmlrsobj_INTERFACE_DEFINED__
#define __Ixmlrsobj_INTERFACE_DEFINED__

/* interface Ixmlrsobj */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_Ixmlrsobj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("31C0C662-890C-4331-89F7-31C0DAADFA30")
    Ixmlrsobj : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectDB( 
            /* [in] */ BSTR bstrConn) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetXmlrs( 
            /* [retval][out] */ BSTR __RPC_FAR *bstrXmlrs) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CloseDB( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IxmlrsobjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            Ixmlrsobj __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            Ixmlrsobj __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            Ixmlrsobj __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( 
            Ixmlrsobj __RPC_FAR * This,
            /* [out] */ UINT __RPC_FAR *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
            Ixmlrsobj __RPC_FAR * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( 
            Ixmlrsobj __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 )( 
            Ixmlrsobj __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 *ConnectDB )( 
            Ixmlrsobj __RPC_FAR * This,
            /* [in] */ BSTR bstrConn);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetXmlrs )( 
            Ixmlrsobj __RPC_FAR * This,
            /* [retval][out] */ BSTR __RPC_FAR *bstrXmlrs);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CloseDB )( 
            Ixmlrsobj __RPC_FAR * This);
        
        END_INTERFACE
    } IxmlrsobjVtbl;

    interface Ixmlrsobj
    {
        CONST_VTBL struct IxmlrsobjVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define Ixmlrsobj_ConnectDB(This,bstrConn)	\
    (This)->lpVtbl -> ConnectDB(This,bstrConn)

#define Ixmlrsobj_GetXmlrs(This,bstrXmlrs)	\
    (This)->lpVtbl -> GetXmlrs(This,bstrXmlrs)

#define Ixmlrsobj_CloseDB(This)	\
    (This)->lpVtbl -> CloseDB(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Ixmlrsobj_ConnectDB_Proxy( 
    Ixmlrsobj __RPC_FAR * This,
    /* [in] */ BSTR bstrConn);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Ixmlrsobj_GetXmlrs_Proxy( 
    Ixmlrsobj __RPC_FAR * This,
    /* [retval][out] */ BSTR __RPC_FAR *bstrXmlrs);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Ixmlrsobj_CloseDB_Proxy( 
    Ixmlrsobj __RPC_FAR * This);


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



#endif 	/* __Ixmlrsobj_INTERFACE_DEFINED__ */



#ifndef __XMLRSLib_LIBRARY_DEFINED__
#define __XMLRSLib_LIBRARY_DEFINED__

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


EXTERN_C const IID LIBID_XMLRSLib;

EXTERN_C const CLSID CLSID_xmlrsobj;

#ifdef __cplusplus

class DECLSPEC_UUID("364A14BD-69E2-4615-AEBA-EEF5C348BB44")
xmlrsobj;
#endif
#endif /* __XMLRSLib_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.


Written By
Web Developer
China China
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions