| 110 | } |
| 111 | |
| 112 | HRESULT Feedback360::QueryInterface(REFIID iid, LPVOID *ppv) |
| 113 | { |
| 114 | CFUUIDRef interface = CFUUIDCreateFromUUIDBytes(kCFAllocatorDefault, iid); |
| 115 | |
| 116 | if(CFEqual(interface, kIOForceFeedbackDeviceInterfaceID)) |
| 117 | *ppv = &this->iIOForceFeedbackDeviceInterface; |
| 118 | // IUnknown || IOCFPlugInInterface |
| 119 | else if(CFEqual(interface, IUnknownUUID) || CFEqual(interface, kIOCFPlugInInterfaceID)) |
| 120 | *ppv = &this->iIOCFPlugInInterface; |
| 121 | else |
| 122 | *ppv = NULL; |
| 123 | |
| 124 | // Done |
| 125 | CFRelease(interface); |
| 126 | if ((*ppv) == NULL) return E_NOINTERFACE; |
| 127 | else { |
| 128 | this->iIOCFPlugInInterface.pseudoVTable->AddRef(*ppv); |
| 129 | } |
| 130 | return FF_OK; |
| 131 | } |
| 132 | |
| 133 | ULONG Feedback360::AddRef() |
| 134 | { |
no test coverage detected