Click here to Skip to main content
Click here to Skip to main content
Articles » Languages » XML » XSLT » Downloads
 
Add your own
alternative version

Using XSLT to render XML data returned by a COM object

, 12 Sep 2001
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!
xmlrs_src.zip
code
xml.xsl
xmlrs
xmlrs.def
xmlrs.dsp
xmlrs.dsw
xmlrs.tlb
xmlrsobj.rgs
xmlrsps.def
xmlrsps.mk
/* 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.

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

Share

About the Author

Alan Wen
Web Developer
China China
No Biography provided

| Advertise | Privacy | Mobile
Web04 | 2.8.141022.2 | Last Updated 13 Sep 2001
Article Copyright 2001 by Alan Wen
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid