Click here to Skip to main content
12,253,083 members (51,526 online)
Click here to Skip to main content

Stats

113.8K views
1.6K downloads
55 bookmarked
Posted

An Asynchronous Pluggable Protocol Handler for data: URLs

, 28 Jan 2006 CPOL
This article describes an asynchronous pluggable protocol implementation to support the data: protocol, as described in RFC 2397, in Internet Explorer.
DataProtocol
DataPluggableProtocol.rgs
DataProtocol.def
DataProtocol.rgs
DataProtocol.vcproj.CCC.ramakrishna.user
DataProtocolps.def
DataProtocolPS.vcproj.CCC.ramakrishna.user
// DataProtocol.cpp : Implementation of DLL Exports.


#include "stdafx.h"
#include "resource.h"
#include "DataProtocol.h"


class CDataProtocolModule : public CAtlDllModuleT< CDataProtocolModule >
{
public :
	DECLARE_LIBID(LIBID_DataProtocolLib)
	DECLARE_REGISTRY_APPID_RESOURCEID(IDR_DATAPROTOCOL, "{456233B3-A72C-459F-8BE2-BF0150678191}")
};

CDataProtocolModule _AtlModule;


#ifdef _MANAGED
#pragma managed(push, off)
#endif

// DLL Entry Point
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
	hInstance;
    return _AtlModule.DllMain(dwReason, lpReserved); 
}

#ifdef _MANAGED
#pragma managed(pop)
#endif




// Used to determine whether the DLL can be unloaded by OLE
STDAPI DllCanUnloadNow(void)
{
    return _AtlModule.DllCanUnloadNow();
}


// Returns a class factory to create an object of the requested type
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
    return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
}


// DllRegisterServer - Adds entries to the system registry
STDAPI DllRegisterServer(void)
{
    // registers object, typelib and all interfaces in typelib
    HRESULT hr = _AtlModule.DllRegisterServer();
	return hr;
}


// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
	HRESULT hr = _AtlModule.DllUnregisterServer();
	return hr;
}

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

You may also be interested in...

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