| 123 | } |
| 124 | |
| 125 | HRESULT FeedbackXBOBT::QueryInterface(REFIID iid, LPVOID *ppv) |
| 126 | { |
| 127 | CFUUIDRef interface = CFUUIDCreateFromUUIDBytes(kCFAllocatorDefault, iid); |
| 128 | |
| 129 | if(CFEqual(interface, kIOForceFeedbackDeviceInterfaceID)) |
| 130 | *ppv = &this->iIOForceFeedbackDeviceInterface; |
| 131 | // IUnknown || IOCFPlugInInterface |
| 132 | else if(CFEqual(interface, IUnknownUUID) || CFEqual(interface, kIOCFPlugInInterfaceID)) |
| 133 | *ppv = &this->iIOCFPlugInInterface; |
| 134 | else |
| 135 | *ppv = NULL; |
| 136 | |
| 137 | // Done |
| 138 | CFRelease(interface); |
| 139 | if ((*ppv) == NULL) return E_NOINTERFACE; |
| 140 | else { |
| 141 | this->iIOCFPlugInInterface.pseudoVTable->AddRef(*ppv); |
| 142 | } |
| 143 | return FF_OK; |
| 144 | } |
| 145 | |
| 146 | ULONG FeedbackXBOBT::AddRef() |
| 147 | { |