summaryrefslogtreecommitdiff
path: root/wpd/WpdMultiTransportDriver/WpdBaseDriver.h
diff options
context:
space:
mode:
Diffstat (limited to 'wpd/WpdMultiTransportDriver/WpdBaseDriver.h')
-rw-r--r--wpd/WpdMultiTransportDriver/WpdBaseDriver.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/wpd/WpdMultiTransportDriver/WpdBaseDriver.h b/wpd/WpdMultiTransportDriver/WpdBaseDriver.h
new file mode 100644
index 00000000..a7462df2
--- /dev/null
+++ b/wpd/WpdMultiTransportDriver/WpdBaseDriver.h
@@ -0,0 +1,39 @@
+#pragma once
+
+class WpdBaseDriver :
+ public IUnknown
+{
+public:
+ WpdBaseDriver();
+ virtual ~WpdBaseDriver();
+
+ HRESULT Initialize();
+ VOID Uninitialize();
+
+ HRESULT DispatchWpdMessage(_In_ IPortableDeviceValues* pParams,
+ _In_ IPortableDeviceValues* pResults);
+
+private:
+ HRESULT OnGetObjectIDsFromPersistentUniqueIDs(_In_ IPortableDeviceValues* pParams,
+ _In_ IPortableDeviceValues* pResults);
+
+public: // IUnknown
+ ULONG __stdcall AddRef();
+
+ _At_(this, __drv_freesMem(Mem))
+ ULONG __stdcall Release();
+
+ HRESULT __stdcall QueryInterface(REFIID riid, void** ppv);
+
+public:
+ WpdObjectEnumerator m_ObjectEnum;
+ WpdObjectProperties m_ObjectProperties;
+ WpdObjectResources m_ObjectResources;
+ WpdCapabilities m_Capabilities;
+ CComPtr<IWDFIoQueue> m_pWpdQueue;
+ CComPtr<IQueueCallbackDeviceIoControl> m_pQueueCallback;
+
+private:
+ ULONG m_cRef;
+};
+