- Fix building of cmidriver
[reactos.git] / reactos / drivers / wdm / audio / drivers / CMIDriver / common.hpp
index 3502662..5948381 100644 (file)
@@ -41,8 +41,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "cmireg.hpp"
 
 class CCMIAdapter : public ICMIAdapter,
-                    public IAdapterPowerManagement,
-                    public CUnknown
+                    public IAdapterPowerManagement
 {
 private:
     PDEVICE_OBJECT             DeviceObject;
@@ -56,8 +55,25 @@ private:
     void resetController();
 
 public:
-    DECLARE_STD_UNKNOWN();
-    DEFINE_STD_CONSTRUCTOR(CCMIAdapter);
+    STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
+    STDMETHODIMP_(ULONG) AddRef()
+    {
+        InterlockedIncrement(&m_Ref);
+        return m_Ref;
+    }
+    STDMETHODIMP_(ULONG) Release()
+    {
+        InterlockedDecrement(&m_Ref);
+
+        if (!m_Ref)
+        {
+            delete this;
+            return 0;
+        }
+        return m_Ref;
+    }
+
+    CCMIAdapter(IUnknown *OuterUnknown){}
     ~CCMIAdapter();
 
     IMP_IAdapterPowerManagement;
@@ -88,7 +104,7 @@ public:
 
     STDMETHODIMP_(void)                resetMixer();
 
-    static NTSTATUS                    InterruptServiceRoutine(PINTERRUPTSYNC InterruptSync, PVOID StaticContext);
+    static NTSTATUS NTAPI                      InterruptServiceRoutine(PINTERRUPTSYNC InterruptSync, PVOID StaticContext);
 
     STDMETHODIMP_(PCMI8738Info) getCMI8738Info(void)
     {
@@ -105,6 +121,9 @@ public:
     };
 
     friend NTSTATUS NewCCMIAdapter(PCMIADAPTER* OutCMIAdapter, PRESOURCELIST ResourceList);
+
+    LONG m_Ref;
+
 };
 
 NTSTATUS NewCMIAdapter(PUNKNOWN* Unknown, REFCLSID, PUNKNOWN UnknownOuter, POOL_TYPE PoolType);