Changeset 2640 for trunk/include/win
- Timestamp:
- Feb 5, 2000, 12:12:19 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/win/wine/dd_obj_base.h
r280 r2640 1 /* $Id: dd_obj_base.h,v 1. 2 1999-07-07 07:57:37 phallerExp $ */1 /* $Id: dd_obj_base.h,v 1.3 2000-02-04 23:12:19 hugh Exp $ */ 2 2 /* 3 3 * This file defines the macros and types necessary to define COM interfaces, … … 438 438 439 439 440 #define ICOM_CALL(xfn, p) (p)->lpvtbl-> fn##xfn(p)441 #define ICOM_CALL1(xfn, p,a) (p)->lpvtbl-> fn##xfn(p,a)442 #define ICOM_CALL2(xfn, p,a,b) (p)->lpvtbl-> fn##xfn(p,a,b)443 #define ICOM_CALL3(xfn, p,a,b,c) (p)->lpvtbl-> fn##xfn(p,a,b,c)444 #define ICOM_CALL4(xfn, p,a,b,c,d) (p)->lpvtbl-> fn##xfn(p,a,b,c,d)445 #define ICOM_CALL5(xfn, p,a,b,c,d,e) (p)->lpvtbl-> fn##xfn(p,a,b,c,d,e)446 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->lpvtbl-> fn##xfn(p,a,b,c,d,e,f)447 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->lpvtbl-> fn##xfn(p,a,b,c,d,e,f,g)448 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) (p)->lpvtbl-> fn##xfn(p,a,b,c,d,e,f,g,h)449 #define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) (p)->lpvtbl-> fn##xfn(p,a,b,c,d,e,f,g,h,i,j)440 #define ICOM_CALL(xfn, p) (p)->lpvtbl->xfn(p) 441 #define ICOM_CALL1(xfn, p,a) (p)->lpvtbl->xfn(p,a) 442 #define ICOM_CALL2(xfn, p,a,b) (p)->lpvtbl->xfn(p,a,b) 443 #define ICOM_CALL3(xfn, p,a,b,c) (p)->lpvtbl->xfn(p,a,b,c) 444 #define ICOM_CALL4(xfn, p,a,b,c,d) (p)->lpvtbl->xfn(p,a,b,c,d) 445 #define ICOM_CALL5(xfn, p,a,b,c,d,e) (p)->lpvtbl->xfn(p,a,b,c,d,e) 446 #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->lpvtbl->xfn(p,a,b,c,d,e,f) 447 #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->lpvtbl->xfn(p,a,b,c,d,e,f,g) 448 #define ICOM_CALL8(xfn, p,a,b,c,d,e,f,g,h) (p)->lpvtbl->xfn(p,a,b,c,d,e,f,g,h) 449 #define ICOM_CALL10(xfn, p,a,b,c,d,e,f,g,h,i,j) (p)->lpvtbl->xfn(p,a,b,c,d,e,f,g,h,i,j) 450 450 451 451 … … 477 477 ICOM_METHOD (ULONG,AddRef) \ 478 478 ICOM_METHOD (ULONG,Release) 479 479 480 #ifdef ICOM_CINTERFACE 480 typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown); 481 struct IUnknown { 481 typedef struct ICOM_VTABLE(IUnknown) ICOM_VTABLE(IUnknown); 482 struct IUnknown 483 { 482 484 ICOM_VTABLE(IUnknown)* lpvtbl; 483 }; 484 struct ICOM_VTABLE(IUnknown) { 485 }; 486 struct ICOM_VTABLE(IUnknown) 487 { 485 488 ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj) 486 489 #else /* ICOM_CINTERFACE */ 487 struct IUnknown { 488 #ifndef ICOM_VIRTUAL_METHODS 489 union { 490 struct IUnknown 491 { 492 #ifndef ICOM_VIRTUAL_METHODS 493 union 494 { 490 495 const void* lpvtbl; 491 496 HRESULT (CALLBACK *fnQueryInterface)(IUnknown* me, REFIID riid, LPVOID* ppvObj); 492 } t;493 inline int QueryInterface(REFIID a, LPVOID* b) { return ((IUnknown*)t.lpvtbl)->t.fnQueryInterface(this,a,b); }494 #else /* ICOM_VIRTUAL_METHODS */495 ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj)496 #endif /* ICOM_VIRTUAL_METHODS */497 } t; 498 inline int QueryInterface(REFIID a, LPVOID* b) { return ((IUnknown*)t.lpvtbl)->t.fnQueryInterface(this,a,b); } 499 #else /* ICOM_VIRTUAL_METHODS */ 500 ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj) 501 #endif /* ICOM_VIRTUAL_METHODS */ 497 502 #endif /* ICOM_CINTERFACE */ 498 503 ICOM_METHOD (ULONG,AddRef) 499 504 ICOM_METHOD (ULONG,Release) 500 }; 505 }; 506 501 507 #undef ICOM_INTERFACE 502 508 … … 509 515 510 516 517 /***************************************************************************** 518 * IClassFactory interface 519 */ 520 #define ICOM_INTERFACE IClassFactory 521 #define IClassFactory_METHODS \ 522 ICOM_METHOD3(HRESULT,CreateInstance, LPUNKNOWN,pUnkOuter, REFIID,riid, LPVOID*,ppvObject) \ 523 ICOM_METHOD1(HRESULT,LockServer, BOOL,fLock) 524 #define IClassFactory_IMETHODS \ 525 IUnknown_IMETHODS \ 526 IClassFactory_METHODS 527 528 529 ICOM_DEFINE(IClassFactory,IUnknown) 530 #undef ICOM_INTERFACE 531 532 /*** IUnknown methods ***/ 533 #define IClassFactory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) 534 #define IClassFactory_AddRef(p) ICOM_CALL (AddRef,p) 535 #define IClassFactory_Release(p) ICOM_CALL (Release,p) 536 /*** IClassFactory methods ***/ 537 #define IClassFactory_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c) 538 #define IClassFactory_LockServer(p,a) ICOM_CALL1(LockServer,p,a) 539 540 541 /***************************************************************************** 542 * IMalloc interface 543 */ 544 #define ICOM_INTERFACE IMalloc16 545 #define IMalloc16_METHODS \ 546 ICOM_METHOD1 (LPVOID,Alloc, DWORD,cb) \ 547 ICOM_METHOD2 (LPVOID,Realloc, LPVOID,pv, DWORD,cb) \ 548 ICOM_VMETHOD1( Free, LPVOID,pv) \ 549 ICOM_CMETHOD1(DWORD, GetSize, LPVOID,pv) \ 550 ICOM_CMETHOD1(INT16, DidAlloc, LPVOID,pv) \ 551 ICOM_METHOD (LPVOID,HeapMinimize) 552 #define IMalloc16_IMETHODS \ 553 IUnknown_IMETHODS \ 554 IMalloc16_METHODS 555 ICOM_DEFINE(IMalloc16,IUnknown) 556 #undef ICOM_INTERFACE 557 558 /*** IUnknown methods ***/ 559 #define IMalloc16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) 560 #define IMalloc16_AddRef(p) ICOM_CALL (AddRef,p) 561 #define IMalloc16_Release(p) ICOM_CALL (Release,p) 562 /*** IMalloc16 methods ***/ 563 #define IMalloc16_Alloc(p,a) ICOM_CALL1(Alloc,p,a) 564 #define IMalloc16_Realloc(p,a,b) ICOM_CALL2(Realloc,p,a,b) 565 #define IMalloc16_Free(p,a) ICOM_CALL1(Free,p,a) 566 #define IMalloc16_GetSize(p,a) ICOM_CALL1(GetSize,p,a) 567 #define IMalloc16_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a) 568 #define IMalloc16_HeapMinimize(p) ICOM_CALL (HeapMinimize,p) 569 570 571 #define ICOM_INTERFACE IMalloc 572 #define IMalloc_METHODS \ 573 ICOM_METHOD1 (LPVOID,Alloc, DWORD,cb) \ 574 ICOM_METHOD2 (LPVOID,Realloc, LPVOID,pv, DWORD,cb) \ 575 ICOM_VMETHOD1( Free, LPVOID,pv) \ 576 ICOM_CMETHOD1(DWORD, GetSize, LPVOID,pv) \ 577 ICOM_CMETHOD1(INT, DidAlloc, LPVOID,pv) \ 578 ICOM_METHOD (LPVOID,HeapMinimize) 579 #define IMalloc_IMETHODS \ 580 IUnknown_IMETHODS \ 581 IMalloc_METHODS 582 ICOM_DEFINE(IMalloc,IUnknown) 583 #undef ICOM_INTERFACE 584 585 /*** IUnknown methods ***/ 586 #define IMalloc_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) 587 #define IMalloc_AddRef(p) ICOM_CALL (AddRef,p) 588 #define IMalloc_Release(p) ICOM_CALL (Release,p) 589 /*** IMalloc32 methods ***/ 590 #define IMalloc_Alloc(p,a) ICOM_CALL1(Alloc,p,a) 591 #define IMalloc_Realloc(p,a,b) ICOM_CALL2(Realloc,p,a,b) 592 #define IMalloc_Free(p,a) ICOM_CALL1(Free,p,a) 593 #define IMalloc_GetSize(p,a) ICOM_CALL1(GetSize,p,a) 594 #define IMalloc_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a) 595 #define IMalloc_HeapMinimize(p) ICOM_CALL (HeapMinimize,p) 596 597 598 HRESULT WINAPI CoCreateStandardMalloc16(DWORD dwMemContext, LPMALLOC16* lpMalloc); 599 600 HRESULT WINAPI CoGetMalloc16(DWORD dwMemContext,LPMALLOC16* lpMalloc); 601 HRESULT WINAPI CoGetMalloc(DWORD dwMemContext,LPMALLOC* lpMalloc); 602 603 LPVOID WINAPI CoTaskMemAlloc(ULONG size); 604 605 void WINAPI CoTaskMemFree(LPVOID ptr); 606 607 /* FIXME: unimplemented */ 608 LPVOID WINAPI CoTaskMemRealloc(LPVOID ptr, ULONG size); 609 610 611 /***************************************************************************** 612 * Additional API 613 */ 614 615 HRESULT WINAPI CoCreateGuid(GUID* pguid); 616 617 void WINAPI CoFreeAllLibraries(void); 618 619 void WINAPI CoFreeLibrary(HINSTANCE hLibrary); 620 621 void WINAPI CoFreeUnusedLibraries(void); 622 623 HRESULT WINAPI CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv); 624 625 HRESULT WINAPI CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, LPVOID pvReserved, REFIID iid, LPVOID *ppv); 626 627 HRESULT WINAPI CoInitialize16(LPVOID lpReserved); 628 HRESULT WINAPI CoInitialize(LPVOID lpReserved); 629 HRESULT WINAPI CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit); 630 631 void WINAPI CoUninitialize16(void); 632 void WINAPI CoUninitialize(void); 633 634 typedef enum tagCOINIT 635 { 636 COINIT_APARTMENTTHREADED = 0x2, /* Apartment model */ 637 COINIT_MULTITHREADED = 0x0, /* OLE calls objects on any thread */ 638 COINIT_DISABLE_OLE1DDE = 0x4, /* Don't use DDE for Ole1 support */ 639 COINIT_SPEED_OVER_MEMORY = 0x8 /* Trade memory for speed */ 640 } COINIT; 641 642 643 /* FIXME: not implemented */ 644 BOOL WINAPI CoIsOle1Class(REFCLSID rclsid); 645 646 HINSTANCE WINAPI CoLoadLibrary(LPOLESTR16 lpszLibName, BOOL bAutoFree); 647 648 HRESULT WINAPI CoLockObjectExternal16(LPUNKNOWN pUnk, BOOL16 fLock, BOOL16 fLastUnlockReleases); 649 HRESULT WINAPI CoLockObjectExternal(LPUNKNOWN pUnk, BOOL fLock, BOOL fLastUnlockReleases); 650 651 /* class registration flags; passed to CoRegisterClassObject */ 652 typedef enum tagREGCLS 653 { 654 REGCLS_SINGLEUSE = 0, 655 REGCLS_MULTIPLEUSE = 1, 656 REGCLS_MULTI_SEPARATE = 2, 657 REGCLS_SUSPENDED = 4 658 } REGCLS; 659 660 HRESULT WINAPI CoRegisterClassObject16(REFCLSID rclsid, LPUNKNOWN pUnk, DWORD dwClsContext, DWORD flags, LPDWORD lpdwRegister); 661 HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid,LPUNKNOWN pUnk,DWORD dwClsContext,DWORD flags,LPDWORD lpdwRegister); 662 663 HRESULT WINAPI CoRevokeClassObject(DWORD dwRegister); 664 665 void WINAPI CoUninitialize16(void); 666 void WINAPI CoUninitialize(void); 667 668 /***************************************************************************** 669 * COM Server dll - exports 670 */ 671 HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv); 672 HRESULT WINAPI DllCanUnloadNow(void); 673 674 /***************************************************************************** 675 * Internal WINE API 676 */ 677 #ifdef __WINE__ 678 HRESULT WINAPI WINE_StringFromCLSID(const CLSID *id, LPSTR); 679 #endif 680 681 511 682 #endif /* __WINE_WINE_OBJ_BASE_H */ 512 683
Note:
See TracChangeset
for help on using the changeset viewer.