HRESULT STDMETHODCALLTYPE CSimdeviceQueue::QueryInterface( _In_ REFIID InterfaceId, _Out_ PVOID *Object ) /*++ Routine Description: Query Interface Arguments: Follows COM specifications Return Value: HRESULT indicating success or failure --*/ { HRESULT hr; if (IsEqualIID(InterfaceId, __uuidof(IQueueCallbackWrite))) { *Object = QueryIQueueCallbackWrite(); hr = S_OK; } else if (IsEqualIID(InterfaceId, __uuidof(IQueueCallbackRead))) { *Object = QueryIQueueCallbackRead(); hr = S_OK; } else if (IsEqualIID(InterfaceId, __uuidof(IQueueCallbackDeviceIoControl))) { *Object = QueryIQueueCallbackDeviceIoControl(); hr = S_OK; } else { hr = CUnknown::QueryInterface(InterfaceId, Object); } return hr; }
HRESULT STDMETHODCALLTYPE CMyControlQueue::QueryInterface( __in REFIID InterfaceId, __out PVOID *Object ) /*++ Routine Description: Query Interface Aruments: Follows COM specifications Return Value: HRESULT indicatin success or failure --*/ { HRESULT hr; if (IsEqualIID(InterfaceId, __uuidof(IQueueCallbackDeviceIoControl))) { hr = S_OK; *Object = QueryIQueueCallbackDeviceIoControl(); } else { hr = CMyQueue::QueryInterface(InterfaceId, Object); } return hr; }