IOFireWireLibBufferFillIsochPort.cpp [plain text]
#import "IOFireWireLibBufferFillIsochPort.h"
#import "IOFireWireLibIUnknown.h"
#define kIOFireWireBufferFillIsochPortInterfaceID CFUUIDGetConstantUUIDWithBytes( kCFAllocatorDefault \
,0x9A, 0xBA, 0xFE, 0x8E, 0x54, 0x1E, 0x11, 0xD7\
,0x96, 0x69, 0x00, 0x03, 0x93, 0x47, 0x02, 0x56)
namespace IOFireWireLib {
BufferFillIsochPort::BufferFillIsochPort( const IUnknownVTbl & vtable, Device& device,
UInt32 interruptMicroseconds, UInt32 numRanges, IOVirtualRange ranges[] )
: IOFireWireIUnknown( vtable )
{
}
#pragma mark -
const IOFireWireBufferFillIsochPortInterface BufferFillIsochPortCOM::sInterface = {
INTERFACEIMP_INTERFACE,
1, 0,
} ;
BufferFillIsochPortCOM::BufferFillIsochPortCOM(
Device& device, UInt32 interruptMicroseconds, UInt32 numRanges, IOVirtualRange ranges[] )
: BufferFillIsochPort( reinterpret_cast<const IUnknownVTbl &>( sInterface ), device, interruptMicroseconds, numRanges, ranges )
{
}
IUnknownVTbl**
BufferFillIsochPortCOM::Alloc(
Device& device, UInt32 interruptMicroseconds, UInt32 numRanges, IOVirtualRange ranges[] )
{
BufferFillIsochPortCOM* me = new BufferFillIsochPortCOM( device, interruptMicroseconds, numRanges, ranges ) ;
if (!me)
return nil ;
return reinterpret_cast<IUnknownVTbl**>(& me->GetInterface()) ;
}
HRESULT
BufferFillIsochPortCOM::QueryInterface( REFIID iid, LPVOID* ppv )
{
HRESULT result = S_OK ;
*ppv = nil ;
CFUUIDRef interfaceID = CFUUIDCreateFromUUIDBytes(kCFAllocatorDefault, iid) ;
if ( CFEqual( interfaceID, IUnknownUUID ) || CFEqual( interfaceID, kIOFireWireBufferFillIsochPortInterfaceID ) )
{
*ppv = & GetInterface() ;
AddRef() ;
}
else
{
*ppv = nil ;
result = E_NOINTERFACE ;
}
CFRelease(interfaceID) ;
return result ;
}
}