Changeset 6712 for trunk/src/avifil32/comentry.c
- Timestamp:
- Sep 15, 2001, 11:47:44 AM (24 years ago)
- File:
-
- 1 edited
-
trunk/src/avifil32/comentry.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/avifil32/comentry.c
r6644 r6712 1 /* $Id: comentry.c,v 1.2 2001-09-05 12:00:53 bird Exp $ 2 * 1 /* 3 2 * Copyright 2001 Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp> 4 3 */ … … 28 27 static ICOM_VTABLE(IClassFactory) iclassfact = 29 28 { 30 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE31 IClassFactory_fnQueryInterface,32 IClassFactory_fnAddRef,33 IClassFactory_fnRelease,34 IClassFactory_fnCreateInstance,35 IClassFactory_fnLockServer29 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 30 IClassFactory_fnQueryInterface, 31 IClassFactory_fnAddRef, 32 IClassFactory_fnRelease, 33 IClassFactory_fnCreateInstance, 34 IClassFactory_fnLockServer 36 35 }; 37 36 38 37 typedef struct 39 38 { 40 /* IUnknown fields */41 ICOM_VFIELD(IClassFactory);42 DWORDref;39 /* IUnknown fields */ 40 ICOM_VFIELD(IClassFactory); 41 DWORD ref; 43 42 } IClassFactoryImpl; 44 43 … … 50 49 IClassFactory_fnQueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) 51 50 { 52 ICOM_THIS(IClassFactoryImpl,iface);51 ICOM_THIS(IClassFactoryImpl,iface); 53 52 54 TRACE("(%p)->(%p,%p)\n",This,riid,ppobj);55 if ( ( IsEqualGUID( &IID_IUnknown, riid ) ) ||56 ( IsEqualGUID( &IID_IClassFactory, riid ) ) )57 {58 *ppobj = iface;59 IClassFactory_AddRef(iface);60 return S_OK;61 }53 TRACE("(%p)->(%p,%p)\n",This,riid,ppobj); 54 if ( ( IsEqualGUID( &IID_IUnknown, riid ) ) || 55 ( IsEqualGUID( &IID_IClassFactory, riid ) ) ) 56 { 57 *ppobj = iface; 58 IClassFactory_AddRef(iface); 59 return S_OK; 60 } 62 61 63 return E_NOINTERFACE;62 return E_NOINTERFACE; 64 63 } 65 64 66 65 static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface) 67 66 { 68 ICOM_THIS(IClassFactoryImpl,iface);67 ICOM_THIS(IClassFactoryImpl,iface); 69 68 70 TRACE("(%p)->()\n",This);71 if ( (This->ref) == 0 )72 AVIFILE_data.dwClassObjRef ++;69 TRACE("(%p)->()\n",This); 70 if ( (This->ref) == 0 ) 71 AVIFILE_data.dwClassObjRef ++; 73 72 74 return ++(This->ref);73 return ++(This->ref); 75 74 } 76 75 77 76 static ULONG WINAPI IClassFactory_fnRelease(LPCLASSFACTORY iface) 78 77 { 79 ICOM_THIS(IClassFactoryImpl,iface);78 ICOM_THIS(IClassFactoryImpl,iface); 80 79 81 TRACE("(%p)->()\n",This);82 if ( (--(This->ref)) > 0 )83 return This->ref;80 TRACE("(%p)->()\n",This); 81 if ( (--(This->ref)) > 0 ) 82 return This->ref; 84 83 85 AVIFILE_data.dwClassObjRef --;86 return 0;84 AVIFILE_data.dwClassObjRef --; 85 return 0; 87 86 } 88 87 … … 91 90 /*ICOM_THIS(IClassFactoryImpl,iface);*/ 92 91 93 *ppobj = NULL;94 if ( pOuter != NULL )95 return E_FAIL;92 *ppobj = NULL; 93 if ( pOuter != NULL ) 94 return E_FAIL; 96 95 97 if ( IsEqualGUID( &IID_IAVIFile, riid ) )98 return AVIFILE_CreateIAVIFile(ppobj);99 if ( IsEqualGUID( &IID_IAVIStream, riid ) )100 return AVIFILE_CreateIAVIStream(ppobj);96 if ( IsEqualGUID( &IID_IAVIFile, riid ) ) 97 return AVIFILE_CreateIAVIFile(ppobj); 98 if ( IsEqualGUID( &IID_IAVIStream, riid ) ) 99 return AVIFILE_CreateIAVIStream(ppobj); 101 100 102 return E_NOINTERFACE;101 return E_NOINTERFACE; 103 102 } 104 103 105 104 static HRESULT WINAPI IClassFactory_fnLockServer(LPCLASSFACTORY iface,BOOL dolock) 106 105 { 107 ICOM_THIS(IClassFactoryImpl,iface);108 HRESULThr;106 ICOM_THIS(IClassFactoryImpl,iface); 107 HRESULT hr; 109 108 110 FIXME("(%p)->(%d),stub!\n",This,dolock);111 if (dolock)112 hr = IClassFactory_AddRef(iface);113 else114 hr = IClassFactory_Release(iface);109 FIXME("(%p)->(%d),stub!\n",This,dolock); 110 if (dolock) 111 hr = IClassFactory_AddRef(iface); 112 else 113 hr = IClassFactory_Release(iface); 115 114 116 return hr;115 return hr; 117 116 } 118 117 119 118 120 119 /*********************************************************************** 121 * DllGetClassObject (AVIFIL32.@)120 * DllGetClassObject (AVIFIL32.@) 122 121 */ 123 122 HRESULT WINAPI AVIFILE_DllGetClassObject(const CLSID* pclsid,const IID* piid,void** ppv) 124 123 { 125 *ppv = NULL;126 if ( IsEqualCLSID( &IID_IClassFactory, piid ) )127 {128 *ppv = (LPVOID)&AVIFILE_GlobalCF;129 IClassFactory_AddRef((IClassFactory*)*ppv);130 return S_OK;131 }124 *ppv = NULL; 125 if ( IsEqualCLSID( &IID_IClassFactory, piid ) ) 126 { 127 *ppv = (LPVOID)&AVIFILE_GlobalCF; 128 IClassFactory_AddRef((IClassFactory*)*ppv); 129 return S_OK; 130 } 132 131 133 return CLASS_E_CLASSNOTAVAILABLE;132 return CLASS_E_CLASSNOTAVAILABLE; 134 133 } 135 134 136 135 /***************************************************************************** 137 * DllCanUnloadNow (AVIFIL32.@)136 * DllCanUnloadNow (AVIFIL32.@) 138 137 */ 139 138 DWORD WINAPI AVIFILE_DllCanUnloadNow(void) 140 139 { 141 return ( AVIFILE_data.dwClassObjRef == 0 ) ? S_OK : S_FALSE;140 return ( AVIFILE_data.dwClassObjRef == 0 ) ? S_OK : S_FALSE; 142 141 } 143 142
Note:
See TracChangeset
for help on using the changeset viewer.
