CUnknown class
[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
The CUnknown class implements the IUnknown interface. Most Component Object Model (COM) objects in DirectShow derive from CUnknown.
If you implement a COM object, you might want to derive it from CUnknown. Deriving from CUnknown provides a thread-safe implementation, and saves you the trouble of implementing IUnknown.
For a detailed discussion of how to use this base class, see How to Implement IUnknown. What follows is a brief summary:
- Include the DECLARE_IUNKNOWN macro in the public section of your class definition. This macro declares the three methods of the IUnknown interface.
- Override the NonDelegatingQueryInterface method to support interfaces other than IUnknown. Within this method, call the GetInterface function to retrieve interface pointers.
- In your class constructor, invoke the CUnknown constructor method.
Protected Member Variables | Description |
---|---|
m_cRef | Reference count. |
Public Methods | Description |
CUnknown | Constructor method. |
~ CUnknown | Destructor method. Virtual. |
GetOwner | Gets a pointer to the controlling IUnknown. |
INonDelegatingUnknown Methods | Description |
NonDelegatingAddRef | Increments the reference count. |
NonDelegatingQueryInterface | Retrieves an interface pointer and increments the reference count. |
NonDelegatingRelease | Decrements the reference count. |
Requirements
Requirement | Value |
---|---|
Header |
|
Library |
|