Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

An Asynchronous Pluggable Protocol Handler for data: URLs

, 28 Jan 2006
This article describes an asynchronous pluggable protocol implementation to support the data: protocol, as described in RFC 2397, in Internet Explorer.
dataprotocol_src.zip
DataProtocol
DataPluggableProtocol.rgs
DataProtocol.def
DataProtocol.rgs
DataProtocol.vcproj.CCC.ramakrishna.user
DataProtocolps.def
DataProtocolPS.vcproj.CCC.ramakrishna.user

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


 /* File created by MIDL compiler version 6.00.0366 */
/* at Tue Jan 17 15:43:06 2006
 */
/* Compiler settings for .\DataProtocol.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , 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(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* 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 __DataProtocol_h__
#define __DataProtocol_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IDataPluggableProtocol_FWD_DEFINED__
#define __IDataPluggableProtocol_FWD_DEFINED__
typedef interface IDataPluggableProtocol IDataPluggableProtocol;
#endif 	/* __IDataPluggableProtocol_FWD_DEFINED__ */


#ifndef __DataPluggableProtocol_FWD_DEFINED__
#define __DataPluggableProtocol_FWD_DEFINED__

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

#endif 	/* __DataPluggableProtocol_FWD_DEFINED__ */


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

#ifdef __cplusplus
extern "C"{
#endif 

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

#ifndef __IDataPluggableProtocol_INTERFACE_DEFINED__
#define __IDataPluggableProtocol_INTERFACE_DEFINED__

/* interface IDataPluggableProtocol */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IDataPluggableProtocol;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0DABB5E2-1147-4C66-9AF0-6220D71821F5")
    IDataPluggableProtocol : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IDataPluggableProtocolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDataPluggableProtocol * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDataPluggableProtocol * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDataPluggableProtocol * This);
        
        END_INTERFACE
    } IDataPluggableProtocolVtbl;

    interface IDataPluggableProtocol
    {
        CONST_VTBL struct IDataPluggableProtocolVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IDataPluggableProtocol_INTERFACE_DEFINED__ */



#ifndef __DataProtocolLib_LIBRARY_DEFINED__
#define __DataProtocolLib_LIBRARY_DEFINED__

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


EXTERN_C const IID LIBID_DataProtocolLib;

EXTERN_C const CLSID CLSID_DataPluggableProtocol;

#ifdef __cplusplus

class DECLSPEC_UUID("C79BF22F-25C4-4D3D-8183-14149EAB9C0C")
DataPluggableProtocol;
#endif
#endif /* __DataProtocolLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* 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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Rama Krishna Vavilala
Architect
United States United States
No Biography provided

| Advertise | Privacy | Mobile
Web02 | 2.8.140827.1 | Last Updated 28 Jan 2006
Article Copyright 2006 by Rama Krishna Vavilala
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid