The IResourceConsumer interface implements a resource consumer that requests resources from a resource manager that supports the IResourceManager interface.
When to Implement
Implement this interface on any object that requests resources from a resource manager. (The filter graph manager acts as a resource manager for Microsoft® DirectShow.) After implementing this interface, the object can register resources that it wants to use. It passes a pointer to this interface when it does this so that the resource manager can use methods on this interface to inform the object that a resource is available, or to release a resource that it is using.
When to Use
A resource manager that implements the IResourceManager interface calls methods on this interface.
Methods in Vtable Order
| IUnknown methods | Description |
| QueryInterface | Returns pointers to supported interfaces. |
| AddRef | Increments the reference count. |
| Release | Decrements the reference count. |
| IResourceManager methods | Description |
| AcquireResource | Notifies the resource consumer that a resource might be acquired. |
| ReleaseResource | Requests the resource consumer to release the specified resource. |
Notifies the resource consumer that a resource might be acquired.
HRESULT AcquireResource(
LONG idResource
);
Returns one of the following values.
| Value | Meaning |
| S_OK | Consumer has successfully acquired the resource. |
| S_FALSE | Consumer has not acquired the resource but will use IResourceManager::NotifyAcquire when it does. |
| VFW_S_RESOURCE_NOT_NEEDED | Consumer no longer needs the resource. |
| Error Value | Consumer tried to acquire the resource but failed. |
Requests the resource consumer to release the specified resource.
HRESULT ReleaseResource(
LONG idResource
);
Returns S_OK if the consumer has released it and requires it again when it becomes available, or S_FALSE if the consumer has not released it but will use IResourceManager::NotifyRelease when it does.
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.