- Timestamp:
- Jun 15, 2002, 1:54:35 PM (23 years ago)
- Location:
- trunk/src/quartz
- Files:
-
- 53 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/quartz/main.c
r6952 r8677 1 /* 2 * Exported APIs. 3 * 4 * hidenori@a2.ctktv.ne.jp 5 */ 6 7 #include "config.h" 8 9 #include "windef.h" 10 #include "winerror.h" 11 #include "winbase.h" 12 #include "wingdi.h" 13 #include "winuser.h" 14 #include "winnls.h" 15 #include "mmsystem.h" 16 #include "ole2.h" 17 #include "wine/obj_oleaut.h" 18 #include "strmif.h" 19 #include "control.h" 20 #include "uuids.h" 21 #include "errors.h" 22 23 #include "debugtools.h" 24 DEFAULT_DEBUG_CHANNEL(quartz); 25 26 #include "quartz_private.h" 27 #include "fgraph.h" 28 #include "sysclock.h" 29 #include "memalloc.h" 30 #include "devenum.h" 31 #include "fmap.h" 32 #include "fmap2.h" 33 #include "seekpass.h" 34 #include "audren.h" 35 36 37 typedef struct QUARTZ_CLASSENTRY 38 { 39 const CLSID* pclsid; 40 QUARTZ_pCreateIUnknown pCreateIUnk; 41 } QUARTZ_CLASSENTRY; 42 43 44 static HRESULT WINAPI 45 IClassFactory_fnQueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj); 46 static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface); 47 static ULONG WINAPI IClassFactory_fnRelease(LPCLASSFACTORY iface); 48 static HRESULT WINAPI IClassFactory_fnCreateInstance(LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj); 49 static HRESULT WINAPI IClassFactory_fnLockServer(LPCLASSFACTORY iface,BOOL dolock); 50 51 static ICOM_VTABLE(IClassFactory) iclassfact = 52 { 53 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 54 IClassFactory_fnQueryInterface, 55 IClassFactory_fnAddRef, 56 IClassFactory_fnRelease, 57 IClassFactory_fnCreateInstance, 58 IClassFactory_fnLockServer 59 }; 60 61 typedef struct 62 { 63 /* IUnknown fields */ 64 ICOM_VFIELD(IClassFactory); 65 LONG ref; 66 /* IClassFactory fields */ 67 const QUARTZ_CLASSENTRY* pEntry; 68 } IClassFactoryImpl; 69 70 static const QUARTZ_CLASSENTRY QUARTZ_ClassList[] = 71 { 72 { &CLSID_FilterGraph, &QUARTZ_CreateFilterGraph }, 73 { &CLSID_SystemClock, &QUARTZ_CreateSystemClock }, 74 { &CLSID_MemoryAllocator, &QUARTZ_CreateMemoryAllocator }, 75 { &CLSID_SystemDeviceEnum, &QUARTZ_CreateSystemDeviceEnum }, 76 { &CLSID_FilterMapper, &QUARTZ_CreateFilterMapper }, 77 { &CLSID_FilterMapper2, &QUARTZ_CreateFilterMapper2 }, 78 { &CLSID_SeekingPassThru, &QUARTZ_CreateSeekingPassThru }, 79 { &CLSID_AudioRender, &QUARTZ_CreateAudioRenderer }, 80 { NULL, NULL }, 81 }; 82 83 /* per-process variables */ 84 static CRITICAL_SECTION csHeap; 85 static DWORD dwClassObjRef; 86 static HANDLE hDLLHeap; 87 88 void* QUARTZ_AllocObj( DWORD dwSize ) 89 { 90 void* pv; 91 92 EnterCriticalSection( &csHeap ); 93 dwClassObjRef ++; 94 pv = HeapAlloc( hDLLHeap, 0, dwSize ); 95 if ( pv == NULL ) 96 dwClassObjRef --; 97 LeaveCriticalSection( &csHeap ); 98 99 return pv; 100 } 101 102 void QUARTZ_FreeObj( void* pobj ) 103 { 104 EnterCriticalSection( &csHeap ); 105 HeapFree( hDLLHeap, 0, pobj ); 106 dwClassObjRef --; 107 LeaveCriticalSection( &csHeap ); 108 } 109 110 void* QUARTZ_AllocMem( DWORD dwSize ) 111 { 112 return HeapAlloc( hDLLHeap, 0, dwSize ); 113 } 114 115 void QUARTZ_FreeMem( void* pMem ) 116 { 117 HeapFree( hDLLHeap, 0, pMem ); 118 } 119 120 void* QUARTZ_ReallocMem( void* pMem, DWORD dwSize ) 121 { 122 if ( pMem == NULL ) 123 return QUARTZ_AllocMem( dwSize ); 124 125 return HeapReAlloc( hDLLHeap, 0, pMem, dwSize ); 126 } 127 128 static 129 LPWSTR QUARTZ_strncpyAtoW( LPWSTR lpwstr, LPCSTR lpstr, INT wbuflen ) 130 { 131 INT len; 132 133 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, lpwstr, wbuflen ); 134 if ( len == 0 ) 135 *lpwstr = 0; 136 return lpwstr; 137 } 138 139 140 /************************************************************************/ 141 142 static HRESULT WINAPI 143 IClassFactory_fnQueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) 144 { 145 ICOM_THIS(IClassFactoryImpl,iface); 146 147 TRACE("(%p)->(%p,%p)\n",This,riid,ppobj); 148 if ( ( IsEqualGUID( &IID_IUnknown, riid ) ) || 149 ( IsEqualGUID( &IID_IClassFactory, riid ) ) ) 150 { 151 *ppobj = iface; 152 IClassFactory_AddRef(iface); 153 return S_OK; 154 } 155 156 return E_NOINTERFACE; 157 } 158 159 static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface) 160 { 161 ICOM_THIS(IClassFactoryImpl,iface); 162 163 TRACE("(%p)->()\n",This); 164 165 return InterlockedExchangeAdd(&(This->ref),1) + 1; 166 } 167 168 static ULONG WINAPI IClassFactory_fnRelease(LPCLASSFACTORY iface) 169 { 170 ICOM_THIS(IClassFactoryImpl,iface); 171 LONG ref; 172 173 TRACE("(%p)->()\n",This); 174 ref = InterlockedExchangeAdd(&(This->ref),-1) - 1; 175 if ( ref > 0 ) 176 return (ULONG)ref; 177 178 QUARTZ_FreeObj(This); 179 return 0; 180 } 181 182 static HRESULT WINAPI IClassFactory_fnCreateInstance(LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj) 183 { 184 ICOM_THIS(IClassFactoryImpl,iface); 185 HRESULT hr; 186 IUnknown* punk; 187 188 TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj); 189 190 if ( ppobj == NULL ) 191 return E_POINTER; 192 if ( pOuter != NULL && !IsEqualGUID( riid, &IID_IUnknown ) ) 193 return CLASS_E_NOAGGREGATION; 194 195 *ppobj = NULL; 196 197 hr = (*This->pEntry->pCreateIUnk)(pOuter,(void**)&punk); 198 if ( hr != S_OK ) 199 return hr; 200 201 hr = IUnknown_QueryInterface(punk,riid,ppobj); 202 IUnknown_Release(punk); 203 204 return hr; 205 } 206 207 static HRESULT WINAPI IClassFactory_fnLockServer(LPCLASSFACTORY iface,BOOL dolock) 208 { 209 ICOM_THIS(IClassFactoryImpl,iface); 210 HRESULT hr; 211 212 TRACE("(%p)->(%d)\n",This,dolock); 213 if (dolock) 214 hr = IClassFactory_AddRef(iface); 215 else 216 hr = IClassFactory_Release(iface); 217 218 return hr; 219 } 220 221 222 223 static HRESULT IClassFactory_Alloc( const CLSID* pclsid, void** ppobj ) 224 { 225 const QUARTZ_CLASSENTRY* pEntry; 226 IClassFactoryImpl* pImpl; 227 228 TRACE( "(%s,%p)\n", debugstr_guid(pclsid), ppobj ); 229 230 pEntry = QUARTZ_ClassList; 231 while ( pEntry->pclsid != NULL ) 232 { 233 if ( IsEqualGUID( pclsid, pEntry->pclsid ) ) 234 goto found; 235 pEntry ++; 236 } 237 238 return CLASS_E_CLASSNOTAVAILABLE; 239 found: 240 pImpl = (IClassFactoryImpl*)QUARTZ_AllocObj( sizeof(IClassFactoryImpl) ); 241 if ( pImpl == NULL ) 242 return E_OUTOFMEMORY; 243 244 TRACE( "allocated successfully.\n" ); 245 246 ICOM_VTBL(pImpl) = &iclassfact; 247 pImpl->ref = 1; 248 pImpl->pEntry = pEntry; 249 250 *ppobj = (void*)pImpl; 251 return S_OK; 252 } 253 254 255 /*********************************************************************** 256 * QUARTZ_InitProcess (internal) 257 */ 258 static BOOL QUARTZ_InitProcess( void ) 259 { 260 TRACE("()\n"); 261 262 dwClassObjRef = 0; 263 hDLLHeap = (HANDLE)NULL; 264 InitializeCriticalSection( &csHeap ); 265 266 hDLLHeap = HeapCreate( 0, 0x10000, 0 ); 267 if ( hDLLHeap == (HANDLE)NULL ) 268 return FALSE; 269 270 return TRUE; 271 } 272 273 /*********************************************************************** 274 * QUARTZ_UninitProcess (internal) 275 */ 276 static void QUARTZ_UninitProcess( void ) 277 { 278 TRACE("()\n"); 279 280 if ( dwClassObjRef != 0 ) 281 ERR( "you must release some objects allocated from quartz.\n" ); 282 if ( hDLLHeap != (HANDLE)NULL ) 283 { 284 HeapDestroy( hDLLHeap ); 285 hDLLHeap = (HANDLE)NULL; 286 } 287 DeleteCriticalSection( &csHeap ); 288 } 289 290 /*********************************************************************** 291 * QUARTZ_DllMain 292 */ 293 BOOL WINAPI QUARTZ_DllMain( 294 HINSTANCE hInstDLL, 295 DWORD fdwReason, 296 LPVOID lpvReserved ) 297 { 298 TRACE("(%08x,%08lx,%p)\n",hInstDLL,fdwReason,lpvReserved); 299 300 switch ( fdwReason ) 301 { 302 case DLL_PROCESS_ATTACH: 303 if ( !QUARTZ_InitProcess() ) 304 return FALSE; 305 break; 306 case DLL_PROCESS_DETACH: 307 QUARTZ_UninitProcess(); 308 break; 309 case DLL_THREAD_ATTACH: 310 break; 311 case DLL_THREAD_DETACH: 312 break; 313 } 314 315 return TRUE; 316 } 317 318 319 /*********************************************************************** 320 * DllCanUnloadNow (QUARTZ.@) 321 * 322 * RETURNS 323 * Success: S_OK 324 * Failure: S_FALSE 325 */ 326 HRESULT WINAPI QUARTZ_DllCanUnloadNow(void) 327 { 328 HRESULT hr; 329 330 EnterCriticalSection( &csHeap ); 331 hr = ( dwClassObjRef == 0 ) ? S_OK : S_FALSE; 332 LeaveCriticalSection( &csHeap ); 333 334 return hr; 335 } 336 337 /*********************************************************************** 338 * DllGetClassObject (QUARTZ.@) 339 */ 340 HRESULT WINAPI QUARTZ_DllGetClassObject( 341 const CLSID* pclsid,const IID* piid,void** ppv) 342 { 343 *ppv = NULL; 344 if ( IsEqualCLSID( &IID_IUnknown, piid ) || 345 IsEqualCLSID( &IID_IClassFactory, piid ) ) 346 { 347 return IClassFactory_Alloc( pclsid, ppv ); 348 } 349 350 return CLASS_E_CLASSNOTAVAILABLE; 351 } 352 353 /*********************************************************************** 354 * DllRegisterServer (QUARTZ.@) 355 */ 356 357 HRESULT WINAPI QUARTZ_DllRegisterServer( void ) 358 { 359 FIXME( "(): stub\n" ); 360 return E_FAIL; 361 } 362 363 /*********************************************************************** 364 * DllUnregisterServer (QUARTZ.@) 365 */ 366 367 HRESULT WINAPI QUARTZ_DllUnregisterServer( void ) 368 { 369 FIXME( "(): stub\n" ); 370 return E_FAIL; 371 } 372 373 /**************************************************************************/ 374 /**************************************************************************/ 375 376 /* FIXME - all string should be defined in the resource of quartz. */ 377 378 static LPCSTR hresult_to_string( HRESULT hr ) 379 { 380 switch ( hr ) 381 { 382 #define ENTRY(x) case x: return (const char*)#x 383 /* some known codes */ 384 ENTRY(S_OK); 385 ENTRY(S_FALSE); 386 ENTRY(E_FAIL); 387 ENTRY(E_POINTER); 388 ENTRY(E_NOTIMPL); 389 ENTRY(E_NOINTERFACE); 390 ENTRY(E_OUTOFMEMORY); 391 ENTRY(CLASS_E_CLASSNOTAVAILABLE); 392 ENTRY(CLASS_E_NOAGGREGATION); 393 394 /* vfwmsgs.h */ 395 ENTRY(VFW_S_NO_MORE_ITEMS); 396 ENTRY(VFW_E_BAD_KEY); 397 ENTRY(VFW_E_INVALIDMEDIATYPE); 398 ENTRY(VFW_E_INVALIDSUBTYPE); 399 ENTRY(VFW_E_NEED_OWNER); 400 ENTRY(VFW_E_ENUM_OUT_OF_SYNC); 401 ENTRY(VFW_E_ALREADY_CONNECTED); 402 ENTRY(VFW_E_FILTER_ACTIVE); 403 ENTRY(VFW_E_NO_TYPES); 404 ENTRY(VFW_E_NO_ACCEPTABLE_TYPES); 405 ENTRY(VFW_E_INVALID_DIRECTION); 406 ENTRY(VFW_E_NOT_CONNECTED); 407 ENTRY(VFW_E_NO_ALLOCATOR); 408 ENTRY(VFW_E_RUNTIME_ERROR); 409 ENTRY(VFW_E_BUFFER_NOTSET); 410 ENTRY(VFW_E_BUFFER_OVERFLOW); 411 ENTRY(VFW_E_BADALIGN); 412 ENTRY(VFW_E_ALREADY_COMMITTED); 413 ENTRY(VFW_E_BUFFERS_OUTSTANDING); 414 ENTRY(VFW_E_NOT_COMMITTED); 415 ENTRY(VFW_E_SIZENOTSET); 416 ENTRY(VFW_E_NO_CLOCK); 417 ENTRY(VFW_E_NO_SINK); 418 ENTRY(VFW_E_NO_INTERFACE); 419 ENTRY(VFW_E_NOT_FOUND); 420 ENTRY(VFW_E_CANNOT_CONNECT); 421 ENTRY(VFW_E_CANNOT_RENDER); 422 ENTRY(VFW_E_CHANGING_FORMAT); 423 ENTRY(VFW_E_NO_COLOR_KEY_SET); 424 ENTRY(VFW_E_NOT_OVERLAY_CONNECTION); 425 ENTRY(VFW_E_NOT_SAMPLE_CONNECTION); 426 ENTRY(VFW_E_PALETTE_SET); 427 ENTRY(VFW_E_COLOR_KEY_SET); 428 ENTRY(VFW_E_NO_COLOR_KEY_FOUND); 429 ENTRY(VFW_E_NO_PALETTE_AVAILABLE); 430 ENTRY(VFW_E_NO_DISPLAY_PALETTE); 431 ENTRY(VFW_E_TOO_MANY_COLORS); 432 ENTRY(VFW_E_STATE_CHANGED); 433 ENTRY(VFW_E_NOT_STOPPED); 434 ENTRY(VFW_E_NOT_PAUSED); 435 ENTRY(VFW_E_NOT_RUNNING); 436 ENTRY(VFW_E_WRONG_STATE); 437 ENTRY(VFW_E_START_TIME_AFTER_END); 438 ENTRY(VFW_E_INVALID_RECT); 439 ENTRY(VFW_E_TYPE_NOT_ACCEPTED); 440 ENTRY(VFW_E_SAMPLE_REJECTED); 441 ENTRY(VFW_E_SAMPLE_REJECTED_EOS); 442 ENTRY(VFW_S_DUPLICATE_NAME); 443 ENTRY(VFW_E_DUPLICATE_NAME); 444 ENTRY(VFW_E_TIMEOUT); 445 ENTRY(VFW_E_INVALID_FILE_FORMAT); 446 ENTRY(VFW_E_ENUM_OUT_OF_RANGE); 447 ENTRY(VFW_E_CIRCULAR_GRAPH); 448 ENTRY(VFW_E_NOT_ALLOWED_TO_SAVE); 449 ENTRY(VFW_E_TIME_ALREADY_PASSED); 450 ENTRY(VFW_E_ALREADY_CANCELLED); 451 ENTRY(VFW_E_CORRUPT_GRAPH_FILE); 452 ENTRY(VFW_E_ADVISE_ALREADY_SET); 453 ENTRY(VFW_S_STATE_INTERMEDIATE); 454 ENTRY(VFW_E_NO_MODEX_AVAILABLE); 455 ENTRY(VFW_E_NO_ADVISE_SET); 456 ENTRY(VFW_E_NO_FULLSCREEN); 457 ENTRY(VFW_E_IN_FULLSCREEN_MODE); 458 ENTRY(VFW_E_UNKNOWN_FILE_TYPE); 459 ENTRY(VFW_E_CANNOT_LOAD_SOURCE_FILTER); 460 ENTRY(VFW_S_PARTIAL_RENDER); 461 ENTRY(VFW_E_FILE_TOO_SHORT); 462 ENTRY(VFW_E_INVALID_FILE_VERSION); 463 ENTRY(VFW_S_SOME_DATA_IGNORED); 464 ENTRY(VFW_S_CONNECTIONS_DEFERRED); 465 ENTRY(VFW_E_INVALID_CLSID); 466 ENTRY(VFW_E_INVALID_MEDIA_TYPE); 467 ENTRY(VFW_E_SAMPLE_TIME_NOT_SET); 468 ENTRY(VFW_S_RESOURCE_NOT_NEEDED); 469 ENTRY(VFW_E_MEDIA_TIME_NOT_SET); 470 ENTRY(VFW_E_NO_TIME_FORMAT_SET); 471 ENTRY(VFW_E_MONO_AUDIO_HW); 472 ENTRY(VFW_S_MEDIA_TYPE_IGNORED); 473 ENTRY(VFW_E_NO_DECOMPRESSOR); 474 ENTRY(VFW_E_NO_AUDIO_HARDWARE); 475 ENTRY(VFW_S_VIDEO_NOT_RENDERED); 476 ENTRY(VFW_S_AUDIO_NOT_RENDERED); 477 ENTRY(VFW_E_RPZA); 478 ENTRY(VFW_S_RPZA); 479 ENTRY(VFW_E_PROCESSOR_NOT_SUITABLE); 480 ENTRY(VFW_E_UNSUPPORTED_AUDIO); 481 ENTRY(VFW_E_UNSUPPORTED_VIDEO); 482 ENTRY(VFW_E_MPEG_NOT_CONSTRAINED); 483 ENTRY(VFW_E_NOT_IN_GRAPH); 484 ENTRY(VFW_S_ESTIMATED); 485 ENTRY(VFW_E_NO_TIME_FORMAT); 486 ENTRY(VFW_E_READ_ONLY); 487 ENTRY(VFW_S_RESERVED); 488 ENTRY(VFW_E_BUFFER_UNDERFLOW); 489 ENTRY(VFW_E_UNSUPPORTED_STREAM); 490 ENTRY(VFW_E_NO_TRANSPORT); 491 ENTRY(VFW_S_STREAM_OFF); 492 ENTRY(VFW_S_CANT_CUE); 493 ENTRY(VFW_E_BAD_VIDEOCD); 494 ENTRY(VFW_S_NO_STOP_TIME); 495 ENTRY(VFW_E_OUT_OF_VIDEO_MEMORY); 496 ENTRY(VFW_E_VP_NEGOTIATION_FAILED); 497 ENTRY(VFW_E_DDRAW_CAPS_NOT_SUITABLE); 498 ENTRY(VFW_E_NO_VP_HARDWARE); 499 ENTRY(VFW_E_NO_CAPTURE_HARDWARE); 500 ENTRY(VFW_E_DVD_OPERATION_INHIBITED); 501 ENTRY(VFW_E_DVD_INVALIDDOMAIN); 502 ENTRY(VFW_E_DVD_NO_BUTTON); 503 ENTRY(VFW_E_DVD_GRAPHNOTREADY); 504 ENTRY(VFW_E_DVD_RENDERFAIL); 505 ENTRY(VFW_E_DVD_DECNOTENOUGH); 506 ENTRY(VFW_E_DDRAW_VERSION_NOT_SUITABLE); 507 ENTRY(VFW_E_COPYPROT_FAILED); 508 ENTRY(VFW_S_NOPREVIEWPIN); 509 ENTRY(VFW_E_TIME_EXPIRED); 510 ENTRY(VFW_S_DVD_NON_ONE_SEQUENTIAL); 511 ENTRY(VFW_E_DVD_WRONG_SPEED); 512 ENTRY(VFW_E_DVD_MENU_DOES_NOT_EXIST); 513 ENTRY(VFW_E_DVD_CMD_CANCELLED); 514 ENTRY(VFW_E_DVD_STATE_WRONG_VERSION); 515 ENTRY(VFW_E_DVD_STATE_CORRUPT); 516 ENTRY(VFW_E_DVD_STATE_WRONG_DISC); 517 ENTRY(VFW_E_DVD_INCOMPATIBLE_REGION); 518 ENTRY(VFW_E_DVD_NO_ATTRIBUTES); 519 ENTRY(VFW_E_DVD_NO_GOUP_PGC); 520 ENTRY(VFW_E_DVD_LOW_PARENTAL_LEVEL); 521 ENTRY(VFW_E_DVD_NOT_IN_KARAOKE_MODE); 522 ENTRY(VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE); 523 ENTRY(VFW_S_DVD_NOT_ACCURATE); 524 ENTRY(VFW_E_FRAME_STEP_UNSUPPORTED); 525 ENTRY(VFW_E_DVD_STREAM_DISABLED); 526 ENTRY(VFW_E_DVD_TITLE_UNKNOWN); 527 ENTRY(VFW_E_DVD_INVALID_DISC); 528 ENTRY(VFW_E_DVD_NO_RESUME_INFORMATION); 529 ENTRY(VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD); 530 ENTRY(VFW_E_PIN_ALREADY_BLOCKED); 531 ENTRY(VFW_E_CERTIFICATION_FAILURE); 532 #undef ENTRY 533 } 534 535 return NULL; 536 } 537 538 /*********************************************************************** 539 * AMGetErrorTextA (quartz.@) 540 */ 541 DWORD WINAPI AMGetErrorTextA(HRESULT hr, LPSTR pszbuf, DWORD dwBufLen) 542 { 543 LPCSTR lpszRes; 544 DWORD len; 545 546 lpszRes = hresult_to_string( hr ); 547 if ( lpszRes == NULL ) 548 return 0; 549 len = (DWORD)(strlen(lpszRes)+1); 550 if ( len > dwBufLen ) 551 return 0; 552 553 memcpy( pszbuf, lpszRes, len ); 554 return len; 555 } 556 557 /*********************************************************************** 558 * AMGetErrorTextW (quartz.@) 559 */ 560 DWORD WINAPI AMGetErrorTextW(HRESULT hr, LPWSTR pwszbuf, DWORD dwBufLen) 561 { 562 CHAR szBuf[MAX_ERROR_TEXT_LEN+1]; 563 DWORD dwLen; 564 565 dwLen = AMGetErrorTextA(hr,szBuf,MAX_ERROR_TEXT_LEN); 566 if ( dwLen == 0 ) 567 return 0; 568 szBuf[dwLen] = 0; 569 570 QUARTZ_strncpyAtoW( pwszbuf, szBuf, dwBufLen ); 571 572 return lstrlenW( pwszbuf ); 573 } 1 /* all codes are removed by author */ -
trunk/src/quartz/makefile
r6952 r8677 1 # $Id: makefile,v 1. 5 2001-10-06 08:54:26sandervl Exp $1 # $Id: makefile,v 1.6 2002-06-15 11:54:31 sandervl Exp $ 2 2 3 3 # … … 28 28 # 29 29 OBJS = \ 30 $(OBJDIR)\amundoc.obj \31 $(OBJDIR)\audren.obj \32 $(OBJDIR)\basefilt.obj \33 $(OBJDIR)\basepin.obj \34 $(OBJDIR)\complist.obj \35 $(OBJDIR)\devenum.obj \36 $(OBJDIR)\devmon.obj \37 $(OBJDIR)\enumunk.obj \38 $(OBJDIR)\fgevent.obj \39 $(OBJDIR)\fgidisp.obj \40 $(OBJDIR)\fgpass.obj \41 $(OBJDIR)\fgraph.obj \42 $(OBJDIR)\fmap.obj \43 $(OBJDIR)\fmap2.obj \44 $(OBJDIR)\ifgraph.obj \45 $(OBJDIR)\igconfig.obj \46 $(OBJDIR)\igrver.obj \47 $(OBJDIR)\imcntl.obj \48 $(OBJDIR)\imfilter.obj \49 $(OBJDIR)\impos.obj \50 $(OBJDIR)\imseek.obj \51 $(OBJDIR)\iunk.obj \52 30 $(OBJDIR)\main.obj \ 53 $(OBJDIR)\memalloc.obj \ 54 $(OBJDIR)\mtype.obj \ 55 $(OBJDIR)\regsvr.obj \ 56 $(OBJDIR)\sample.obj \ 57 $(OBJDIR)\seekpass.obj \ 58 $(OBJDIR)\sysclock.obj \ 59 $(OBJDIR)\initterm.obj \ 60 $(OBJDIR)\initquartz.obj \ 61 $(OBJDIR)\guid.obj \ 62 $(OBJDIR)\quartzrsrc.obj 31 $(OBJDIR)\quartzrsrc.obj \ 32 $(DLLENTRY) 63 33 64 34 -
trunk/src/quartz/quartz.def
r6720 r8677 1 ; $Id: quartz.def,v 1. 3 2001-09-15 15:35:59sandervl Exp $1 ; $Id: quartz.def,v 1.4 2002-06-15 11:54:32 sandervl Exp $ 2 2 3 3 ; … … 7 7 8 8 EXPORTS 9 DllCanUnloadNow = _QUARTZ_DllCanUnloadNow@0 @110 DllGetClassObject = _QUARTZ_DllGetClassObject@12 @211 DllRegisterServer = _QUARTZ_DllRegisterServer@0 @312 DllUnregisterServer = _QUARTZ_DllUnregisterServer@0 @413 AMGetErrorTextA = _AMGetErrorTextA@12 @514 AMGetErrorTextW = _AMGetErrorTextW@12 @615 AmpFactorToDB = _QUARTZ_AmpFactorToDB@4 @716 DBToAmpFactor = _QUARTZ_DBToAmpFactor@4 @89 ;; DllCanUnloadNow = _QUARTZ_DllCanUnloadNow@0 @1 10 ;; DllGetClassObject = _QUARTZ_DllGetClassObject@12 @2 11 ;; DllRegisterServer = _QUARTZ_DllRegisterServer@0 @3 12 ;; DllUnregisterServer = _QUARTZ_DllUnregisterServer@0 @4 13 ;; AMGetErrorTextA = _AMGetErrorTextA@12 @5 14 ;; AMGetErrorTextW = _AMGetErrorTextW@12 @6 15 ;; AmpFactorToDB = _QUARTZ_AmpFactorToDB@4 @7 16 ;; DBToAmpFactor = _QUARTZ_DBToAmpFactor@4 @8 17 17
Note:
See TracChangeset
for help on using the changeset viewer.