summaryrefslogtreecommitdiff
path: root/wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp
diff options
context:
space:
mode:
authorDave Wilson <[email protected]>2015-03-17 19:50:07 -0700
committerDave Wilson <[email protected]>2015-03-17 19:50:07 -0700
commit97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch)
tree46f3701832d70b420eb0fc0eb93261f9da45db3f /wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp
parentef1905bf1e8825bb31120dfb27e0daf3154d859a (diff)
Initial publish
Diffstat (limited to 'wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp')
-rw-r--r--wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp b/wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp
new file mode 100644
index 00000000..2620e909
--- /dev/null
+++ b/wpd/WpdBasicHardwareDriver/WpdBasicHardwareDriver.cpp
@@ -0,0 +1,60 @@
+#include "stdafx.h"
+
+#include "WpdBasicHardwareDriver.tmh"
+
+HINSTANCE g_hInstance = NULL;
+
+class CWpdBasicHardwareDriverModule : public CAtlDllModuleT< CWpdBasicHardwareDriverModule >
+{
+public :
+ DECLARE_REGISTRY_APPID_RESOURCEID(IDR_WpdBasicHardwareDriver, "{021AD204-6411-4698-8CFB-C1A72B581733}")
+ DECLARE_LIBID(LIBID_WpdBasicHardwareDriverLib)
+};
+
+CWpdBasicHardwareDriverModule _AtlModule;
+
+// DLL Entry Point
+extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
+{
+ if(dwReason == DLL_PROCESS_ATTACH)
+ {
+ g_hInstance = hInstance;
+
+ // Initialize tracing.
+ WPP_INIT_TRACING(MYDRIVER_TRACING_ID);
+ }
+ else if (dwReason == DLL_PROCESS_DETACH)
+ {
+ // Cleanup tracing.
+ WPP_CLEANUP();
+ }
+
+ return _AtlModule.DllMain(dwReason, lpReserved);
+}
+
+// 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(_In_ REFCLSID rclsid, _In_ REFIID riid, _Outptr_ 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;
+}