From ea1640fc0c18846935ad68d25494a855466e9212 Mon Sep 17 00:00:00 2001 From: Paul Quinn Date: Wed, 10 Mar 1999 18:03:53 +0000 Subject: [PATCH] Added a lot of new OLE interfaces. --- dlls/shell32/dataobject.c | 2 +- dlls/shell32/pidl.c | 1 - dlls/shell32/shlfolder.c | 3 +- include/commdlg.h | 1 + include/imm.h | 411 ++++++++++++++++++++++++- include/oaidl.h | 15 +- include/objbase.h | 110 +++++++ include/ocidl.h | 3 + include/ole.h | 7 + include/ole2ver.h | 13 + include/oleauto.h | 3 +- include/olectl.h | 81 ++++- include/oleidl.h | 2 + include/shlguid.h | 2 - include/shlobj.h | 37 +-- include/winbase.h | 30 ++ include/wine/obj_base.h | 30 ++ include/wine/obj_control.h | 130 +++++++- include/wine/obj_dataobject.h | 16 +- include/wine/obj_dragdrop.h | 1 + include/wine/obj_inplace.h | 9 +- include/wine/obj_oleaut.h | 558 ++++++++++++++++++++++++++++------ include/wine/obj_oleobj.h | 164 ++++++++++ include/wine/obj_oleundo.h | 300 ++++++++++++++++++ include/wine/obj_oleview.h | 93 ++++++ include/wine/obj_picture.h | 84 +++++ include/wine/obj_property.h | 434 ++++++++++++++++++++++++++ include/winnt.h | 31 +- include/wintypes.h | 2 +- include/wtypes.h | 22 +- ole/compobj.c | 3 +- ole/guid.c | 1 - ole/ole2disp.c | 10 +- ole/olecli.c | 2 +- ole/oledlg.c | 4 +- ole/oleobj.c | 117 +++---- 36 files changed, 2496 insertions(+), 236 deletions(-) create mode 100644 include/ole2ver.h create mode 100644 include/wine/obj_oleobj.h create mode 100644 include/wine/obj_oleundo.h create mode 100644 include/wine/obj_oleview.h create mode 100644 include/wine/obj_picture.h create mode 100644 include/wine/obj_property.h diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c index 6f260b06474..efa3943453f 100644 --- a/dlls/shell32/dataobject.c +++ b/dlls/shell32/dataobject.c @@ -7,7 +7,7 @@ */ #include -#include "wine/obj_dataobject.h" +#include "oleidl.h" #include "pidl.h" #include "winerror.h" #include "shell32_main.h" diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c index 440b4a9d144..1e9f5939b5f 100644 --- a/dlls/shell32/pidl.c +++ b/dlls/shell32/pidl.c @@ -11,7 +11,6 @@ #include #include #include -#include "ole.h" #include "ole2.h" #include "debug.h" #include "shlobj.h" diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c index 12bf21f4db7..67d2e2900de 100644 --- a/dlls/shell32/shlfolder.c +++ b/dlls/shell32/shlfolder.c @@ -12,8 +12,7 @@ #include "debug.h" #include "winerror.h" -#include "wine/obj_base.h" -#include "wine/obj_dragdrop.h" +#include "oleidl.h" #include "shlguid.h" #include "pidl.h" diff --git a/include/commdlg.h b/include/commdlg.h index 2a9545519e7..fc2846f20cf 100644 --- a/include/commdlg.h +++ b/include/commdlg.h @@ -10,6 +10,7 @@ extern "C" { #endif #include "wintypes.h" /* needed for CHOOSEFONT structure */ +#include "winuser.h" #define OFN_READONLY 0x00000001 #define OFN_OVERWRITEPROMPT 0x00000002 diff --git a/include/imm.h b/include/imm.h index b1d5964f3aa..187834cae9c 100644 --- a/include/imm.h +++ b/include/imm.h @@ -7,6 +7,10 @@ #include "wintypes.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef HANDLE HIMC; typedef HANDLE HIMCC; @@ -15,12 +19,409 @@ typedef HKL *LPHKL; typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID); typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID); -typedef void *LPCANDIDATELIST; -typedef void *LPCANDIDATEFORM; +typedef struct tagCANDIDATEFORM +{ + DWORD dwIndex; + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} CANDIDATEFORM, *LPCANDIDATEFORM; -typedef void *LPSTYLEBUFA; -typedef void *LPSTYLEBUFW; +typedef struct tagCANDIDATELIST +{ + DWORD dwSize; + DWORD dwStyle; + DWORD dwCount; + DWORD dwSelection; + DWORD dwPageStart; + DWORD dwPageSize; + DWORD dwOffset[1]; +} CANDIDATELIST, *LPCANDIDATELIST; -typedef void *LPCOMPOSITIONFORM; +typedef struct tagSTYLEBUFA +{ + DWORD dwStyle; + CHAR szDescription[32]; +} STYLEBUFA, *LPSTYLEBUFA; + +typedef struct tagSTYLEBUFW +{ + DWORD dwStyle; + WCHAR szDescription[32]; +} STYLEBUFW, *LPSTYLEBUFW; + +DECL_WINELIB_TYPE_AW(STYLEBUF) +DECL_WINELIB_TYPE_AW(LPSTYLEBUF) + +typedef struct _tagCOMPOSITIONFORM +{ + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} COMPOSITIONFORM, *LPCOMPOSITIONFORM; + +// wParam for WM_IME_CONTROL +#define IMC_GETCANDIDATEPOS 0x0007 +#define IMC_SETCANDIDATEPOS 0x0008 +#define IMC_GETCOMPOSITIONFONT 0x0009 +#define IMC_SETCOMPOSITIONFONT 0x000A +#define IMC_GETCOMPOSITIONWINDOW 0x000B +#define IMC_SETCOMPOSITIONWINDOW 0x000C +#define IMC_GETSTATUSWINDOWPOS 0x000F +#define IMC_SETSTATUSWINDOWPOS 0x0010 +#define IMC_CLOSESTATUSWINDOW 0x0021 +#define IMC_OPENSTATUSWINDOW 0x0022 + +// wParam for WM_IME_CONTROL to the soft keyboard +// dwAction for ImmNotifyIME +#define NI_OPENCANDIDATE 0x0010 +#define NI_CLOSECANDIDATE 0x0011 +#define NI_SELECTCANDIDATESTR 0x0012 +#define NI_CHANGECANDIDATELIST 0x0013 +#define NI_FINALIZECONVERSIONRESULT 0x0014 +#define NI_COMPOSITIONSTR 0x0015 +#define NI_SETCANDIDATE_PAGESTART 0x0016 +#define NI_SETCANDIDATE_PAGESIZE 0x0017 + +// lParam for WM_IME_SETCONTEXT +#define ISC_SHOWUICANDIDATEWINDOW 0x00000001 +#define ISC_SHOWUICOMPOSITIONWINDOW 0x80000000 +#define ISC_SHOWUIGUIDELINE 0x40000000 +#define ISC_SHOWUIALLCANDIDATEWINDOW 0x0000000F +#define ISC_SHOWUIALL 0xC000000F + + +// dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR +#define CPS_COMPLETE 0x0001 +#define CPS_CONVERT 0x0002 +#define CPS_REVERT 0x0003 +#define CPS_CANCEL 0x0004 + + +// the modifiers of hot key +#define MOD_ALT 0x0001 +#define MOD_CONTROL 0x0002 +#define MOD_SHIFT 0x0004 + +#define MOD_LEFT 0x8000 +#define MOD_RIGHT 0x4000 + +#define MOD_ON_KEYUP 0x0800 +#define MOD_IGNORE_ALL_MODIFIER 0x0400 + + +// Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F +#define IME_CHOTKEY_IME_NONIME_TOGGLE 0x10 +#define IME_CHOTKEY_SHAPE_TOGGLE 0x11 +#define IME_CHOTKEY_SYMBOL_TOGGLE 0x12 + +// Windows for Japanese Edition hot key ID from 0x30 - 0x4F +#define IME_JHOTKEY_CLOSE_OPEN 0x30 + +// Windows for Korean Edition hot key ID from 0x50 - 0x6F +#define IME_KHOTKEY_SHAPE_TOGGLE 0x50 +#define IME_KHOTKEY_HANJACONVERT 0x51 +#define IME_KHOTKEY_ENGLISH 0x52 +// Windows for Tranditional Chinese Edition hot key ID from 0x70 - 0x8F +#define IME_THOTKEY_IME_NONIME_TOGGLE 0x70 +#define IME_THOTKEY_SHAPE_TOGGLE 0x71 +#define IME_THOTKEY_SYMBOL_TOGGLE 0x72 + +// direct switch hot key ID from 0x100 - 0x11F +#define IME_HOTKEY_DSWITCH_FIRST 0x100 +#define IME_HOTKEY_DSWITCH_LAST 0x11F + +// IME private hot key from 0x200 - 0x21F +#define IME_HOTKEY_PRIVATE_FIRST 0x200 +#define IME_ITHOTKEY_RESEND_RESULTSTR 0x200 +#define IME_ITHOTKEY_PREVIOUS_COMPOSITION 0x201 +#define IME_ITHOTKEY_UISTYLE_TOGGLE 0x202 +#define IME_HOTKEY_PRIVATE_LAST 0x21F + + +// dwSystemInfoFlags bits +// parameter of ImmGetCompositionString +#define GCS_COMPREADSTR 0x0001 +#define GCS_COMPREADATTR 0x0002 +#define GCS_COMPREADCLAUSE 0x0004 +#define GCS_COMPSTR 0x0008 +#define GCS_COMPATTR 0x0010 +#define GCS_COMPCLAUSE 0x0020 +#define GCS_CURSORPOS 0x0080 +#define GCS_DELTASTART 0x0100 +#define GCS_RESULTREADSTR 0x0200 +#define GCS_RESULTREADCLAUSE 0x0400 +#define GCS_RESULTSTR 0x0800 +#define GCS_RESULTCLAUSE 0x1000 + +// style bit flags for WM_IME_COMPOSITION +#define CS_INSERTCHAR 0x2000 +#define CS_NOMOVECARET 0x4000 + + +// bits of fdwInit of INPUTCONTEXT +// IME version constants +#define IMEVER_0310 0x0003000A +#define IMEVER_0400 0x00040000 + + +// IME property bits +#define IME_PROP_AT_CARET 0x00010000 +#define IME_PROP_SPECIAL_UI 0x00020000 +#define IME_PROP_CANDLIST_START_FROM_1 0x00040000 +#define IME_PROP_UNICODE 0x00080000 + + +// IME UICapability bits +#define UI_CAP_2700 0x00000001 +#define UI_CAP_ROT90 0x00000002 +#define UI_CAP_ROTANY 0x00000004 +// ImmSetCompositionString Capability bits +#define SCS_CAP_COMPSTR 0x00000001 +#define SCS_CAP_MAKEREAD 0x00000002 + + +// IME WM_IME_SELECT inheritance Capability bits +#define SELECT_CAP_CONVERSION 0x00000001 +#define SELECT_CAP_SENTENCE 0x00000002 + + +// ID for deIndex of ImmGetGuideLine +#define GGL_LEVEL 0x00000001 +#define GGL_INDEX 0x00000002 +#define GGL_STRING 0x00000003 +#define GGL_PRIVATE 0x00000004 + +// ID for dwLevel of GUIDELINE Structure +#define GL_LEVEL_NOGUIDELINE 0x00000000 +#define GL_LEVEL_FATAL 0x00000001 +#define GL_LEVEL_ERROR 0x00000002 +#define GL_LEVEL_WARNING 0x00000003 +#define GL_LEVEL_INFORMATION 0x00000004 + +// ID for dwIndex of GUIDELINE Structure +#define GL_ID_UNKNOWN 0x00000000 +#define GL_ID_NOMODULE 0x00000001 +#define GL_ID_NODICTIONARY 0x00000010 +#define GL_ID_CANNOTSAVE 0x00000011 +#define GL_ID_NOCONVERT 0x00000020 +#define GL_ID_TYPINGERROR 0x00000021 +#define GL_ID_TOOMANYSTROKE 0x00000022 +#define GL_ID_READINGCONFLICT 0x00000023 +#define GL_ID_INPUTREADING 0x00000024 +#define GL_ID_INPUTRADICAL 0x00000025 +#define GL_ID_INPUTCODE 0x00000026 +#define GL_ID_INPUTSYMBOL 0x00000027 +#define GL_ID_CHOOSECANDIDATE 0x00000028 +#define GL_ID_REVERSECONVERSION 0x00000029 +#define GL_ID_PRIVATE_FIRST 0x00008000 +#define GL_ID_PRIVATE_LAST 0x0000FFFF + +// ID for dwIndex of ImmGetProperty +#define IGP_GETIMEVERSION (DWORD)(-4) +#define IGP_PROPERTY 0x00000004 +#define IGP_CONVERSION 0x00000008 +#define IGP_SENTENCE 0x0000000c +#define IGP_UI 0x00000010 +#define IGP_SETCOMPSTR 0x00000014 +#define IGP_SELECT 0x00000018 + + +// dwIndex for ImmSetCompositionString API +#define SCS_SETSTR (GCS_COMPREADSTR|GCS_COMPSTR) +#define SCS_CHANGEATTR (GCS_COMPREADATTR|GCS_COMPATTR) +#define SCS_CHANGECLAUSE (GCS_COMPREADCLAUSE|GCS_COMPCLAUSE) +// attribute for COMPOSITIONSTRING Structure +#define ATTR_INPUT 0x00 +#define ATTR_TARGET_CONVERTED 0x01 +#define ATTR_CONVERTED 0x02 +#define ATTR_TARGET_NOTCONVERTED 0x03 +#define ATTR_INPUT_ERROR 0x04 + + +// bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW +#define CFS_DEFAULT 0x0000 +#define CFS_RECT 0x0001 +#define CFS_POINT 0x0002 +#define CFS_FORCE_POSITION 0x0020 +#define CFS_CANDIDATEPOS 0x0040 +#define CFS_EXCLUDE 0x0080 + +// conversion direction for ImmGetConversionList +#define GCL_CONVERSION 0x0001 +#define GCL_REVERSECONVERSION 0x0002 +#define GCL_REVERSE_LENGTH 0x0003 + + +// bit field for conversion mode +#define IME_CMODE_ALPHANUMERIC 0x0000 +#define IME_CMODE_NATIVE 0x0001 +#define IME_CMODE_CHINESE IME_CMODE_NATIVE +// IME_CMODE_HANGEUL is old name of IME_CMODE_HANGUL. It will be gone eventually. +#define IME_CMODE_HANGEUL IME_CMODE_NATIVE +#define IME_CMODE_HANGUL IME_CMODE_NATIVE +#define IME_CMODE_JAPANESE IME_CMODE_NATIVE +#define IME_CMODE_KATAKANA 0x0002 // only effect under IME_CMODE_NATIVE +#define IME_CMODE_LANGUAGE 0x0003 +#define IME_CMODE_FULLSHAPE 0x0008 +#define IME_CMODE_ROMAN 0x0010 +#define IME_CMODE_CHARCODE 0x0020 +#define IME_CMODE_HANJACONVERT 0x0040 +#define IME_CMODE_SOFTKBD 0x0080 +#define IME_CMODE_NOCONVERSION 0x0100 +#define IME_CMODE_EUDC 0x0200 +#define IME_CMODE_SYMBOL 0x0400 + + +#define IME_SMODE_NONE 0x0000 +#define IME_SMODE_PLAURALCLAUSE 0x0001 +#define IME_SMODE_SINGLECONVERT 0x0002 +#define IME_SMODE_AUTOMATIC 0x0004 +#define IME_SMODE_PHRASEPREDICT 0x0008 + +// style of candidate +#define IME_CAND_UNKNOWN 0x0000 +#define IME_CAND_READ 0x0001 +#define IME_CAND_CODE 0x0002 +#define IME_CAND_MEANING 0x0003 +#define IME_CAND_RADICAL 0x0004 +#define IME_CAND_STROKE 0x0005 + + +// wParam of report message WM_IME_NOTIFY +#define IMN_CLOSESTATUSWINDOW 0x0001 +#define IMN_OPENSTATUSWINDOW 0x0002 +#define IMN_CHANGECANDIDATE 0x0003 +#define IMN_CLOSECANDIDATE 0x0004 +#define IMN_OPENCANDIDATE 0x0005 +#define IMN_SETCONVERSIONMODE 0x0006 +#define IMN_SETSENTENCEMODE 0x0007 +#define IMN_SETOPENSTATUS 0x0008 +#define IMN_SETCANDIDATEPOS 0x0009 +#define IMN_SETCOMPOSITIONFONT 0x000A +#define IMN_SETCOMPOSITIONWINDOW 0x000B +#define IMN_SETSTATUSWINDOWPOS 0x000C +#define IMN_GUIDELINE 0x000D +#define IMN_PRIVATE 0x000E + + +// error code of ImmGetCompositionString +#define IMM_ERROR_NODATA (-1) +#define IMM_ERROR_GENERAL (-2) + + +// dialog mode of ImmConfigureIME +#define IME_CONFIG_GENERAL 1 +#define IME_CONFIG_REGISTERWORD 2 +#define IME_CONFIG_SELECTDICTIONARY 3 + +// dialog mode of ImmEscape +#define IME_ESC_QUERY_SUPPORT 0x0003 +#define IME_ESC_RESERVED_FIRST 0x0004 +#define IME_ESC_RESERVED_LAST 0x07FF +#define IME_ESC_PRIVATE_FIRST 0x0800 +#define IME_ESC_PRIVATE_LAST 0x0FFF +#define IME_ESC_SEQUENCE_TO_INTERNAL 0x1001 +#define IME_ESC_GET_EUDC_DICTIONARY 0x1003 +#define IME_ESC_SET_EUDC_DICTIONARY 0x1004 +#define IME_ESC_MAX_KEY 0x1005 +#define IME_ESC_IME_NAME 0x1006 +#define IME_ESC_SYNC_HOTKEY 0x1007 +#define IME_ESC_HANJA_MODE 0x1008 +#define IME_ESC_AUTOMATA 0x1009 +#define IME_ESC_PRIVATE_HOTKEY 0x100a + + +// style of word registration +#define IME_REGWORD_STYLE_EUDC 0x00000001 +#define IME_REGWORD_STYLE_USER_FIRST 0x80000000 +#define IME_REGWORD_STYLE_USER_LAST 0xFFFFFFFF + +// type of soft keyboard +// for Windows Tranditional Chinese Edition +#define SOFTKEYBOARD_TYPE_T1 0x0001 +// for Windows Simplified Chinese Edition +#define SOFTKEYBOARD_TYPE_C1 0x0002 + + +HIMC WINAPI ImmAssociateContext(HWND, HIMC); +BOOL WINAPI ImmConfigureIMEA(HKL, HWND, DWORD, LPVOID); +BOOL WINAPI ImmConfigureIMEW(HKL, HWND, DWORD, LPVOID); +#define ImmConfigureIME WINELIB_NAME_AW(ImmConfigureIME) +HIMC WINAPI ImmCreateContext(); +BOOL WINAPI ImmDestroyContext(HIMC hIMC); +UINT WINAPI ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, LPVOID); +UINT WINAPI ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID); +#define ImmEnumRegisterWord WINELIB_NAME_AW(ImmEnumRegisterWord) +LRESULT WINAPI ImmEscapeA(HKL, HIMC, UINT, LPVOID); +LRESULT WINAPI ImmEscapeW(HKL, HIMC, UINT, LPVOID); +#define ImmEscape WINELIB_NAME_AW(ImmEscape) +DWORD WINAPI ImmGetCandidateListA(HIMC, DWORD, LPCANDIDATELIST, DWORD); +DWORD WINAPI ImmGetCandidateListW(HIMC, DWORD, LPCANDIDATELIST, DWORD); +#define ImmGetCandidateList WINELIB_NAME_AW(ImmGetCandidateList) +DWORD WINAPI ImmGetCandidateListCountA(HIMC, LPDWORD); +DWORD WINAPI ImmGetCandidateListCountW(HIMC, LPDWORD); +#define ImmGetCandidateListCount WINELIB_NAME_AW(ImmGetCandidateListCount) +BOOL WINAPI ImmGetCandidateWindow(HIMC, DWORD, LPCANDIDATEFORM); +BOOL WINAPI ImmGetCompositionFontA(HIMC, LPLOGFONTA); +BOOL WINAPI ImmGetCompositionFontW(HIMC, LPLOGFONTW); +#define ImmGetCompositionFont WINELIB_NAME_AW(ImmGetCompositionFont) +LONG WINAPI ImmGetCompositionStringA(HIMC, DWORD, LPVOID, DWORD); +LONG WINAPI ImmGetCompositionStringW(HIMC, DWORD, LPVOID, DWORD); +#define ImmGetCompositionString WINELIB_NAME_AW(ImmGetCompositionString) +BOOL WINAPI ImmGetCompositionWindow(HIMC, LPCOMPOSITIONFORM); +HIMC WINAPI ImmGetContext(HWND); +DWORD WINAPI ImmGetConversionListA(HKL, HIMC, LPCSTR, LPCANDIDATELIST, DWORD, UINT); +DWORD WINAPI ImmGetConversionListW(HKL, HIMC, LPCWSTR, LPCANDIDATELIST, DWORD, UINT); +#define ImmGetConversionList WINELIB_NAME_AW(ImmGetConversionList) +BOOL WINAPI ImmGetConversionStatus(HIMC, LPDWORD, LPDWORD); +HWND WINAPI ImmGetDefaultIMEWnd(HWND); +UINT WINAPI ImmGetDescriptionA(HKL, LPSTR, UINT); +UINT WINAPI ImmGetDescriptionW(HKL, LPWSTR, UINT); +#define ImmGetDescription WINELIB_NAME_AW(ImmGetDescription) +DWORD WINAPI ImmGetGuideLineA(HIMC, DWORD, LPSTR, DWORD); +DWORD WINAPI ImmGetGuideLineW(HIMC, DWORD, LPWSTR, DWORD); +#define ImmGetGuideLine WINELIB_NAME_AW(ImmGetGuideLine) +UINT WINAPI ImmGetIMEFileNameA(HKL, LPSTR, UINT); +UINT WINAPI ImmGetIMEFileNameW(HKL, LPWSTR, UINT); +#define ImmGetIMEFileName WINELIB_NAME_AW(ImmGetIMEFileName) +BOOL WINAPI ImmGetOpenStatus(HIMC); +DWORD WINAPI ImmGetProperty(HKL, DWORD); +UINT WINAPI ImmGetRegisterWordStyleA(HKL, UINT, LPSTYLEBUFA); +UINT WINAPI ImmGetRegisterWordStyleW(HKL, UINT, LPSTYLEBUFW); +#define ImmGetRegisterWordStyle WINELIB_NAME_AW(ImmGetRegisterWordStyle) +BOOL WINAPI ImmGetStatusWindowPos(HIMC, LPPOINT); +UINT WINAPI ImmGetVirtualKey(HWND); +HKL WINAPI ImmInstallIMEA(LPCSTR, LPCSTR); +HKL WINAPI ImmInstallIMEW(LPCWSTR, LPCWSTR); +#define ImmInstallIME WINELIB_NAME_AW(ImmInstallIME) +BOOL WINAPI ImmIsIME(HKL); +BOOL WINAPI ImmIsUIMessageA(HWND, UINT, WPARAM, LPARAM); +BOOL WINAPI ImmIsUIMessageW(HWND, UINT, WPARAM, LPARAM); +#define ImmIsUIMessage WINELIB_NAME_AW(ImmIsUIMessage) +BOOL WINAPI ImmNotifyIME(HIMC, DWORD, DWORD, DWORD); +BOOL WINAPI ImmRegisterWordA(HKL, LPCSTR, DWORD, LPCSTR); +BOOL WINAPI ImmRegisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR); +#define ImmRegisterWord WINELIB_NAME_AW(ImmRegisterWord) +BOOL WINAPI ImmReleaseContext(HWND, HIMC); +BOOL WINAPI ImmSetCandidateWindow(HIMC, LPCANDIDATEFORM); +BOOL WINAPI ImmSetCompositionFontA(HIMC, LPLOGFONTA); +BOOL WINAPI ImmSetCompositionFontW(HIMC, LPLOGFONTW); +#define ImmSetCompositionFont WINELIB_NAME_AW(ImmSetCompositionFont) +BOOL WINAPI ImmSetCompositionStringA(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); +BOOL WINAPI ImmSetCompositionStringW(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); +#define ImmSetCompositionString WINELIB_NAME_AW(ImmSetCompositionString) +BOOL WINAPI ImmSetCompositionWindow(HIMC, LPCOMPOSITIONFORM); +BOOL WINAPI ImmSetConversionStatus(HIMC, DWORD, DWORD); +BOOL WINAPI ImmSetOpenStatus(HIMC, BOOL); +BOOL WINAPI ImmSetStatusWindowPos(HIMC, LPPOINT); +BOOL WINAPI ImmSimulateHotKey(HWND, DWORD); +BOOL WINAPI ImmUnregisterWordA(HKL, LPCSTR, DWORD, LPCSTR); +BOOL WINAPI ImmUnregisterWordW(HKL, LPCWSTR, DWORD, LPCWSTR); +#define ImmUnregisterWord WINELIB_NAME_AW(ImmUnregisterWord) + +#ifdef __cplusplus +} +#endif #endif /* __WINE_IMM_H */ diff --git a/include/oaidl.h b/include/oaidl.h index 52a3c5a7f44..8d2860124e4 100644 --- a/include/oaidl.h +++ b/include/oaidl.h @@ -1,23 +1,12 @@ #ifndef __WINE_OAIDL_H #define __WINE_OAIDL_H +#include "ole2.h" +#include "objidl.h" #include "wine/obj_base.h" /* the following depend only on obj_base.h */ #include "wine/obj_oleaut.h" -typedef enum tagCALLCONV { - CC_CDECL = 1, - CC_MSCPASCAL = CC_CDECL + 1, - CC_PASCAL = CC_MSCPASCAL, - CC_MACPASCAL = CC_PASCAL + 1, - CC_STDCALL = CC_MACPASCAL + 1, - CC_RESERVED = CC_STDCALL + 1, - CC_SYSCALL = CC_RESERVED + 1, - CC_MPWCDECL = CC_SYSCALL + 1, - CC_MPWPASCAL = CC_MPWCDECL + 1, - CC_MAX = CC_MPWPASCAL + 1 -} CALLCONV; - #endif /* _WINE_OAIDL_H */ diff --git a/include/objbase.h b/include/objbase.h index b41f35c955b..f927b9eb33d 100644 --- a/include/objbase.h +++ b/include/objbase.h @@ -18,5 +18,115 @@ /* the following depend on obj_moniker.h */ #include "wine/obj_dataobject.h" +#include "wine/obj_dragdrop.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus + #define EXTERN_C extern "C" +#else + #define EXTERN_C extern +#endif + +#define STDMETHODCALLTYPE __stdcall +#define STDMETHODVCALLTYPE __cdecl +#define STDAPICALLTYPE __stdcall +#define STDAPIVCALLTYPE __cdecl + +#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE +#define STDAPI_(type) EXTERN_C type STDAPICALLTYPE + +#define STDMETHODIMP HRESULT STDMETHODCALLTYPE +#define STDMETHODIMP_(type) type STDMETHODCALLTYPE + + +#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE +#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE + +#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE +#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE + +#define WINOLEAPI STDAPI +#define WINOLEAPI_(type) STDAPI_(type) + +#define BEGIN_INTERFACE +#define END_INTERFACE + +#ifdef __LIBMFC__ +/* All of these will eventually need to go once headers in win_include are wynified. */ +/* These macros are msdev's way of defining COM objects. */ + +#if defined(__cplusplus) && !defined(CINTERFACE) +#define interface struct +#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method +#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method +#define PURE = 0 +#define THIS_ +#define THIS void +#define DECLARE_INTERFACE(iface) interface iface +#define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface + + +#if !defined(BEGIN_INTERFACE) +#if defined(_MPPC_) && \ + ( (defined(_MSC_VER) || defined(__SC__) || defined(__MWERKS__)) && \ + !defined(NO_NULL_VTABLE_ENTRY) ) + #define BEGIN_INTERFACE virtual void a() {} + #define END_INTERFACE +#else + #define BEGIN_INTERFACE + #define END_INTERFACE +#endif +#endif + +#else + +#define interface struct + +#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method) +#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method) + +#if !defined(BEGIN_INTERFACE) +#if defined(_MPPC_) + #define BEGIN_INTERFACE void *b; + #define END_INTERFACE +#else + #define BEGIN_INTERFACE + #define END_INTERFACE +#endif +#endif + +#define PURE +#define THIS_ INTERFACE FAR* This, +#define THIS INTERFACE FAR* This +#ifdef CONST_VTABLE +#undef CONST_VTBL +#define CONST_VTBL const +#define DECLARE_INTERFACE(iface) typedef interface iface { \ + const struct iface##Vtbl FAR* lpVtbl; \ + } iface; \ + typedef const struct iface##Vtbl iface##Vtbl; \ + const struct iface##Vtbl +#else +#undef CONST_VTBL +#define CONST_VTBL +#define DECLARE_INTERFACE(iface) typedef interface iface { \ + struct iface##Vtbl FAR* lpVtbl; \ + } iface; \ + typedef struct iface##Vtbl iface##Vtbl; \ + struct iface##Vtbl +#endif +#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface) + +#endif +/* end MsDev's style, all of that must eventually go! */ +#endif /* __LIBMFC__ */ + + +#ifdef __cplusplus +}; /* extern "C" { */ +#endif #endif /* __WINE_OBJBASE_H */ diff --git a/include/ocidl.h b/include/ocidl.h index 8691143a288..bce3185b068 100644 --- a/include/ocidl.h +++ b/include/ocidl.h @@ -6,9 +6,12 @@ /* the following depend only on obj_base.h */ #include "wine/obj_olefont.h" +#include "wine/obj_picture.h" #include "wine/obj_control.h" #include "wine/obj_connection.h" +#include "wine/obj_property.h" +#include "wine/obj_oleundo.h" #endif /* __WINE_OCIDL_H */ diff --git a/include/ole.h b/include/ole.h index a007d89936a..f79f9c1c7f2 100644 --- a/include/ole.h +++ b/include/ole.h @@ -14,6 +14,9 @@ */ #include "wtypes.h" +#ifdef __cplusplus +extern "C" { +#endif #define OLESTR16(x) x #define OLESTR(x) L##x /* probably wrong */ @@ -277,4 +280,8 @@ HINSTANCE WINAPI CoLoadLibrary(LPSTR lpszLibName, BOOL bAutoFree); void WINAPI CoFreeUnusedLibraries(void); void WINAPI CoFreeAllLibraries(void); +#ifdef __cplusplus +} /*extern*/ +#endif + #endif /* __WINE_OLE_H */ diff --git a/include/ole2ver.h b/include/ole2ver.h new file mode 100644 index 00000000000..a7b301c5bbe --- /dev/null +++ b/include/ole2ver.h @@ -0,0 +1,13 @@ +/* + * ole2ver.h - Version number info + */ + +#ifndef __WINE_OLE2VER_H +#define __WINE_OLE2VER_H + + /* OLE version */ +#define rmm 23 +#define rup 639 + +#endif /* __WINE_OLE2VER_H */ + diff --git a/include/oleauto.h b/include/oleauto.h index 440d1392cd2..d6235e502ae 100644 --- a/include/oleauto.h +++ b/include/oleauto.h @@ -5,8 +5,9 @@ extern "C" { #endif -#include +/*#include */ #include "mapidefs.h" +#include "wine/obj_oleaut.h" #include "oaidl.h" BSTR16 WINAPI SysAllocString16(LPOLESTR16); diff --git a/include/olectl.h b/include/olectl.h index abe7b752d6d..a1a332ca893 100644 --- a/include/olectl.h +++ b/include/olectl.h @@ -2,7 +2,6 @@ #define __WINE_OLECTL_H #include "wintypes.h" -#include "ole.h" #define WINOLECTLAPI INT WINAPI @@ -22,6 +21,86 @@ typedef struct tagFONTDESC { WINOLECTLAPI OleCreateFontIndirect(LPFONTDESC lpFontDesc, REFIID riid, VOID** ppvObj); +typedef long OLE_XPOS_PIXELS; +typedef long OLE_YPOS_PIXELS; +typedef long OLE_XSIZE_PIXELS; +typedef long OLE_YSIZE_PIXELS; +typedef float OLE_XPOS_CONTAINER; +typedef float OLE_YPOS_CONTAINER; +typedef float OLE_XSIZE_CONTAINER; +typedef float OLE_YSIZE_CONTAINER; + +typedef enum +{ + triUnchecked = 0, + triChecked = 1, + triGray = 2 +} OLE_TRISTATE; + +typedef VARIANT_BOOL OLE_OPTEXCLUSIVE; +typedef VARIANT_BOOL OLE_CANCELBOOL; +typedef VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; + +/* standard dispatch ID's */ +#define DISPID_CLICK (-600) +#define DISPID_DBLCLICK (-601) +#define DISPID_KEYDOWN (-602) +#define DISPID_KEYPRESS (-603) +#define DISPID_KEYUP (-604) +#define DISPID_MOUSEDOWN (-605) +#define DISPID_MOUSEMOVE (-606) +#define DISPID_MOUSEUP (-607) +#define DISPID_ERROREVENT (-608) +#define DISPID_READYSTATECHANGE (-609) + +#define DISPID_AMBIENT_BACKCOLOR (-701) +#define DISPID_AMBIENT_DISPLAYNAME (-702) +#define DISPID_AMBIENT_FONT (-703) +#define DISPID_AMBIENT_FORECOLOR (-704) +#define DISPID_AMBIENT_LOCALEID (-705) +#define DISPID_AMBIENT_MESSAGEREFLECT (-706) +#define DISPID_AMBIENT_SCALEUNITS (-707) +#define DISPID_AMBIENT_TEXTALIGN (-708) +#define DISPID_AMBIENT_USERMODE (-709) +#define DISPID_AMBIENT_UIDEAD (-710) +#define DISPID_AMBIENT_SHOWGRABHANDLES (-711) +#define DISPID_AMBIENT_SHOWHATCHING (-712) +#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713) +#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714) +#define DISPID_AMBIENT_AUTOCLIP (-715) +#define DISPID_AMBIENT_APPEARANCE (-716) +#define DISPID_AMBIENT_PALETTE (-726) +#define DISPID_AMBIENT_TRANSFERPRIORITY (-728) + +#define DISPID_Name (-800) +#define DISPID_Delete (-801) +#define DISPID_Object (-802) +#define DISPID_Parent (-803) + +/* Reflected Window Message IDs */ +#define OCM__BASE (WM_USER+0x1c00) +#define OCM_COMMAND (OCM__BASE + WM_COMMAND) + +#define OCM_CTLCOLORBTN (OCM__BASE + WM_CTLCOLORBTN) +#define OCM_CTLCOLOREDIT (OCM__BASE + WM_CTLCOLOREDIT) +#define OCM_CTLCOLORDLG (OCM__BASE + WM_CTLCOLORDLG) +#define OCM_CTLCOLORLISTBOX (OCM__BASE + WM_CTLCOLORLISTBOX) +#define OCM_CTLCOLORMSGBOX (OCM__BASE + WM_CTLCOLORMSGBOX) +#define OCM_CTLCOLORSCROLLBAR (OCM__BASE + WM_CTLCOLORSCROLLBAR) +#define OCM_CTLCOLORSTATIC (OCM__BASE + WM_CTLCOLORSTATIC) + +#define OCM_DRAWITEM (OCM__BASE + WM_DRAWITEM) +#define OCM_MEASUREITEM (OCM__BASE + WM_MEASUREITEM) +#define OCM_DELETEITEM (OCM__BASE + WM_DELETEITEM) +#define OCM_VKEYTOITEM (OCM__BASE + WM_VKEYTOITEM) +#define OCM_CHARTOITEM (OCM__BASE + WM_CHARTOITEM) +#define OCM_COMPAREITEM (OCM__BASE + WM_COMPAREITEM) +#define OCM_HSCROLL (OCM__BASE + WM_HSCROLL) +#define OCM_VSCROLL (OCM__BASE + WM_VSCROLL) +#define OCM_PARENTNOTIFY (OCM__BASE + WM_PARENTNOTIFY) +#define OCM_NOTIFY (OCM__BASE + WM_NOTIFY) + + #endif /* __WINE_OLECTL_H */ diff --git a/include/oleidl.h b/include/oleidl.h index 84359fe69c9..34b4865faf6 100644 --- a/include/oleidl.h +++ b/include/oleidl.h @@ -18,6 +18,8 @@ #include "wine/obj_inplace.h" #include "wine/obj_cache.h" +#include "wine/obj_oleobj.h" +#include "wine/obj_oleview.h" #endif /* __WINE_OLEIDL_H */ diff --git a/include/shlguid.h b/include/shlguid.h index 86410c99575..d2eb53d797d 100644 --- a/include/shlguid.h +++ b/include/shlguid.h @@ -48,7 +48,5 @@ DEFINE_GUID (IID_IDockingWindowFrame, 0x47D2657AL, 0x7B27, 0x11D0, 0x8C, 0xA9, 0 * the following should be moved to the right place */ DEFINE_GUID (IID_MyComputer, 0x20D04FE0L, 0x3AEA, 0x1069, 0xA2, 0xD8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D); -DEFINE_SHLGUID(IID_IEnumOLEVERB, 0x00000104L, 0, 0); -DEFINE_SHLGUID(IID_IViewObject, 0x0000010DL, 0, 0); #endif /* __WINE_SHLGUID_H */ diff --git a/include/shlobj.h b/include/shlobj.h index 5d82bc3f83b..db4a836510a 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -7,7 +7,6 @@ #include "wine/obj_shelllink.h" #include "ole2.h" #include "shell.h" -#include "oleobj.h" #include "commctrl.h" #include "prsht.h" @@ -61,7 +60,7 @@ typedef struct _STRRET /***************************************************************************** * IContextMenu interface */ -#define THIS LPCONTEXTMENU this +#define THIS LPCONTEXTMENU me /* default menu items*/ #define IDM_EXPLORE 0 @@ -178,18 +177,6 @@ ICOM_DEFINE(IContextMenu, IUnknown) #define IContextMenu_HandleMenuMsg(p,a,b,c) ICOM_CALL3(HandleMenuMsg,p,a,b,c) #endif -/***************************************************************************** - * structures for shell clipboard formats - */ -typedef enum tagDVASPECT -{ DVASPECT_CONTENT = 1, - DVASPECT_THUMBNAIL = 2, - DVASPECT_ICON = 4, - DVASPECT_DOCPRINT = 8 -} DVASPECT; - -/* shell specific clipboard formats */ - /* DATAOBJECT_InitShellIDList*/ #define CFSTR_SHELLIDLIST "Shell IDList Array" /* CF_IDLIST */ @@ -232,7 +219,7 @@ extern UINT cfFileContents; */ typedef struct tagLPIDLLIST *LPIDLLIST, IDLList; -#define THIS LPIDLLIST this +#define THIS LPIDLLIST me typedef enum { State_UnInit=1, @@ -257,14 +244,14 @@ struct tagLPIDLLIST }; extern LPIDLLIST IDLList_Constructor (UINT uStep); -extern void IDLList_Destructor(LPIDLLIST this); +extern void IDLList_Destructor(LPIDLLIST me); #undef THIS /***************************************************************************** * IShellExtInit interface */ -#define THIS LPSHELLEXTINIT this +#define THIS LPSHELLEXTINIT me typedef struct IShellExtInit_VTable { /* *** IUnknown methods *** */ @@ -286,7 +273,7 @@ struct tagSHELLEXTINIT /***************************************************************************** * IEnumIDList interface */ -#define THIS LPENUMIDLIST this +#define THIS LPENUMIDLIST me typedef struct tagENUMLIST { struct tagENUMLIST *pNext; @@ -374,7 +361,7 @@ typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS; * IShellFolder interface */ -#define THIS LPSHELLFOLDER this +#define THIS LPSHELLFOLDER me /* IShellFolder::GetDisplayNameOf/SetNameOf uFlags */ typedef enum @@ -454,7 +441,7 @@ DWORD WINAPI SHGetDesktopFolder(LPSHELLFOLDER *); /************************************************************************ * IShellBrowser interface */ -#define THIS LPSHELLBROWSER this +#define THIS LPSHELLBROWSER me /* targets for GetWindow/SendControlMsg */ #define FCW_STATUS 0x0001 #define FCW_TOOLBAR 0x0002 @@ -534,7 +521,7 @@ struct tagSHELLBROWSER /************************************************************************ * IShellView interface */ -#define THIS LPSHELLVIEW this +#define THIS LPSHELLVIEW me /* shellview select item flags*/ #define SVSI_DESELECT 0x0000 @@ -666,7 +653,7 @@ typedef GUID SHELLVIEWID; /**************************************************************************** * ICommDlgBrowser interface */ -#define THIS LPCOMMDLGBROWSER this +#define THIS LPCOMMDLGBROWSER me /* for OnStateChange*/ #define CDBOSC_SETFOCUS 0x00000000 @@ -698,7 +685,7 @@ struct tagCOMMDLGBROWSER * FIXME * Is the ExtractIconA interface */ -#define THIS LPEXTRACTICON this +#define THIS LPEXTRACTICON me /* GetIconLocation() input flags*/ #define GIL_OPENICON 0x0001 /* allows containers to specify an "open" look */ @@ -738,7 +725,7 @@ DWORD WINAPI SHMapPIDLToSystemImageListIndex(LPSHELLFOLDER sh,LPITEMIDLIST pidl, * IShellIcon interface */ -#define THIS LPSHELLICON this +#define THIS LPSHELLICON me typedef struct IShellIcon_VTable { /*** IUnknown methods ***/ @@ -758,7 +745,7 @@ struct tagSHELLICON /**************************************************************************** * IDockingWindowFrame interface */ -#define THIS LPDOCKINGWINDOWFRAME this +#define THIS LPDOCKINGWINDOWFRAME me #define DWFRF_NORMAL 0x0000 /* femove toolbar flags*/ #define DWFRF_DELETECONFIGDATA 0x0001 diff --git a/include/winbase.h b/include/winbase.h index 91f987e0cdd..fd359a0aebd 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -943,16 +943,46 @@ typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_I #define DMORIENT_LANDSCAPE 2 #define DMPAPER_LETTER 1 +#define DMPAPER_LETTERSMALL 2 +#define DMPAPER_TABLOID 3 +#define DMPAPER_LEDGER 4 #define DMPAPER_LEGAL 5 +#define DMPAPER_STATEMENT 6 #define DMPAPER_EXECUTIVE 7 #define DMPAPER_A3 8 #define DMPAPER_A4 9 +#define DMPAPER_A4SMALL 10 #define DMPAPER_A5 11 +#define DMPAPER_B4 12 +#define DMPAPER_B5 13 +#define DMPAPER_FOLIO 14 +#define DMPAPER_QUARTO 15 +#define DMPAPER_10X14 16 +#define DMPAPER_11X17 17 +#define DMPAPER_NOTE 18 +#define DMPAPER_ENV_9 19 #define DMPAPER_ENV_10 20 +#define DMPAPER_ENV_11 21 +#define DMPAPER_ENV_12 22 +#define DMPAPER_ENV_14 23 +#define DMPAPER_CSHEET 24 +#define DMPAPER_DSHEET 25 +#define DMPAPER_ESHEET 26 #define DMPAPER_ENV_DL 27 #define DMPAPER_ENV_C5 28 +#define DMPAPER_ENV_C3 29 +#define DMPAPER_ENV_C4 30 +#define DMPAPER_ENV_C6 31 +#define DMPAPER_ENV_C65 32 +#define DMPAPER_ENV_B4 33 #define DMPAPER_ENV_B5 34 +#define DMPAPER_ENV_B6 35 +#define DMPAPER_ENV_ITALY 36 #define DMPAPER_ENV_MONARCH 37 +#define DMPAPER_ENV_PERSONAL 38 +#define DMPAPER_FANFOLD_US 39 +#define DMPAPER_FANFOLD_STD_GERMAN 40 +#define DMPAPER_FANFOLD_LGL_GERMAN 41 #define DMBIN_UPPER 1 #define DMBIN_LOWER 2 diff --git a/include/wine/obj_base.h b/include/wine/obj_base.h index e75a370d54e..a09fdc93a1c 100644 --- a/include/wine/obj_base.h +++ b/include/wine/obj_base.h @@ -48,10 +48,25 @@ INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax); BOOL16 WINAPI IsEqualGUID16(GUID* g1,GUID* g2); BOOL WINAPI IsEqualGUID32(REFGUID rguid1,REFGUID rguid2); /*#define IsEqualGUID WINELIB_NAME(IsEqualGUID)*/ +#ifdef __cplusplus +#define IsEqualGUID(rguid1, rguid2) (!memcmp(&(rguid1), &(rguid2), sizeof(GUID))) +#else #define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID))) +#endif /* cplusplus */ #define IsEqualIID(riid1, riid2) IsEqualGUID(riid1, riid2) #define IsEqualCLSID(rclsid1, rclsid2) IsEqualGUID(rclsid1, rclsid2) +#ifdef __cplusplus +inline BOOL operator==(const GUID& guidOne, const GUID& guidOther) +{ + return !memcmp(&guidOne,&guidOther,sizeof(GUID)); +} +inline BOOL operator!=(const GUID& guidOne, const GUID& guidOther) +{ + return !(guidOne == guidOther); +} +#endif + /***************************************************************************** * Macros to define a COM interface @@ -339,6 +354,14 @@ BOOL WINAPI IsEqualGUID32(REFGUID rguid1,REFGUID rguid2); private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); \ public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h); }; +#define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \ + private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i); \ + public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h,i); }; + +#define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \ + private: ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j); \ + public: inline ret (CALLBACK xfn)(ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j) { return ((ICOM_INTERFACE*)t.lpvtbl)->fn##xfn(this,a,b,c,d,e,f,g,h,i,j); }; + #define ICOM_CMETHOD(ret,xfn) \ private: ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); \ @@ -525,6 +548,12 @@ BOOL WINAPI IsEqualGUID32(REFGUID rguid1,REFGUID rguid2); #define ICOM_METHOD8(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh) \ ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h); +#define ICOM_METHOD9(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni) \ + ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i); + +#define ICOM_METHOD10(ret,xfn,ta,na,tb,nb,tc,nc,td,nd,te,ne,tf,nf,tg,ng,th,nh,ti,ni,tj,nj) \ + ret (CALLBACK *fn##xfn)(ICOM_INTERFACE* me,ta a,tb b,tc c,td d,te e,tf f,tg g,th h,ti i,tj j); + #define ICOM_CMETHOD(ret,xfn) \ ret (CALLBACK *fn##xfn)(const ICOM_INTERFACE* me); @@ -649,6 +678,7 @@ BOOL WINAPI IsEqualGUID32(REFGUID rguid1,REFGUID rguid2); #define ICOM_CALL6(xfn, p,a,b,c,d,e,f) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f) #define ICOM_CALL7(xfn, p,a,b,c,d,e,f,g) (p)->lpvtbl->fn##xfn(p,a,b,c,d,e,f,g) #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) +#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) #define ICOM_THIS(impl,iface) impl* const This=(impl*)iface diff --git a/include/wine/obj_control.h b/include/wine/obj_control.h index 7fb380f02d6..2fbe0ae61ec 100644 --- a/include/wine/obj_control.h +++ b/include/wine/obj_control.h @@ -9,14 +9,31 @@ #include "winbase.h" -#include "winuser.h" -#include "wine/obj_inplace.h" -#include "wine/obj_dragdrop.h" - +#include "wine/obj_oleaut.h" /* for DISPID */ /***************************************************************************** * Declare the structures */ +typedef enum tagGUIDKIND +{ + GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1 +} GUIDKIND; + +typedef enum tagREADYSTATE +{ + READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_LOADED = 2, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4 +} READYSTATE; + +typedef struct tagExtentInfo +{ + ULONG cb; + DWORD dwExtentMode; + SIZEL sizelProposed; +} DVEXTENTINFO; typedef struct tagVARIANT_BLOB { @@ -98,6 +115,15 @@ typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless, *LPOLEIN DEFINE_GUID(IID_IClassFactory2, 0xb196b28f, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); typedef struct IClassFactory2 IClassFactory2, *LPCLASSFACTORY2; +DEFINE_GUID(IID_IViewObjectEx, 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); /* FIXME need GUID */ +typedef struct IViewObjectEx IViewObjectEx, *LPVIEWOBJECTEX; + +DEFINE_GUID(IID_IProvideClassInfo, 0xb196b283, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct IProvideClassInfo IProvideClassInfo, *LPPROVIDECLASSINFO; + +DEFINE_GUID(IID_IProvideClassInfo2, 0xa6bc3ac0, 0xdbaa, 0x11ce, 0x9d, 0xe3, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); +typedef struct IProvideClassInfo2 IProvideClassInfo2, *LPPROVIDECLASSINFO2; + /***************************************************************************** * IOleControl interface */ @@ -133,6 +159,7 @@ ICOM_DEFINE(IOleControl,IUnknown) #define IOleControlSite_METHODS \ ICOM_METHOD (HRESULT,OnControlInfoChanged); \ ICOM_METHOD1(HRESULT,LockInPlaceActive, BOOL,fLock); \ + ICOM_METHOD1(HRESULT,GetExtendedControl, IDispatch**,ppDisp) \ ICOM_METHOD3(HRESULT,TransformCoords, POINTL*,pPtlHimetric, POINTF*,pPtfContainer, DWORD,dwFlags); \ ICOM_METHOD2(HRESULT,TranslateAccelerator, MSG*,pMsg, DWORD,grfModifiers) ;\ ICOM_METHOD1(HRESULT,OnFocus, BOOL,fGotFocus); \ @@ -151,6 +178,7 @@ ICOM_DEFINE(IOleControlSite,IUnknown) /*** IOleControlSite methods ***/ #define IOleControlSite_OnControlInfoChanged(p) ICOM_CALL1(OnControlInfoChanged,p) #define IOleControlSite_LockInPlaceActive(p,a) ICOM_CALL1(LockInPlaceActive,p,a) +#define IOleControlSite_GetExtendedControl(p,a) ICOM_CALL1(GetExtendedControl,p,a) #define IOleControlSite_TransformCoords(p,a,b,c) ICOM_CALL1(TransformCoords,p,a,b,c) #define IOleControlSite_TranslateAccelerator(p,a,b) ICOM_CALL1(TranslateAccelerator,p,a,b) #define IOleControlSite_OnFocus(p,a) ICOM_CALL1(OnFocus,p,a) @@ -208,11 +236,11 @@ ICOM_DEFINE(IOleInPlaceSiteEx,IOleInPlaceSite) ICOM_METHOD1(HRESULT,SetCapture, BOOL,fCapture); \ ICOM_METHOD (HRESULT,GetFocus); \ ICOM_METHOD1(HRESULT,SetFocus, BOOL,fFocus); \ - ICOM_METHOD3(HRESULT,GetDC, LPCRECT32,pRect, DWORD,grfFlags, HDC*,phDC); \ + ICOM_METHOD3(HRESULT,GetDC, LPCRECT,pRect, DWORD,grfFlags, HDC*,phDC); \ ICOM_METHOD1(HRESULT,ReleaseDC, HDC,hDC); \ - ICOM_METHOD2(HRESULT,InvalidateRect, LPCRECT32,pRect, BOOL,fErase); \ + ICOM_METHOD2(HRESULT,InvalidateRect, LPCRECT,pRect, BOOL,fErase); \ ICOM_METHOD2(HRESULT,InvalidateRgn, HRGN,hRgn, BOOL,fErase); \ - ICOM_METHOD4(HRESULT,ScrollRect, INT,dx, INT,dy, LPCRECT32,pRectScroll, LPCRECT32,pRectClip); \ + ICOM_METHOD4(HRESULT,ScrollRect, INT,dx, INT,dy, LPCRECT,pRectScroll, LPCRECT,pRectClip); \ ICOM_METHOD1(HRESULT,AdjustRect, LPRECT,prc); \ ICOM_METHOD4(HRESULT,OnDefWindowMessage, UINT,msg, WPARAM,wParam, LPARAM,lParam, LRESULT*,plResult); #define IOleInPlaceSiteWindowless_IMETHODS \ @@ -317,6 +345,92 @@ ICOM_DEFINE(IClassFactory2,IClassFactory) #endif +/***************************************************************************** + * IViewObject interface + */ +#define ICOM_INTERFACE IViewObjectEx +#define IViewObjectEx_METHODS \ + ICOM_METHOD2(HRESULT,GetRect, DWORD,dwAspect, LPRECTL,pRect) \ + ICOM_METHOD1(HRESULT,GetViewStatus, DWORD*,pdwStatus) \ + ICOM_METHOD5(HRESULT,QueryHitPoint, DWORD,dwAspect, LPCRECT,pRectBounds, POINT,ptlLoc, LONG,lCloseHint, DWORD*,pHitResult) \ + ICOM_METHOD5(HRESULT,QueryHitRect, DWORD,dwAspect, LPCRECT,pRectBounds, LPCRECT,pRectLoc, LONG,lCloseHint, DWORD*,pHitResult) \ + ICOM_METHOD6(HRESULT,GetNaturalExtent, DWORD,dwAspect, LONG,lindex, DVTARGETDEVICE*,ptd, HDC,hicTargetDev, DVEXTENTINFO*,pExtentInfo, LPSIZEL,pSizel) +#define IViewObjectEx_IMETHODS \ + IViewObject2_IMETHODS \ + IViewObjectEx_METHODS +ICOM_DEFINE(IViewObjectEx,IViewObject2) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IViewObjectEx_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IViewObjectEx_AddRef(p) ICOM_CALL (AddRef,p) +#define IViewObjectEx_Release(p) ICOM_CALL (Release,p) +/*** IViewObject methods ***/ +#define IViewObjectEx_Draw(p,a,b,c,d,e,f,g,h,i,j) ICOM_CALL10(Draw,p,a,b,c,d,e,f,g,h,i,j) +#define IViewObjectEx_GetColorSet(p,a,b,c,d,e,f) ICOM_CALL6(GetColorSet,p,a,b,c,d,e,f) +#define IViewObjectEx_Freeze(p,a,b,c,d) ICOM_CALL4(Freeze,p,a,b,c,d) +#define IViewObjectEx_Unfreeze(p,a) ICOM_CALL1(Unfreeze,p,a) +#define IViewObjectEx_SetAdvise(p,a,b,c) ICOM_CALL3(SetAdvise,p,a,b,c) +#define IViewObjectEx_GetAdvise(p,a,b,c) ICOM_CALL3(GetAdvise,p,a,b,c) +/*** IViewObject2 methods ***/ +#define IViewObjectEx_GetExtent(p,a,b,c,d) ICOM_CALL4(GetExtent,p,a,b,c,d) +/*** IViewObjectEx methods ***/ +#define IViewObjectEx_GetRect(p,a,b) ICOM_CALL2(GetRect,p,a,b) +#define IViewObjectEx_GetViewStatus(p,a) ICOM_CALL1(GetViewStatus,p,a) +#define IViewObjectEx_QueryHitPoint(p,a,b,c,d,e) ICOM_CALL5(QueryHitPoint,p,a,b,c,d,e) +#define IViewObjectEx_QueryHitRect(p,a,b,c,d,e) ICOM_CALL5(QueryHitRect,p,a,b,c,d,e) +#define IViewObjectEx_GetNaturalExtent(p,a,b,c,d,e,f) ICOM_CALL6(GetNaturalExtent,p,a,b,c,d,e,f) +#endif + + +/***************************************************************************** + * IProvideClassInfo interface + */ +#define ICOM_INTERFACE IProvideClassInfo +#define IProvideClassInfo_METHODS \ + ICOM_METHOD1(HRESULT,GetClassInfo, ITypeInfo**,ppTI) +#define IProvideClassInfo_IMETHODS \ + IUnknown_IMETHODS \ + IProvideClassInfo_METHODS +ICOM_DEFINE(IProvideClassInfo,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IProvideClassInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IProvideClassInfo_AddRef(p) ICOM_CALL (AddRef,p) +#define IProvideClassInfo_Release(p) ICOM_CALL (Release,p) +/*** IProvideClassInfo methods ***/ +#define IProvideClassInfo_GetClassInfo(p,a) ICOM_CALL1(GetClassInfo,p,a) +#endif + + + +/***************************************************************************** + * IProvideClassInfo2 interface + */ +#define ICOM_INTERFACE IProvideClassInfo2 +#define IProvideClassInfo2_METHODS \ + ICOM_METHOD2(HRESULT,GetGUID, DWORD,dwGuidKind, GUID*,pGUID) +#define IProvideClassInfo2_IMETHODS \ + IProvideClassInfo_IMETHODS \ + IProvideClassInfo2_METHODS +ICOM_DEFINE(IProvideClassInfo2,IProvideClassInfo) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IProvideClassInfo2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IProvideClassInfo2_AddRef(p) ICOM_CALL (AddRef,p) +#define IProvideClassInfo2_Release(p) ICOM_CALL (Release,p) +/*** IProvideClassInfo methods ***/ +#define IProvideClassInfo2_GetClassInfo(p,a) ICOM_CALL1(GetClassInfo,p,a) +/*** IProvideClassInfo2 methods ***/ +#define IProvideClassInfo2_GetGUID(p,a,b) ICOM_CALL2(GetGUID,p,a,b) +#endif + + + #endif /* __WINE_WINE_OBJ_CONTROL_H */ - diff --git a/include/wine/obj_dataobject.h b/include/wine/obj_dataobject.h index 136deee6582..7cf948c5ef3 100644 --- a/include/wine/obj_dataobject.h +++ b/include/wine/obj_dataobject.h @@ -7,13 +7,21 @@ #ifndef __WINE_WINE_OBJ_DATAOBJECT_H #define __WINE_WINE_OBJ_DATAOBJECT_H -#include "wine/obj_base.h" -#include "wine/obj_storage.h" -#include "wine/obj_moniker.h" +#ifdef __cplusplus +#define DUMMY_UNION_NAME +#else +#define DUMMY_UNION_NAME u +#endif /***************************************************************************** * Predeclare the structures */ +typedef enum tagDATADIR +{ + DATADIR_GET = 1, + DATADIR_SET = 2 +} DATADIR; + typedef struct DVTARGETDEVICE16 DVTARGETDEVICE16, *LPDVTARGETDEVICE16; typedef struct DVTARGETDEVICE DVTARGETDEVICE, *LPDVTARGETDEVICE; @@ -100,7 +108,7 @@ struct STGMEDIUM LPOLESTR lpszFileName; IStream *pstm; IStorage *pstg; - } u; + } DUMMY_UNION_NAME; IUnknown *pUnkForRelease; }; diff --git a/include/wine/obj_dragdrop.h b/include/wine/obj_dragdrop.h index 719275066fb..9123a91c4b6 100644 --- a/include/wine/obj_dragdrop.h +++ b/include/wine/obj_dragdrop.h @@ -22,6 +22,7 @@ typedef struct IDropTarget IDropTarget,*LPDROPTARGET; /***************************************************************************** * DROPEFFECT enumeration */ +#define MK_ALT (0x20) #define DROPEFFECT_NONE 0 #define DROPEFFECT_COPY 1 #define DROPEFFECT_MOVE 2 diff --git a/include/wine/obj_inplace.h b/include/wine/obj_inplace.h index d4d47349e89..866cba51582 100644 --- a/include/wine/obj_inplace.h +++ b/include/wine/obj_inplace.h @@ -76,7 +76,7 @@ typedef struct tagOLEVERB typedef HGLOBAL HOLEMENU; typedef LPRECT LPBORDERWIDTHS; -typedef LPCRECT32 LPCBORDERWIDTHS; +typedef LPCRECT LPCBORDERWIDTHS; /***************************************************************************** @@ -143,7 +143,7 @@ ICOM_DEFINE(IOleWindow,IUnknown) #define IOleInPlaceObject_METHODS \ ICOM_METHOD (HRESULT,InPlaceDeactivate); \ ICOM_METHOD (HRESULT,UIDeactivate); \ - ICOM_METHOD2(HRESULT,SetObjectRects, LPCRECT32,lprcPosRect, LPCRECT32,lprcClipRect); \ + ICOM_METHOD2(HRESULT,SetObjectRects, LPCRECT,lprcPosRect, LPCRECT,lprcClipRect); \ ICOM_METHOD (HRESULT,ReactivateAndUndo); #define IOleInPlaceObject_IMETHODS \ IOleWindow_IMETHODS \ @@ -174,7 +174,7 @@ ICOM_DEFINE(IOleInPlaceObject,IOleWindow) ICOM_METHOD1(HRESULT,TranslateAccelerator, LPMSG,lpmsg); \ ICOM_METHOD1(HRESULT,OnFrameWindowActivate, BOOL,fActivate); \ ICOM_METHOD1(HRESULT,OnDocWindowActivate, BOOL,fActivate); \ - ICOM_METHOD3(HRESULT,ResizeBorder, LPCRECT32,prcBorder, IOleInPlaceUIWindow*,pUIWindow, BOOL,fWindowFrame); \ + ICOM_METHOD3(HRESULT,ResizeBorder, LPCRECT,prcBorder, IOleInPlaceUIWindow*,pUIWindow, BOOL,fWindowFrame); \ ICOM_METHOD1(HRESULT,EnableModeless, BOOL,fEnable); #define IOleInPlaceActiveObject_IMETHODS \ IOleWindow_IMETHODS \ @@ -243,6 +243,7 @@ ICOM_DEFINE(IOleInPlaceUIWindow,IOleWindow) #define IOleInPlaceFrame_IMETHODS \ IOleInPlaceUIWindow_IMETHODS \ IOleInPlaceFrame_METHODS +ICOM_DEFINE(IOleInPlaceFrame,IOleInPlaceUIWindow) #undef ICOM_INTERFACE #ifdef ICOM_CINTERFACE @@ -282,7 +283,7 @@ ICOM_DEFINE(IOleInPlaceUIWindow,IOleWindow) ICOM_METHOD (HRESULT,OnInPlaceDeactivate); \ ICOM_METHOD (HRESULT,DiscardUndoState); \ ICOM_METHOD (HRESULT,DeactivateAndUndo); \ - ICOM_METHOD1(HRESULT,OnPosRectChange, LPCRECT32,lprcPosRect); + ICOM_METHOD1(HRESULT,OnPosRectChange, LPCRECT,lprcPosRect); #define IOleInPlaceSite_IMETHODS \ IOleWindow_IMETHODS \ IOleInPlaceSite_METHODS diff --git a/include/wine/obj_oleaut.h b/include/wine/obj_oleaut.h index 6f5dece5b69..137e8ae67af 100644 --- a/include/wine/obj_oleaut.h +++ b/include/wine/obj_oleaut.h @@ -22,8 +22,8 @@ typedef struct ITypeLib ITypeLib,*LPTYPELIB; DEFINE_OLEGUID(IID_ITypeComp, 0x00020403,0,0); typedef struct ITypeComp ITypeComp,*LPTYPECOMP; -DEFINE_OLEGUID(IID_IEnumVariant, 0x00020404,0,0); -typedef struct IenumVariant IEnumVariant,*LPENUMVARIANT; +DEFINE_OLEGUID(IID_IEnumVARIANT, 0x00020404,0,0); +typedef struct IEnumVARIANT IEnumVARIANT,*LPENUMVARIANT; DEFINE_OLEGUID(IID_ICreateTypeInfo, 0x00020405,0,0); typedef struct ICreateTypeInfo ICreateTypeInfo,*LPCREATETYPEINFO; @@ -61,6 +61,11 @@ typedef struct ISupportErrorInfo ISupportErrorInfo,*LPSUPPORTERRORINFO; /***************************************************************************** * Automation data types */ +#ifdef __cplusplus +#define DUMMY_UNION_NAME +#else +#define DUMMY_UNION_NAME u +#endif /***************************************************************** * SafeArray defines and structs @@ -92,6 +97,313 @@ typedef struct tagSAFEARRAY SAFEARRAYBOUND rgsabound[ 1 ]; /* One bound for each dimension */ } SAFEARRAY, *LPSAFEARRAY; +typedef enum tagCALLCONV { + CC_CDECL = 1, + CC_MSCPASCAL = CC_CDECL + 1, + CC_PASCAL = CC_MSCPASCAL, + CC_MACPASCAL = CC_PASCAL + 1, + CC_STDCALL = CC_MACPASCAL + 1, + CC_RESERVED = CC_STDCALL + 1, + CC_SYSCALL = CC_RESERVED + 1, + CC_MPWCDECL = CC_SYSCALL + 1, + CC_MPWPASCAL = CC_MPWCDECL + 1, + CC_MAX = CC_MPWPASCAL + 1 +} CALLCONV; + +typedef CY CURRENCY; + +/* + * Declarations of the VARIANT structure and the VARIANT APIs. + */ +/* S_OK : Success. + * DISP_E_BADVARTYPE : The variant type vt in not a valid type of variant. + * DISP_E_OVERFLOW : The data pointed to by pvarSrc does not fit in the destination type. + * DISP_E_TYPEMISMATCH : The variant type vt is not a valid type of variant. + * E_INVALIDARG : One argument is invalid. + * * E_OUTOFMEMORY : Memory could not be allocated for the conversion. + * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked. + */ + +typedef struct tagVARIANT VARIANT, *LPVARIANT; +typedef struct tagVARIANT VARIANTARG, *LPVARIANTARG; + +struct tagVARIANT { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union DUMMY_UNION_NAME + { + /* By value. */ + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + BYTE bVal; + short iVal; + long lVal; + float fltVal; + double dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + DATE date; + BSTR bstrVal; + CY cyVal; + /* DECIMAL decVal; */ + IUnknown* punkVal; + IDispatch* pdispVal; + SAFEARRAY* parray; + + /* By reference */ + CHAR* pcVal; + USHORT* puiVal; + ULONG* pulVal; + INT* pintVal; + UINT* puintVal; + BYTE* pbVal; + short* piVal; + long* plVal; + float* pfltVal; + double* pdblVal; + VARIANT_BOOL* pboolVal; + SCODE* pscode; + DATE* pdate; + BSTR* pbstrVal; + VARIANT* pvarVal; + PVOID byref; + CY* pcyVal; + /* DECIMAL* pdecVal; */ + IUnknown** ppunkVal; + IDispatch** ppdispVal; + SAFEARRAY** pparray; + } DUMMY_UNION_NAME; +}; + + +typedef LONG DISPID; +typedef DWORD HREFTYPE; +typedef DISPID MEMBERID; + +#define DISPID_UNKNOWN ( -1 ) +#define DISPID_VALUE ( 0 ) +#define DISPID_PROPERTYPUT ( -3 ) +#define DISPID_NEWENUM ( -4 ) +#define DISPID_EVALUATE ( -5 ) +#define DISPID_CONSTRUCTOR ( -6 ) +#define DISPID_DESTRUCTOR ( -7 ) +#define DISPID_COLLECT ( -8 ) + +typedef struct tagDISPPARAMS +{ + VARIANTARG* rgvarg; + DISPID* rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; +} DISPPARAMS; + +typedef struct tagEXCEPINFO +{ + WORD wCode; + WORD wReserved; + BSTR bstrSource; + BSTR bstrDescription; + BSTR bstrHelpFile; + DWORD dwHelpContext; + PVOID pvReserved; + HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); + SCODE scode; +} EXCEPINFO, * LPEXCEPINFO; + +typedef struct tagIDLDESC +{ + ULONG dwReserved; + USHORT wIDLFlags; +} IDLDESC; + +typedef struct tagPARAMDESCEX +{ + ULONG cBytes; + VARIANTARG varDefaultValue; +} PARAMDESCEX, *LPPARAMDESCEX; + +typedef struct tagPARAMDESC +{ + LPPARAMDESCEX pparamdescex; + USHORT wParamFlags; +} PARAMDESC; + +typedef struct tagTYPEDESC +{ + union { + struct tagTYPEDESC *lptdesc; + struct tagARRAYDESC *lpadesc; + HREFTYPE hreftype; + } DUMMY_UNION_NAME; + VARTYPE vt; +} TYPEDESC; + +typedef struct tagELEMDESC +{ + TYPEDESC tdesc; + union { + IDLDESC idldesc; + PARAMDESC paramdesc; + } DUMMY_UNION_NAME; +} ELEMDESC, *LPELEMDESC; + +typedef enum tagTYPEKIND +{ + TKIND_ENUM = 0, + TKIND_RECORD = 1, + TKIND_MODULE = 2, + TKIND_INTERFACE = 3, + TKIND_DISPATCH = 4, + TKIND_COCLASS = 5, + TKIND_ALIAS = 6, + TKIND_UNION = 7, + TKIND_MAX = 8 +} TYPEKIND; + +typedef struct tagTYPEATTR +{ + GUID guid; + LCID lcid; + DWORD dwReserved; + MEMBERID memidConstructor; + MEMBERID memidDestructor; + LPOLESTR lpstrSchema; + ULONG cbSizeInstance; + TYPEKIND typekind; + WORD cFuncs; + WORD cVars; + WORD cImplTypes; + WORD cbSizeVft; + WORD cAlignment; + WORD wTypeFlags; + WORD wMajorVerNum; + WORD wMinorVerNum; + TYPEDESC tdescAlias; + IDLDESC idldescType; +} TYPEATTR, *LPTYPEATTR; + +typedef struct tagARRAYDESC +{ + TYPEDESC tdescElem; + USHORT cDims; + SAFEARRAYBOUND rgbounds[1]; +} ARRAYDESC; + +typedef enum tagFUNCKIND +{ + FUNC_VIRTUAL = 0, + FUNC_PUREVIRTUAL = 1, + FUNC_NONVIRTUAL = 2, + FUNC_STATIC = 3, + FUNC_DISPATCH = 4 +} FUNCKIND; + +typedef enum tagINVOKEKIND +{ + INVOKE_FUNC = 1, + INVOKE_PROPERTYGET = 2, + INVOKE_PROPERTYPUT = 3, + INVOKE_PROPERTYPUTREF = 4 +} INVOKEKIND; + +typedef struct tagFUNCDESC +{ + MEMBERID memid; + SCODE *lprgscode; + ELEMDESC *lprgelemdescParam; + FUNCKIND funckind; + INVOKEKIND invKind; + CALLCONV callconv; + SHORT cParams; + SHORT cParamsOpt; + SHORT oVft; + SHORT cScodes; + ELEMDESC elemdescFunc; + WORD wFuncFlags; +} FUNCDESC; + +typedef enum tagVARKIND +{ + VAR_PERINSTANCE = 0, + VAR_STATIC = 1, + VAR_CONST = 2, + VAR_DISPATCH = 3 +} VARKIND; + +typedef struct tagVARDESC +{ + MEMBERID memid; + LPOLESTR lpstrSchema; + union { + ULONG oInst; + VARIANT *lpvarValue; + } DUMMY_UNION_NAME; + ELEMDESC elemdescVar; + WORD wVarFlags; + VARKIND varkind; +} VARDESC, *LPVARDESC; + +typedef enum tagSYSKIND +{ + SYS_WIN16 = 0, + SYS_WIN32 = 1, + SYS_MAC = 2, +} SYSKIND; + +typedef enum tagLIBFLAGS +{ + LIBFLAG_FRESTRICTED = 0x1, + LIBFLAG_FCONTROL = 0x2, + LIBFLAG_FHIDDEN = 0x4, + LIBFLAG_FHASDISKIMAGE = 0x8 +} LIBFLAGS; + +typedef struct tagTLIBATTR +{ + GUID guid; + LCID lcid; + SYSKIND syskind; + WORD wMajorVerNum; + WORD wMinorVerNum; + WORD wLibFlags; +} TLIBATTR, *LPTLIBATTR; + +typedef enum tagDESCKIND +{ + DESCKIND_NONE = 0, + DESCKIND_FUNCDESC = 1, + DESCKIND_VARDESC = 2, + DESCKIND_TYPECOMP = 3, + DESCKIND_IMPLICITAPPOBJ = 4, + DESCKIND_MAX = 6 +} DESCKIND; + +typedef union tagBINDPTR +{ + FUNCDESC *lpfuncdesc; + VARDESC *lpvardesc; + ITypeComp *lptcomp; +} BINDPTR, *LPBINDPTR; + + +/***************************************************************** + * SafeArray defines and structs + */ + +#define FADF_AUTO ( 0x1 ) +#define FADF_STATIC ( 0x2 ) +#define FADF_EMBEDDED ( 0x4 ) +#define FADF_FIXEDSIZE ( 0x10 ) +#define FADF_BSTR ( 0x100 ) +#define FADF_UNKNOWN ( 0x200 ) +#define FADF_DISPATCH ( 0x400 ) +#define FADF_VARIANT ( 0x800 ) +#define FADF_RESERVED ( 0xf0e8 ) /* * Data types for Variants. @@ -165,97 +477,6 @@ enum VARENUM { * DISP_E_ARRAYISLOCKED : The variant contains an array that is locked. */ -#ifdef __cplusplus -#define _wine_tagVARIANT_UNION_NAME -#else -#define _wine_tagVARIANT_UNION_NAME u -#endif -/* end FIXME */ - -typedef struct tagVARIANT VARIANT, *LPVARIANT; -typedef struct tagVARIANT VARIANTARG, *LPVARIANTARG; - -struct tagVARIANT { - VARTYPE vt; - WORD wReserved1; - WORD wReserved2; - WORD wReserved3; - union _wine_tagVARIANT_UNION_NAME - { - /* By value. - */ - CHAR cVal; - USHORT uiVal; - ULONG ulVal; - INT intVal; - UINT uintVal; - BYTE bVal; - short iVal; - long lVal; - float fltVal; - double dblVal; - VARIANT_BOOL boolVal; - SCODE scode; - DATE date; - BSTR bstrVal; - CY cyVal; - /* - DECIMAL decVal; - IUnknown* punkVal; - IDispatch* pdispVal; - */ - SAFEARRAY* parray; - - /* By reference - */ - CHAR* pcVal; - USHORT* puiVal; - ULONG* pulVal; - INT* pintVal; - UINT* puintVal; - BYTE* pbVal; - short* piVal; - long* plVal; - float* pfltVal; - double* pdblVal; - VARIANT_BOOL* pboolVal; - SCODE* pscode; - DATE* pdate; - BSTR* pbstrVal; - VARIANT* pvarVal; - PVOID byref; - CY* pcyVal; - /* - DECIMAL* pdecVal; - IUnknown** ppunkVal; - IDispatch** ppdispVal; - */ - SAFEARRAY** pparray; - } _wine_tagVARIANT_UNION_NAME; -}; - -typedef LONG DISPID; - -typedef struct tagDISPPARAMS -{ - VARIANTARG* rgvarg; - DISPID* rgdispidNamedArgs; - UINT cArgs; - UINT cNamedArgs; -} DISPPARAMS; - -typedef struct tagEXCEPINFO { - WORD wCode; - WORD wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - DWORD dwHelpContext; - PVOID pvReserved; - HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *); - SCODE scode; -} EXCEPINFO, * LPEXCEPINFO; - /***************************************************************************** * IDispatch interface */ @@ -266,7 +487,8 @@ typedef struct tagEXCEPINFO { ICOM_METHOD5(HRESULT, GetIDsOfNames, REFIID, riid, LPOLESTR*, rgszNames, UINT, cNames, LCID, lcid, DISPID*, rgDispId); \ ICOM_METHOD8(HRESULT, Invoke, DISPID, dispIdMember, REFIID, riid, LCID, lcid, WORD, wFlags, DISPPARAMS*, pDispParams, VARIANT*, pVarResult, EXCEPINFO*, pExepInfo, UINT*, puArgErr); #define IDispatch_IMETHODS \ - ICOM_INHERITS(IDispatch,IUnknown) + IUnknown_IMETHODS \ + IDispatch_METHODS ICOM_DEFINE(IDispatch,IUnknown) #undef ICOM_INTERFACE @@ -283,5 +505,153 @@ ICOM_DEFINE(IDispatch,IUnknown) #endif +/***************************************************************************** + * ITypeInfo interface + */ +#define ICOM_INTERFACE ITypeInfo +#define ITypeInfo_METHODS \ + ICOM_METHOD1(HRESULT,GetTypeAttr, TYPEATTR**,ppTypeAttr) \ + ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \ + ICOM_METHOD2(HRESULT,GetFuncDesc, UINT,index, FUNCDESC**,ppFuncDesc) \ + ICOM_METHOD2(HRESULT,GetVarDesc, UINT,index, VARDESC**,ppVarDesc) \ + ICOM_METHOD4(HRESULT,GetNames, MEMBERID,memid, BSTR*,rgBstrNames, UINT,cMaxNames, UINT*,pcNames) \ + ICOM_METHOD2(HRESULT,GetRefTypeOfImplType, UINT,index, INT*,pImplTypeFlags) \ + ICOM_METHOD2(HRESULT,GetImplTypeFlags, UINT,index, INT*,pImplTypeFlags) \ + ICOM_METHOD3(HRESULT,GetIDsOfNames, LPOLESTR*,rgszNames, UINT,cNames, MEMBERID*,pMemId) \ + ICOM_METHOD7(HRESULT,Invoke, PVOID,pvInstance, MEMBERID,memid, WORD,wFlags, DISPPARAMS*,pDispParams, VARIANT*,pVarResult, EXCEPINFO*,pExcepInfo, UINT*,puArgErr) \ + ICOM_METHOD5(HRESULT,GetDocumentation, MEMBERID,memid, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \ + ICOM_METHOD5(HRESULT,GetDllEntry, MEMBERID,memid, INVOKEKIND,invKind, BSTR*,pBstrDllName, BSTR*,pBstrName, WORD*,pwOrdinal) \ + ICOM_METHOD2(HRESULT,GetRefTypeInfo, HREFTYPE,hRefType, ITypeInfo**,ppTInfo) \ + ICOM_METHOD3(HRESULT,AddressOfMember, MEMBERID,memid, INVOKEKIND,invKind, PVOID*,ppv) \ + ICOM_METHOD3(HRESULT,CreateInstance, IUnknown*,pUnkOuter, REFIID,riid, PVOID*,ppvObj) \ + ICOM_METHOD2(HRESULT,GetMops, MEMBERID,memid, BSTR*,pBstrMops) \ + ICOM_METHOD2(HRESULT,GetContainingTypeLib, ITypeLib**,ppTLib, UINT*,pIndex) \ + ICOM_METHOD1(HRESULT,ReleaseTypeAttr, TYPEATTR,*pTypeAttr) \ + ICOM_METHOD1(HRESULT,ReleaseFuncDesc, FUNCDESC*,pFuncDesc) \ + ICOM_METHOD1(HRESULT,ReleaseVarDesc, VARDESC*,pVarDesc) +#define ITypeInfo_IMETHODS \ + IUnknown_IMETHODS \ + ITypeInfo_METHODS +ICOM_DEFINE(ITypeInfo,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ITypeInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ITypeInfo_AddRef(p) ICOM_CALL (AddRef,p) +#define ITypeInfo_Release(p) ICOM_CALL (Release,p) +/*** ITypeInfo methods ***/ +#define ITypeInfo_GetTypeAttr(p,a,b) ICOM_CALL2(GetTypeAttr,p,a,b) +#define ITypeInfo_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) +#define ITypeInfo_GetFuncDesc(p,a,b) ICOM_CALL2(GetFuncDesc,p,a,b) +#define ITypeInfo_GetVarDesc(p,a,b) ICOM_CALL2(GetVarDesc,p,a,b) +#define ITypeInfo_GetNames(p,a,b,c,d) ICOM_CALL4(GetNames,p,a,b,c,d) +#define ITypeInfo_GetRefTypeOfImplType(p,a,b) ICOM_CALL2(GetRefTypeOfImplType,p,a) +#define ITypeInfo_GetImplTypeFlags(p,a,b) ICOM_CALL2(GetImplTypeFlags,p,a,b) +#define ITypeInfo_GetIDsOfNames(p,a,b,c) ICOM_CALL3(GetImplTypeFlags,p,a,b,c) +#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) ICOM_CALL7(Invoke,p,a,b,c,d,e,f,g) +#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) +#define ITypeInfo_GetDllEntry(p,a,b,c,d,e) ICOM_CALL5(GetDllEntry,p,a,b,c,d,e) +#define ITypeInfo_GetRefTypeInfo(p,a,b) ICOM_CALL2(GetRefTypeInfo,p,a,b) +#define ITypeInfo_AddressOfMember(p,a,b,c) ICOM_CALL3(AddressOfMember,p,a,b,c) +#define ITypeInfo_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c) +#define ITypeInfo_GetMops(p,a,b) ICOM_CALL2(GetMops,p,a,b) +#define ITypeInfo_GetContainingTypeLib(p,a,b) ICOM_CALL2(GetContainingTypeLib,p,a,b) +#define ITypeInfo_ReleaseTypeAttr(p,a) ICOM_CALL1(ReleaseTypeAttr,p,a) +#define ITypeInfo_ReleaseFuncDesc(p,a) ICOM_CALL1(ReleaseFuncDesc,p,a) +#define ITypeInfo_ReleaseVarDesc(p,a) ICOM_CALL1(ReleaseVarDesc,p,a) +#endif + + +/***************************************************************************** + * ITypeLib interface + */ +#define ICOM_INTERFACE ITypeLib +#define ITypeLib_METHODS \ + ICOM_METHOD (HRESULT,GetTypeInfoCount) \ + ICOM_METHOD2(HRESULT,GetTypeInfo, UINT,index, ITypeInfo**,ppTInfo) \ + ICOM_METHOD2(HRESULT,GetTypeInfoType, UINT,index, TYPEKIND*,pTKind) \ + ICOM_METHOD2(HRESULT,GetTypeInfoOfGuid, REFGUID,guid, ITypeInfo**,ppTinfo) \ + ICOM_METHOD1(HRESULT,GetLibAttr, TLIBATTR**,ppTLibAttr) \ + ICOM_METHOD1(HRESULT,GetTypeComp, ITypeComp**,ppTComp) \ + ICOM_METHOD5(HRESULT,GetDocumentation, INT,index, BSTR*,pBstrName, BSTR*,pBstrDocString, DWORD*,pdwHelpContext, BSTR*,pBstrHelpFile) \ + ICOM_METHOD3(HRESULT,IsName, LPOLESTR,szNameBuf, ULONG,lHashVal, BOOL*,bfName) \ + ICOM_METHOD5(HRESULT,FindName, LPOLESTR,szNameBuf, ULONG,lHashVal, ITypeInfo**,ppTInfo, MEMBERID*,rgMemId, USHORT*,pcFound) \ + ICOM_METHOD1(HRESULT,ReleaseTLibAttr, TLIBATTR*,pTLibAttr) +#define ITypeLib_IMETHODS \ + IUnknown_IMETHODS \ + ITypeLib_METHODS +ICOM_DEFINE(ITypeLib,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ITypeLib_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ITypeLib_AddRef(p) ICOM_CALL (AddRef,p) +#define ITypeLib_Release(p) ICOM_CALL (Release,p) +/*** ITypeLib methods ***/ +#define ITypeLib_GetTypeInfoCount(p) ICOM_CALL (GetTypeInfoCount,p) +#define ITypeLib_GetTypeInfo(p,a,b) ICOM_CALL2(GetTypeInfo,p,a,b) +#define ITypeLib_GetTypeInfoType(p,a,b) ICOM_CALL2(GetTypeInfoType,p,a,b) +#define ITypeLib_GetTypeInfoOfGuid(p,a,b) ICOM_CALL2(GetTypeInfoOfGuid,p,a,b) +#define ITypeLib_GetLibAttr(p,a) ICOM_CALL1(GetLibAttr,p,a) +#define ITypeLib_GetTypeComp(p,a) ICOM_CALL1(GetTypeComp,p,a) +#define ITypeLib_GetDocumentation(p,a,b,c,d,e) ICOM_CALL5(GetDocumentation,p,a,b,c,d,e) +#define ITypeLib_IsName(p,a,b,c) ICOM_CALL3(IsName,p,a,b,c) +#define ITypeLib_FindName(p,a,b,c,d,e) ICOM_CALL5(FindName,p,a,b,c,d,e) +#define ITypeLib_ReleaseTLibAttr(p,a) ICOM_CALL1(ReleaseTLibAttr,p,a) +#endif + + +/***************************************************************************** + * ITypeComp interface + */ +#define ICOM_INTERFACE ITypeComp +#define ITypeComp_METHODS \ + ICOM_METHOD6(HRESULT,Bind, LPOLESTR,szName, ULONG,lHashVal, WORD,wFlags, ITypeInfo**,ppTInfo, DESCKIND*,pDescKind, BINDPTR*,pBindPtr) \ + ICOM_METHOD4(HRESULT,BindType, LPOLESTR,szName, ULONG,lHashVal, ITypeInfo**,ppTInfo, ITypeComp**,ppTComp) +#define ITypeComp_IMETHODS \ + IUnknown_IMETHODS \ + ITypeComp_METHODS +ICOM_DEFINE(ITypeComp,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ITypeComp_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ITypeComp_AddRef(p) ICOM_CALL (AddRef,p) +#define ITypeComp_Release(p) ICOM_CALL (Release,p) +/*** ITypeComp methods ***/ +#define ITypeComp_Bind(p,a,b,c,d,e,f) ICOM_CALL6(Bind,p,a,b,c,d,e,f) +#define ITypeComp_BindType(p,a,b,c,d) ICOM_CALL4(BindType,p,a,b,c,d) +#endif + +/***************************************************************************** + * IEnumVARIANT interface + */ +#define ICOM_INTERFACE IEnumVARIANT +#define IEnumVARIANT_METHODS \ + ICOM_METHOD3(HRESULT,Next, ULONG,celt, VARIANT*,rgVar, ULONG*,pCeltFetched) \ + ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \ + ICOM_METHOD (HRESULT,Reset) \ + ICOM_METHOD1(HRESULT,Clone, IEnumVARIANT**,ppEnum) +#define IEnumVARIANT_IMETHODS \ + IUnknown_IMETHODS \ + IEnumVARIANT_METHODS +ICOM_DEFINE(IEnumVARIANT,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IEnumVARIANT_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IEnumVARIANT_AddRef(p) ICOM_CALL (AddRef,p) +#define IEnumVARIANT_Release(p) ICOM_CALL (Release,p) +/*** IEnumVARIANT methods ***/ +#define IEnumVARIANT_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) +#define IEnumVARIANT_Skip(p,a) ICOM_CALL1(Skip,p,a) +#define IEnumVARIANT_Reset(p) ICOM_CALL (Reset,p) +#define IEnumVARIANT_Clone(p,a) ICOM_CALL1(Clone,p,a) +#endif + #endif /* __WINE_WINE_OBJ_OLEAUT_H */ diff --git a/include/wine/obj_oleobj.h b/include/wine/obj_oleobj.h new file mode 100644 index 00000000000..6af05e5289b --- /dev/null +++ b/include/wine/obj_oleobj.h @@ -0,0 +1,164 @@ +/* + * Defines IOleObject COM and other oleidl.h interfaces + * + * Depends on 'obj_base.h'. + */ + +#ifndef __WINE_WINE_OBJ_OLEOBJ_H +#define __WINE_WINE_OBJ_OLEOBJ_H + + +#include "winbase.h" +#include "winuser.h" +#include "wine/obj_base.h" + +/***************************************************************************** + * Declare the structures + */ +typedef struct tagOBJECTDESCRIPTOR +{ + ULONG cbSize; + CLSID clsid; + DWORD dwDrawAspect; + SIZEL sizel; + POINTL pointl; + DWORD dwStatus; + DWORD dwFullUserTypeName; + DWORD dwSrcOfCopy; +} OBJECTDESCRIPTOR, *LPOBJECTDESCRIPTOR; + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_OLEGUID(IID_IOleObject, 0x00000112L, 0, 0); +typedef struct IOleObject IOleObject, *LPOLEOBJECT; + +DEFINE_OLEGUID(IID_IOleAdviseHolder, 0x00000111L, 0, 0); +typedef struct IOleAdviseHolder IOleAdviseHolder, *LPOLEADVISEHOLDER; + +DEFINE_OLEGUID(IID_IEnumOLEVERB, 0x00000104L, 0, 0); +typedef struct IEnumOLEVERB IEnumOLEVERB, *LPENUMOLEVERB; + +/***************************************************************************** + * IOleObject interface + */ +#define ICOM_INTERFACE IOleObject +#define IOleObject_METHODS \ + ICOM_METHOD1(HRESULT,SetClientSite, IOleClientSite*,pClientSite); \ + ICOM_METHOD1(HRESULT,GetClientSite, IOleClientSite**,ppClientSite); \ + ICOM_METHOD2(HRESULT,SetHostNames, LPCOLESTR,szContainerApp, LPCOLESTR,szContainerObj); \ + ICOM_METHOD1(HRESULT,Close, DWORD,dwSaveOption); \ + ICOM_METHOD2(HRESULT,SetMoniker, DWORD,dwWhichMoniker, IMoniker*,pmk); \ + ICOM_METHOD3(HRESULT,GetMoniker, DWORD,dwAssign, DWORD,dwWhichMoniker, IMoniker**,ppmk); \ + ICOM_METHOD3(HRESULT,InitFromData, IDataObject*,pDataObject, BOOL,fCreation, DWORD,dwReserved); \ + ICOM_METHOD2(HRESULT,GetClipboardData, DWORD,dwReserved, IDataObject**,ppDataObject); \ + ICOM_METHOD6(HRESULT,DoVerb, LONG,iVerb, LPMSG,lpmsg, IOleClientSite*,pActiveSite, LONG,lindex, HWND,hwndParent, LPCRECT,lprcPosRect); \ + ICOM_METHOD1(HRESULT,EnumVerbs, IEnumOLEVERB**,ppEnumOleVerb); \ + ICOM_METHOD (HRESULT,Update); \ + ICOM_METHOD (HRESULT,IsUpToDate); \ + ICOM_METHOD1(HRESULT,GetUserClassID, CLSID*,pClsid); \ + ICOM_METHOD2(HRESULT,GetUserType, DWORD,dwFormOfType, LPOLESTR,pszUserType); \ + ICOM_METHOD2(HRESULT,SetExtent, DWORD,dwDrawAspect, SIZEL*,psizel); \ + ICOM_METHOD2(HRESULT,GetExtent, DWORD,dwDrawAspect, SIZEL*,psizel); \ + ICOM_METHOD2(HRESULT,Advise, IAdviseSink*,pAdvSink, DWORD*,pdwConnection); \ + ICOM_METHOD1(HRESULT,Unadvise, DWORD,dwConnection); \ + ICOM_METHOD1(HRESULT,EnumAdvise, IEnumSTATDATA**,ppenumAdvise); \ + ICOM_METHOD2(HRESULT,GetMiscStatus, DWORD,dwAspect, DWORD*,pdwStatus); \ + ICOM_METHOD1(HRESULT,SetColorScheme, LOGPALETTE*,pLogpal); +#define IOleObject_IMETHODS \ + IUnknown_IMETHODS \ + IOleObject_METHODS +ICOM_DEFINE(IOleObject,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IOleObject_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IOleObject_AddRef(p) ICOM_CALL (AddRef,p) +#define IOleObject_Release(p) ICOM_CALL (Release,p) +/*** IOleObject methods ***/ +#define IOleObject_SetClientSite(p,a,b,c,d) ICOM_CALL1(SetClientSite,p,a) +#define IOleObject_GetClientSite(p,a,b) ICOM_CALL1(GetClientSite,p,a) +#define IOleObject_SetHostNames(p,a,b) ICOM_CALL2(SetHostNames,p,a,b) +#define IOleObject_Close(p,a,b) ICOM_CALL1(Close,p,a) +#define IOleObject_SetMoniker(p,a,b) ICOM_CALL2(SetMoniker,p,a,b) +#define IOleObject_GetMoniker(p,a,b) ICOM_CALL3(GetMoniker,p,a,b,c) +#define IOleObject_InitFromData(p,a,b) ICOM_CALL3(InitFromData,p,a,b,c) +#define IOleObject_GetClipboardData(p,a,b) ICOM_CALL2(GetClipboardData,p,a,b) +#define IOleObject_DoVerb(p,a,b) ICOM_CALL6(DoVerb,p,a,b,c,d,e,f) +#define IOleObject_EnumVerbs(p,a,b) ICOM_CALL1(EnumVerbs,p,a) +#define IOleObject_Update(p,a,b) ICOM_CALL (Update,p) +#define IOleObject_IsUpToDate(p,a,b) ICOM_CALL (IsUpToDate,p) +#define IOleObject_GetUserClassID(p,a,b) ICOM_CALL1(GetUserClassID,p,a) +#define IOleObject_GetUserType(p,a,b) ICOM_CALL2(GetUserType,p,a,b) +#define IOleObject_SetExtent(p,a,b) ICOM_CALL2(SetExtent,p,a,b) +#define IOleObject_GetExtent(p,a,b) ICOM_CALL2(GetExtent,p,a,b) +#define IOleObject_Advise(p,a,b) ICOM_CALL2(Advise,p,a,b) +#define IOleObject_Unadvise(p,a,b) ICOM_CALL1(Unadvise,p,a) +#define IOleObject_EnumAdvise(p,a,b) ICOM_CALL1(EnumAdvise,p,a) +#define IOleObject_GetMiscStatus(p,a,b) ICOM_CALL2(GetMiscStatus,p,a,b) +#define IOleObject_SetColorScheme(p,a,b) ICOM_CALL1(SetColorScheme,p,a) +#endif + + +/***************************************************************************** + * IOleAdviseHolder interface + */ +#define ICOM_INTERFACE IOleAdviseHolder +#define IOleAdviseHolder_METHODS \ + ICOM_METHOD2(HRESULT,Advise, IAdviseSink*,pAdvise, DWORD*,pdwConnection); \ + ICOM_METHOD1(HRESULT,Unadvise, DWORD,dwConnection); \ + ICOM_METHOD1(HRESULT,EnumAdvise, IEnumSTATDATA**,ppenumAdvise); \ + ICOM_METHOD1(HRESULT,SendOnRename, IMoniker*,pmk); \ + ICOM_METHOD (HRESULT,SendOnSave); \ + ICOM_METHOD (HRESULT,SendOnClose); +#define IOleAdviseHolder_IMETHODS \ + IUnknown_IMETHODS \ + IOleAdviseHolder_METHODS +ICOM_DEFINE(IOleAdviseHolder,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IOleAdviseHolder_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IOleAdviseHolder_AddRef(p) ICOM_CALL (AddRef,p) +#define IOleAdviseHolder_Release(p) ICOM_CALL (Release,p) +/*** IOleAdviseHolder methods ***/ +#define IOleAdviseHolder_Advise(p,a,b) ICOM_CALL2(UpdateCache,p,a,b) +#define IOleAdviseHolder_Unadvise(p,a) ICOM_CALL1(OnStop,p,a) +#define IOleAdviseHolder_EnumAdvise(p,a) ICOM_CALL1(OnStop,p,a) +#define IOleAdviseHolder_SendOnRename(p,a) ICOM_CALL1(OnStop,p,a) +#define IOleAdviseHolder_SendOnSave(p) ICOM_CALL (OnStop,p) +#define IOleAdviseHolder_SendOnClose(p) ICOM_CALL (OnStop,p) +#endif + + +/***************************************************************************** + * IEnumOLEVERB interface + */ +#define ICOM_INTERFACE IEnumOLEVERB +#define IEnumOLEVERB_METHODS \ + ICOM_METHOD3(HRESULT,Next, ULONG,celt, LPOLEVERB,rgelt, ULONG*,pceltFetched); \ + ICOM_METHOD1(HRESULT,Skip, ULONG,celt); \ + ICOM_METHOD (HRESULT,Reset); \ + ICOM_METHOD1(HRESULT,Clone, IEnumOLEVERB**,ppenum); +#define IEnumOLEVERB_IMETHODS \ + IUnknown_IMETHODS \ + IEnumOLEVERB_METHODS +ICOM_DEFINE(IEnumOLEVERB,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IEnumOLEVERB_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b) +#define IEnumOLEVERB_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p) +#define IEnumOLEVERB_Release(p) ICOM_ICALL (IUnknown,Release,p) +/*** IEnumOLEVERB methods ***/ +#define IEnumOLEVERB_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) +#define IEnumOLEVERB_Skip(p,a) ICOM_CALL1(Skip,p,a) +#define IEnumOLEVERB_Reset(p,a) ICOM_CALL (Reset,p) +#define IEnumOLEVERB_Clone(p,a) ICOM_CALL1(Clone,p,a) +#endif + +#endif /* __WINE_WINE_OBJ_OLEOBJ_H */ + diff --git a/include/wine/obj_oleundo.h b/include/wine/obj_oleundo.h new file mode 100644 index 00000000000..c150b3d591e --- /dev/null +++ b/include/wine/obj_oleundo.h @@ -0,0 +1,300 @@ +/* + * Defines the COM interfaces and APIs from ocidl.h which pertain to Undo/Redo + * + * Depends on 'obj_base.h'. + */ + +#ifndef __WINE_WINE_OBJ_OLEUNDO_H +#define __WINE_WINE_OBJ_OLEUNDO_H + + +#include "winbase.h" + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_GUID(IID_IQuickActivate, 0xcf51ed10, 0x62fe, 0x11cf, 0xbf, 0x86, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0x36); +typedef struct IQuickActivate IQuickActivate,*LPQUICKACTIVATE; + +DEFINE_GUID(IID_IPointerInactive, 0x55980ba0, 0x35aa, 0x11cf, 0xb6, 0x71, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8); +typedef struct IPointerInactive IPointerInactive,*LPPOINTERINACTIVE; + +DEFINE_GUID(IID_IAdviseSinkEx, 0x3af24290, 0x0c96, 0x11ce, 0xa0, 0xcf, 0x00, 0xaa, 0x00, 0x60, 0x0a, 0xb8); +typedef struct IAdviseSinkEx IAdviseSinkEx,*LPADVISESINKEX; + +DEFINE_GUID(IID_IOleUndoManager, 0xd001f200, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01); +typedef struct IOleUndoManager IOleUndoManager,*LPOLEUNDOMANAGER; + +DEFINE_GUID(IID_IOleUndoUnit, 0x894ad3b0, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01); +typedef struct IOleUndoUnit IOleUndoUnit,*LPOLEUNDOUNIT; + +DEFINE_GUID(IID_IOleParentUndoUnit, 0xa1faf330, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01); +typedef struct IOleParentUndoUnit IOleParentUndoUnit,*LPOLEPARENTUNDOUNIT; + +DEFINE_GUID(IID_IEnumOleUndoUnits, 0xb3e7c340, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01); +typedef struct IEnumOleUndoUnits IEnumOleUndoUnits,*LPENUMOLEUNDOUNITS; + +/***************************************************************************** + * Declare the structures + */ +typedef enum tagQACONTAINERFLAGS +{ + QACONTAINER_SHOWWATCHING = 0x1, + QACONTAINER_SHOWGRABHANDLES = 0x2, + QACONTAINER_USERMODE = 0x4, + QACONTAINER_DISPLAYASDEFAULT = 0x8, + QACONTAINER_UIDEAD = 0x10, + QACONTAINER_AUTOCLIP = 0x20, + QACONTAINER_MESSAGEREFLECT = 0x40, + QACONTAINER_SUPPORTSMNEMONICS = 0x80 +} QACONTAINERFLAGS; + +typedef DWORD OLE_COLOR; + +typedef struct tagQACONTROL +{ + ULONG cbSize; + DWORD dwMiscStatus; + DWORD dwViewStatus; + DWORD dwEventCookie; + DWORD dwPropNotifyCookie; + DWORD dwPointerActivationPolicy; +} QACONTROL; + +typedef struct tagQACONTAINER +{ + ULONG cbSize; + IOleClientSite *pClientSite; + IAdviseSinkEx *pAdviseSink; + IPropertyNotifySink *pPropertyNotifySink; + IUnknown *pUnkEventSink; + DWORD dwAmbientFlags; + OLE_COLOR colorFore; + OLE_COLOR colorBack; + IFont *pFont; + IOleUndoManager *pUndoMgr; + DWORD dwAppearance; + LONG lcid; + HPALETTE hpal; + struct IBindHost *pBindHost; +} QACONTAINER; + +/***************************************************************************** + * IQuickActivate interface + */ +#define ICOM_INTERFACE IQuickActivate +#define IQuickActivate_METHODS \ + ICOM_METHOD2(HRESULT,QuickActivate, QACONTAINER*,pQaContainer, QACONTROL*,pQaControl) \ + ICOM_METHOD1(HRESULT,SetContentExtent, LPSIZEL,pSizel) \ + ICOM_METHOD1(HRESULT,GetContentExtent, LPSIZEL,pSizel) +#define IQuickActivate_IMETHODS \ + IUnknown_IMETHODS \ + IQuickActivate_METHODS +ICOM_DEFINE(IQuickActivate,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IQuickActivate_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IQuickActivate_AddRef(p) ICOM_CALL (AddRef,p) +#define IQuickActivate_Release(p) ICOM_CALL (Release,p) +/*** IQuickActivate methods ***/ +#define IQuickActivate_QuickActivate(p,a,b) ICOM_CALL2(QuickActivate,p,a,b) +#define IQuickActivate_SetContentExtent(p,a) ICOM_CALL1(SetContentExtent,p,a) +#define IQuickActivate_GetContentExtent(p,a) ICOM_CALL1(GetContentExtent,p,a) +#endif + + +/***************************************************************************** + * IPointerInactive interface + */ +#define ICOM_INTERFACE IPointerInactive +#define IPointerInactive_METHODS \ + ICOM_METHOD1(HRESULT,GetActivationPolicy, DWORD*,pdwPolicy) \ + ICOM_METHOD4(HRESULT,OnInactiveMoveMouse, LPCRECT,pRectBounds, LONG,x, LONG,y, DWORD,grfKeyState) \ + ICOM_METHOD5(HRESULT,OnInactiveSetCursor, LPCRECT,pRectBounds, LONG,x, LONG,y, DWORD,dwMouseMsg, BOOL,fSetAlways) +#define IPointerInactive_IMETHODS \ + IUnknown_IMETHODS \ + IPointerInactive_METHODS +ICOM_DEFINE(IPointerInactive,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPointerInactive_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPointerInactive_AddRef(p) ICOM_CALL (AddRef,p) +#define IPointerInactive_Release(p) ICOM_CALL (Release,p) +/*** IPointerInactive methods ***/ +#define IPointerInactive_GetActivationPolicy(p,a) ICOM_CALL1(GetActivationPolicy,p,a) +#define IPointerInactive_OnInactiveMoveMouse(p,a,b,c,d) ICOM_CALL4(OnInactiveMoveMouse,p,a,b,c,d) +#define IPointerInactive_OnInactiveSetCursor(p,a,b,c,d,e) ICOM_CALL5(OnInactiveSetCursor,p,a,b,d,e) +#endif + + +/***************************************************************************** + * IAdviseSinkEx interface + */ +#define ICOM_INTERFACE IAdviseSinkEx +#define IAdviseSinkEx_METHODS \ + ICOM_METHOD1(HRESULT,OnViewStatusChange, DWORD,dwViewStatus) +#define IAdviseSinkEx_IMETHODS \ + IAdviseSink_IMETHODS \ + IAdviseSinkEx_METHODS +ICOM_DEFINE(IAdviseSinkEx,IAdviseSink) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IAdviseSinkEx_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IAdviseSinkEx_AddRef(p) ICOM_CALL (AddRef,p) +#define IAdviseSinkEx_Release(p) ICOM_CALL (Release,p) +/*** IAdviseSink methods ***/ +#define IAdviseSinkEx_OnDataChange(p,a,b) ICOM_CALL2(OnDataChange,p,a,b) +#define IAdviseSinkEx_OnViewChange(p,a,b) ICOM_CALL2(OnViewChange,p,a,b) +#define IAdviseSinkEx_OnRename(p,a) ICOM_CALL1(OnRename,p,a) +#define IAdviseSinkEx_OnSave(p) ICOM_CALL (OnSave,p) +#define IAdviseSinkEx_OnClose(p) ICOM_CALL (OnClose,p) +/*** IAdviseSinkEx methods ***/ +#define IAdviseSinkEx_OnViewStatusChange(p,a) ICOM_CALL1(OnViewStatusChange,p,a) +#endif + + +/***************************************************************************** + * IOleUndoManager interface + */ +#define ICOM_INTERFACE IOleUndoManager +#define IOleUndoManager_METHODS \ + ICOM_METHOD1(HRESULT,Open, IOleParentUndoUnit*,pPUU) \ + ICOM_METHOD2(HRESULT,Close, IOleParentUndoUnit*,pPUU, BOOL,fCommit) \ + ICOM_METHOD1(HRESULT,Add, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,GetOpenParentState, DWORD*,pdwState) \ + ICOM_METHOD1(HRESULT,DiscardFrom, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,UndoTo, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,RedoTo, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,EnumUndoable, IEnumOleUndoUnits**,ppEnum) \ + ICOM_METHOD1(HRESULT,EnumRedoable, IEnumOleUndoUnits**,ppEnum) \ + ICOM_METHOD1(HRESULT,GetLastUndoDescription, BSTR*,pBstr) \ + ICOM_METHOD1(HRESULT,GetLastRedoDescription, BSTR*,pBstr) \ + ICOM_METHOD1(HRESULT,Enable, BOOL,fEnable) +#define IOleUndoManager_IMETHODS \ + IUnknown_IMETHODS \ + IOleUndoManager_METHODS +ICOM_DEFINE(IOleUndoManager,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IOleUndoManager_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IOleUndoManager_AddRef(p) ICOM_CALL (AddRef,p) +#define IOleUndoManager_Release(p) ICOM_CALL (Release,p) +/*** IOleUndoManager methods ***/ +#define IOleUndoManager_Open(p,a) ICOM_CALL1(Open,p,a) +#define IOleUndoManager_Close(p,a,b) ICOM_CALL2(Close,p,a,b) +#define IOleUndoManager_Add(p,a) ICOM_CALL1(Add,p,a) +#define IOleUndoManager_GetOpenParentState(p,a) ICOM_CALL1(GetOpenParentState,p,a) +#define IOleUndoManager_DiscardFrom(p,a) ICOM_CALL1(DiscardFrom,p,a) +#define IOleUndoManager_UndoTo(p,a) ICOM_CALL1(UndoTo,p,a) +#define IOleUndoManager_RedoTo(p,a) ICOM_CALL1(RedoTo,p,a) +#define IOleUndoManager_EnumUndoable(p,a) ICOM_CALL1(EnumUndoable,p,a) +#define IOleUndoManager_EnumRedoable(p,a) ICOM_CALL1(EnumRedoable,p,a) +#define IOleUndoManager_GetLastUndoDescription(p,a) ICOM_CALL1(GetLastUndoDescription,p,a) +#define IOleUndoManager_GetLastRedoDescription(p,a) ICOM_CALL1(GetLastRedoDescription,p,a) +#define IOleUndoManager_Enable(p,a) ICOM_CALL1(Enable,p,a) +#endif + + +/***************************************************************************** + * IOleUndoUnit interface + */ +#define ICOM_INTERFACE IOleUndoUnit +#define IOleUndoUnit_METHODS \ + ICOM_METHOD1(HRESULT,Do, IOleUndoManager*,pUndoManager) \ + ICOM_METHOD1(HRESULT,GetDescription, BSTR*,pBstr) \ + ICOM_METHOD2(HRESULT,GetUnitType, CLSID*,pClsid, LONG*,plID) \ + ICOM_METHOD (HRESULT,OnNextAdd) +#define IOleUndoUnit_IMETHODS \ + IUnknown_IMETHODS \ + IOleUndoUnit_METHODS +ICOM_DEFINE(IOleUndoUnit,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IOleUndoUnit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IOleUndoUnit_AddRef(p) ICOM_CALL (AddRef,p) +#define IOleUndoUnit_Release(p) ICOM_CALL (Release,p) +/*** IOleUndoUnit methods ***/ +#define IOleUndoUnit_Do(p,a) ICOM_CALL1(Do,p,a) +#define IOleUndoUnit_GetDescription(p,a) ICOM_CALL1(GetDescription,p,a) +#define IOleUndoUnit_GetUnitType(p,a,b) ICOM_CALL2(GetUnitType,p,a,b) +#define IOleUndoUnit_OnNextAdd(p) ICOM_CALL (OnNextAdd,p) +#endif + + + +/***************************************************************************** + * IOleUndoUnit interface + */ +#define ICOM_INTERFACE IOleParentUndoUnit +#define IOleParentUndoUnit_METHODS \ + ICOM_METHOD1(HRESULT,Open, IOleParentUndoUnit*,pPUU) \ + ICOM_METHOD2(HRESULT,Close, IOleParentUndoUnit*,pPUU, BOOL,fCommit) \ + ICOM_METHOD1(HRESULT,Add, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,FindUnit, IOleUndoUnit*,pUU) \ + ICOM_METHOD1(HRESULT,GetParentState, DWORD*,pdwState) +#define IOleParentUndoUnit_IMETHODS \ + IOleUndoUnit_IMETHODS \ + IOleParentUndoUnit_METHODS +ICOM_DEFINE(IOleParentUndoUnit,IOleUndoUnit) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IOleParentUndoUnit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IOleParentUndoUnit_AddRef(p) ICOM_CALL (AddRef,p) +#define IOleParentUndoUnit_Release(p) ICOM_CALL (Release,p) +/*** IOleUndoUnit methods ***/ +#define IOleParentUndoUnit_Do(p,a) ICOM_CALL1(Do,p,a) +#define IOleParentUndoUnit_GetDescription(p,a) ICOM_CALL1(GetDescription,p,a) +#define IOleParentUndoUnit_GetUnitType(p,a,b) ICOM_CALL2(GetUnitType,p,a,b) +#define IOleParentUndoUnit_OnNextAdd(p) ICOM_CALL (OnNextAdd,p) +/*** IOleParentUndoUnit methods ***/ +#define IOleParentUndoUnit_Open(p,a) ICOM_CALL1(Open,p,a) +#define IOleParentUndoUnit_Close(p,a,b) ICOM_CALL2(Close,p,a,b) +#define IOleParentUndoUnit_Add(p,a) ICOM_CALL1(Add,p,a) +#define IOleParentUndoUnit_FindUnit(p,a) ICOM_CALL1(FindUnit,p,a) +#define IOleParentUndoUnit_GetParentState(p,a,b) ICOM_CALL1(GetParentState,p,a) +#endif + + +/***************************************************************************** + * IEnumOleUndoUnits interface + */ +#define ICOM_INTERFACE IEnumOleUndoUnits +#define IEnumOleUndoUnits_METHODS \ + ICOM_METHOD3(HRESULT,Next, ULONG,cElt, IOleUndoUnit**,rgElt, ULONG*,pcEltFetched) \ + ICOM_METHOD1(HRESULT,Skip, ULONG,cElt) \ + ICOM_METHOD (HRESULT,Reset) \ + ICOM_METHOD1(HRESULT,Clone, IEnumOleUndoUnits**,ppEnum) +#define IEnumOleUndoUnits_IMETHODS \ + IUnknown_IMETHODS \ + IEnumOleUndoUnits_METHODS +ICOM_DEFINE(IEnumOleUndoUnits,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IEnumOleUndoUnits_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IEnumOleUndoUnits_AddRef(p) ICOM_CALL (AddRef,p) +#define IEnumOleUndoUnits_Release(p) ICOM_CALL (Release,p) +/*** IEnumOleUndoUnits methods ***/ +#define IEnumOleUndoUnits_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c) +#define IEnumOleUndoUnits_Skip(p,a) ICOM_CALL1(Skip,p,a) +#define IEnumOleUndoUnits_Reset(p,a) ICOM_CALL (Reset,p,a) +#define IEnumOleUndoUnits_Clone(p,a) ICOM_CALL1(Clone,p,a) +#endif + + + +#endif /* __WINE_WINE_OBJ_OLEUNDO_H */ + diff --git a/include/wine/obj_oleview.h b/include/wine/obj_oleview.h new file mode 100644 index 00000000000..4d1004bcbdc --- /dev/null +++ b/include/wine/obj_oleview.h @@ -0,0 +1,93 @@ +/* + * Defines the COM interfaces and APIs related to ViewObject + * + * Depends on 'obj_base.h'. + */ + +#ifndef __WINE_WINE_OBJ_OLEVIEW_H +#define __WINE_WINE_OBJ_OLEVIEW_H + + +#include "winbase.h" + + +/***************************************************************************** + * Declare the structures + */ + + +/***************************************************************************** + * Predeclare the interfaces + */ + +DEFINE_OLEGUID(IID_IViewObject, 0x0000010dL, 0, 0); +typedef struct IViewObject IViewObject, *LPVIEWOBJECT; + +DEFINE_OLEGUID(IID_IViewObject2, 0x00000127L, 0, 0); +typedef struct IViewObject2 IViewObject2, *LPVIEWOBJECT2; + +/***************************************************************************** + * IViewObject interface + */ +#define ICOM_INTERFACE IViewObject +#define IViewObject_METHODS \ + ICOM_METHOD10(HRESULT,Draw, DWORD,dwDrawAspect, LONG,lindex, void*,pvAspect, DVTARGETDEVICE*,ptd, HDC,hdcTargetDev, HDC,hdcDraw, LPCRECTL,lprcBounds, LPCRECTL,lprcWBounds, BOOL*,pfContinue(DWORD dwContinue), DWORD,dwContinue) \ + ICOM_METHOD6(HRESULT,GetColorSet, DWORD,dwDrawAspect, LONG,lindex, void*,pvAspect, DVTARGETDEVICE*,ptd, HDC,hicTargetDevice, LOGPALETTE**,ppColorSet) \ + ICOM_METHOD4(HRESULT,Freeze, DWORD,dwDrawAspect, LONG,lindex, void*,pvAspect, DWORD*,pdwFreeze) \ + ICOM_METHOD1(HRESULT,Unfreeze, DWORD,dwFreeze) \ + ICOM_METHOD3(HRESULT,SetAdvise, DWORD,aspects, DWORD,advf, IAdviseSink*,pAdvSink) \ + ICOM_METHOD3(HRESULT,GetAdvise, DWORD*,pAspects, DWORD*,pAdvf, IAdviseSink**,ppAdvSink) +#define IViewObject_IMETHODS \ + IUnknown_IMETHODS \ + IViewObject_METHODS +ICOM_DEFINE(IViewObject,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IViewObject_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IViewObject_AddRef(p) ICOM_CALL (AddRef,p) +#define IViewObject_Release(p) ICOM_CALL (Release,p) +/*** IViewObject methods ***/ +#define IViewObject_Draw(p,a,b,c,d,e,f,g,h,i,j) ICOM_CALL10(Draw,p,a,b,c,d,e,f,g,h,i,j) +#define IViewObject_GetColorSet(p,a,b,c,d,e,f) ICOM_CALL6(GetColorSet,p,a,b,c,d,e,f) +#define IViewObject_Freeze(p,a,b,c,d) ICOM_CALL4(Freeze,p,a,b,c,d) +#define IViewObject_Unfreeze(p,a) ICOM_CALL1(Unfreeze,p,a) +#define IViewObject_SetAdvise(p,a,b,c) ICOM_CALL3(SetAdvise,p,a,b,c) +#define IViewObject_GetAdvise(p,a,b,c) ICOM_CALL3(GetAdvise,p,a,b,c) +#endif + + + +/***************************************************************************** + * IViewObject2 interface + */ +#define ICOM_INTERFACE IViewObject2 +#define IViewObject2_METHODS \ + ICOM_METHOD4(HRESULT,GetExtent, DWORD,dwDrawAspect, LONG,lindex, DVTARGETDEVICE*,ptd, LPSIZEL,lpsizel) +#define IViewObject2_IMETHODS \ + IViewObject_IMETHODS \ + IViewObject2_METHODS +ICOM_DEFINE(IViewObject2,IViewObject) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknwon methods ***/ +#define IViewObject2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IViewObject2_AddRef(p) ICOM_CALL (AddRef,p) +#define IViewObject2_Release(p) ICOM_CALL (Release,p) +/*** IViewObject methods ***/ +#define IViewObject2_Draw(p,a,b,c,d,e,f,g,h,i,j) ICOM_CALL10(Draw,p,a,b,c,d,e,f,g,h,i,j) +#define IViewObject2_GetColorSet(p,a,b,c,d,e,f) ICOM_CALL6(GetColorSet,p,a,b,c,d,e,f) +#define IViewObject2_Freeze(p,a,b,c,d) ICOM_CALL4(Freeze,p,a,b,c,d) +#define IViewObject2_Unfreeze(p,a) ICOM_CALL1(Unfreeze,p,a) +#define IViewObject2_SetAdvise(p,a,b,c) ICOM_CALL3(SetAdvise,p,a,b,c) +#define IViewObject2_GetAdvise(p,a,b,c) ICOM_CALL3(GetAdvise,p,a,b,c) +/*** IViewObject2 methods ***/ +#define IViewObject2_GetExtent(p,a,b,c,d) ICOM_CALL4(GetExtent,p,a,b,c,d) +#endif + + + +#endif /* __WINE_WINE_OBJ_OLEVIEW_H */ + diff --git a/include/wine/obj_picture.h b/include/wine/obj_picture.h new file mode 100644 index 00000000000..47489ac5a9c --- /dev/null +++ b/include/wine/obj_picture.h @@ -0,0 +1,84 @@ +/* + * Defines the COM interfaces and APIs related to OLE picture support. + * + * Depends on 'obj_base.h'. + */ + +#ifndef __WINE_WINE_OBJ_PICTURE_H +#define __WINE_WINE_OBJ_PICTURE_H + +#include "windows.h" +#include "wintypes.h" + +/***************************************************************************** + * Predeclare the structures + */ +typedef UINT OLE_HANDLE; +typedef LONG OLE_XPOS_HIMETRIC; +typedef LONG OLE_YPOS_HIMETRIC; +typedef LONG OLE_XSIZE_HIMETRIC; +typedef LONG OLE_YSIZE_HIMETRIC; + + + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_GUID(IID_IPicture, 0x7bf80980, 0xbf32, 0x101a, 0x8b, 0xbb, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB); +typedef struct IPicture IPicture, *LPPICTURE; + +DEFINE_GUID(IID_IPictureDisp, 0x7bf80981, 0xbf32, 0x101a, 0x8b, 0xbb, 0x00, 0xAA, 0x00, 0x30, 0x0C, 0xAB); +typedef struct IPictureDisp IPictureDisp, *LPPICTUREDISP; + +/***************************************************************************** + * IFont interface + */ +#define ICOM_INTERFACE IPicture +#define IPicture_METHODS \ + ICOM_METHOD1(HRESULT,get_Handle, OLE_HANDLE*,pHandle) \ + ICOM_METHOD1(HRESULT,get_hPal, OLE_HANDLE*,phPal) \ + ICOM_METHOD1(HRESULT,get_Type, SHORT*,pType) \ + ICOM_METHOD1(HRESULT,get_Width, OLE_XSIZE_HIMETRIC*,pWidth) \ + ICOM_METHOD1(HRESULT,get_Height, OLE_YSIZE_HIMETRIC*,pHeight) \ + ICOM_METHOD10(HRESULT,Render, HDC,hdc, LONG,x, LONG,y, LONG,cx, LONG,cy, OLE_XPOS_HIMETRIC,xSrc, OLE_YPOS_HIMETRIC,ySrc, OLE_XSIZE_HIMETRIC,cxSrc, OLE_YSIZE_HIMETRIC,cySrc, LPCRECT,pRcWBounds) \ + ICOM_METHOD1(HRESULT,set_hPal, OLE_HANDLE,hPal) \ + ICOM_METHOD1(HRESULT,get_CurDC, HDC*,phDC) \ + ICOM_METHOD3(HRESULT,SelectPicture, HDC,hDCIn, HDC*,phDCOut, OLE_HANDLE*,phBmpOut) \ + ICOM_METHOD1(HRESULT,get_KeepOriginalFormat, BOOL*,pKeep) \ + ICOM_METHOD1(HRESULT,put_KeepOriginalFormat, BOOL,Keep) \ + ICOM_METHOD (HRESULT,PictureChanged) \ + ICOM_METHOD3(HRESULT,SaveAsFile, LPSTREAM,pStream, BOOL,fSaveMemCopy, LONG*,pCbSize) \ + ICOM_METHOD1(HRESULT,get_Attributes, DWORD*,pDwAttr) +#define IPicture_IMETHODS \ + IUnknown_IMETHODS \ + IPicture_METHODS +ICOM_DEFINE(IPicture,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPicture_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPicture_AddRef(p) ICOM_CALL (AddRef,p) +#define IPicture_Release(p) ICOM_CALL (Release,p) +/*** IFont methods ***/ +#define IPicture_get_Handle(p,a) ICOM_CALL1(get_Handle,p,a) +#define IPicture_get_hPal(p,a) ICOM_CALL1(get_hPal,p,a) +#define IPicture_get_Type(p,a) ICOM_CALL1(get_Type,p,a) +#define IPicture_get_Width(p,a) ICOM_CALL1(get_Width,p,a) +#define IPicture_get_Height(p,a) ICOM_CALL1(get_Height,p,a) +#define IPicture_Render(p,a,b,c,d,e,f,g,h,i,j) ICOM_CALL10(Render,p,a,b,c,d,e,f,g,h,i,j) +#define IPicture_set_hPal(p,a) ICOM_CALL1(set_hPal,p,a) +#define IPicture_get_CurDC(p,a) ICOM_CALL1(get_CurDC,p,a) +#define IPicture_SelectPicture(p,a,b,c) ICOM_CALL3(SelectPicture,p,a,b,c) +#define IPicture_get_KeepOriginalFormat(p,a) ICOM_CALL1(get_KeepOriginalFormat,p,a) +#define IPicture_put_KeepOriginalFormat(p,a) ICOM_CALL1(put_KeepOriginalFormat,p,a) +#define IPicture_PictureChanged(p) ICOM_CALL (PictureChanged,p) +#define IPicture_SaveAsFile(p,a,b,c) ICOM_CALL3(SaveAsFile,p,a,b,c) +#define IPicture_get_Attributes(p,a) ICOM_CALL1(get_Attributes,p,a) +#endif + + + +#endif /* __WINE_WINE_OBJ_PICTURE_H */ + + diff --git a/include/wine/obj_property.h b/include/wine/obj_property.h new file mode 100644 index 00000000000..f1c6de503b2 --- /dev/null +++ b/include/wine/obj_property.h @@ -0,0 +1,434 @@ +/* + * Defines the COM interfaces and APIs from ocidl.h related to property + * + * Depends on 'obj_base.h'. + */ + +#ifndef __WINE_WINE_OBJ_PROPERTY_H +#define __WINE_WINE_OBJ_PROPERTY_H + + +#include "winbase.h" +#include "wine/obj_oleaut.h" /* for DISPID */ + +/***************************************************************************** + * Declare the structures + */ +typedef struct tagPROPPAGEINFO +{ + ULONG cb; + LPOLESTR pszTitle; + SIZE size; + LPOLESTR pszDocString; + LPOLESTR pszHelpFile; + DWORD dwHelpContext; +} PROPPAGEINFO, *LPPROPPAGEINFO; + +typedef enum tagPROPPAGESTATUS +{ + PROPPAGESTATUS_DIRTY = 0x1, + PROPPAGESTATUS_VALIDATE = 0x2, + PROPPAGESTATUS_CLEAN = 0x4, +} PROPPAGESTATUS; + +typedef struct tagCAUUID +{ + ULONG cElems; + GUID* pElems; +} CAUUID, *LPCAUUID; + +typedef struct tagCALPOLESTR +{ + ULONG cElems; + LPOLESTR *pElems; +} CALPOLESTR, *LPCALPOLESTR; + +typedef struct tagCADWORD +{ + ULONG cElems; + DWORD *pElems; +} CADWORD, *LPCADWORD; + + +/***************************************************************************** + * Predeclare the interfaces + */ +DEFINE_GUID(IID_IPropertyPage, 0xb196b28dL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct IPropertyPage IPropertyPage, *LPPROPERTYPAGE; + +DEFINE_GUID(IID_IPropertyPage2, 0x01e44665L, 0x24ac, 0x101b, 0x84, 0xed, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13); +typedef struct IPropertyPage2 IPropertyPage2, *LPPROPERTYPAGE2; + +DEFINE_GUID(IID_IPropertyPageSite, 0xb196b28cL, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct IPropertyPageSite IPropertyPageSite, *LPPROPERTYPAGESITE; + +DEFINE_GUID(IID_IPropertyNotifySink, 0x9bfbbc02L, 0xeff1, 0x101a, 0x84, 0xed, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct IPropertyNotifySink IPropertyNotifySink, *LPPROPERTYNOTIFYSINK; + +DEFINE_GUID(IID_ISimpleFrameSite, 0x742b0e01L, 0x14e6, 0x101b, 0x91, 0x4e, 0x00, 0xaa, 0x00, 0x30, 0x0c, 0xab); +typedef struct ISimpleFrameSite ISimpleFrameSite, *LPSIMPLEFRAMESITE; + +DEFINE_GUID(IID_IPersistStreamInit, 0x7fd52380L, 0x4e07, 0x101b, 0xae, 0x2d, 0x08, 0x00, 0x2b, 0x2e, 0xc7, 0x13); +typedef struct IPersistStreamInit IPersistStreamInit,*LPPERSISTSTREAMINIT; + +DEFINE_GUID(IID_IPersistMemory, 0xbd1ae5e0L, 0xa6ae, 0x11ce, 0xbd, 0x37, 0x50, 0x42, 0x00, 0xc1, 0x00, 0x00); +typedef struct IPersistMemory IPersistMemory,*LPPERSISTMEMORY; + +DEFINE_GUID(IID_IPersistPropertyBag, 0x37d84f60, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); +typedef struct IPersistPropertyBag IPersistPropertyBag,*LPPERSISTPROPERTYBAG; + +DEFINE_GUID(IID_IErrorLog, 0x3127ca40L, 0x446e, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); +typedef struct IErrorLog IErrorLog,*LPERRORLOG; + +DEFINE_GUID(IID_IPropertyBag, 0x55272a00L, 0x42cb, 0x11ce, 0x81, 0x35, 0x00, 0xaa, 0x00, 0x4b, 0xb8, 0x51); +typedef struct IPropertyBag IPropertyBag,*LPPROPERTYBAG; + +DEFINE_GUID(IID_ISpecifyPropertyPages, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct ISpecifyPropertyPages ISpecifyPropertyPages,*LPSPECIFYPROPERTYPAGES; + +DEFINE_GUID(IID_IPerPropertyBrowsing, 0xb196b28b, 0xbab4, 0x101a, 0xb6, 0x9c, 0x00, 0xaa, 0x00, 0x34, 0x1d, 0x07); +typedef struct IPerPropertyBrowsing IPerPropertyBrowsing,*LPPERPROPERTYBROWSING; + + +/***************************************************************************** + * IPropertPage interface + */ +#define ICOM_INTERFACE IPropertyPage +#define IPropertyPage_METHODS \ + ICOM_METHOD1(HRESULT,SetPageSite, IPropertyPageSite*,pPageSite) \ + ICOM_METHOD3(HRESULT,Activate, HWND,hWndParent, LPCRECT,pRect, BOOL,bModal) \ + ICOM_METHOD (HRESULT,Deactivate) \ + ICOM_METHOD1(HRESULT,GetPageInfo, PROPPAGEINFO*,pPageInfo) \ + ICOM_METHOD2(HRESULT,SetObjects, ULONG,cObjects, IUnknown**,ppUnk) \ + ICOM_METHOD1(HRESULT,Show, UINT,nCmdShow) \ + ICOM_METHOD1(HRESULT,Move, LPCRECT,pRect) \ + ICOM_METHOD (HRESULT,IsPageDirty) \ + ICOM_METHOD (HRESULT,Apply) \ + ICOM_METHOD1(HRESULT,Help, LPCOLESTR,pszHelpDir) \ + ICOM_METHOD1(HRESULT,TranslateAccelerator, MSG*,pMsg) +#define IPropertyPage_IMETHODS \ + IUnknown_IMETHODS \ + IPropertyPage_METHODS +ICOM_DEFINE(IPropertyPage,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPropertyPage_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyPage_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyPage_Release(p) ICOM_CALL (Release,p) +/*** IPropertyPage methods ***/ +#define IPropertyPage_SetPageSite(p,a) ICOM_CALL1(SetPageSite,p,a) +#define IPropertyPage_Activate(p,a,b,c) ICOM_CALL3(Activate,p,a,b,c) +#define IPropertyPage_Deactivate(p) ICOM_CALL (Deactivate,p) +#define IPropertyPage_GetPageInfo(p,a) ICOM_CALL1(GetPageInfo,p,a) +#define IPropertyPage_SetObjects(p,a,b) ICOM_CALL2(SetObjects,p,a,b) +#define IPropertyPage_Show(p,a) ICOM_CALL1(Show,p,a) +#define IPropertyPage_Move(p,a) ICOM_CALL1(Move,p,a) +#define IPropertyPage_IsPageDirty(p) ICOM_CALL (IsPageDirty,p) +#define IPropertyPage_Apply(p) ICOM_CALL (Apply,p) +#define IPropertyPage_Help(p,a) ICOM_CALL1(Help,p,a) +#define IPropertyPage_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a) +#endif + + +/***************************************************************************** + * IPropertPage2 interface + */ +#define ICOM_INTERFACE IPropertyPage2 +#define IPropertyPage2_METHODS \ + ICOM_METHOD1(HRESULT,EditProperty, DISPID,dispID) +#define IPropertyPage2_IMETHODS \ + IPropertyPage_IMETHODS \ + IPropertyPage2_METHODS +ICOM_DEFINE(IPropertyPage2,IPropertyPage) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPropertyPage2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyPage2_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyPage2_Release(p) ICOM_CALL (Release,p) +/*** IPropertyPage methods ***/ +#define IPropertyPage2_SetPageSite(p,a) ICOM_CALL1(SetPageSite,p,a) +#define IPropertyPage2_Activate(p,a,b,c) ICOM_CALL3(Activate,p,a,b,c) +#define IPropertyPage2_Deactivate(p) ICOM_CALL (Deactivate,p) +#define IPropertyPage2_GetPageInfo(p,a) ICOM_CALL1(GetPageInfo,p,a) +#define IPropertyPage2_SetObjects(p,a,b) ICOM_CALL2(SetObjects,p,a,b) +#define IPropertyPage2_Show(p,a) ICOM_CALL1(Show,p,a) +#define IPropertyPage2_Move(p,a) ICOM_CALL1(Move,p,a) +#define IPropertyPage2_IsPageDirty(p) ICOM_CALL (IsPageDirty,p) +#define IPropertyPage2_Apply(p) ICOM_CALL (Apply,p) +#define IPropertyPage2_Help(p,a) ICOM_CALL1(Help,p,a) +#define IPropertyPage2_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a) +/*** IPropertyPage2 methods ***/ +#define IPropertyPage2_EditProperty(p,a) ICOM_CALL1(EditProperty,p,a) +#endif + + +/***************************************************************************** + * IPropertPageSite interface + */ +#define ICOM_INTERFACE IPropertyPageSite +#define IPropertyPageSite_METHODS \ + ICOM_METHOD1(HRESULT,OnStatusChange, DWORD,dwFlags) \ + ICOM_METHOD1(HRESULT,GetLocaleID, LCID*,pLocaleID) \ + ICOM_METHOD1(HRESULT,GetPageContainer, IUnknown**,ppUnk) \ + ICOM_METHOD1(HRESULT,TranslateAccelerator, MSG*,pMsg) +#define IPropertyPageSite_IMETHODS \ + IUnknown_IMETHODS \ + IPropertyPageSite_METHODS +ICOM_DEFINE(IPropertyPageSite,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPropertyPageSite_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyPageSite_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyPageSite_Release(p) ICOM_CALL (Release,p) +/*** IPropertyPageSite methods ***/ +#define IPropertyPageSite_OnStatusChange(p,a) ICOM_CALL1(OnStatusChange,p,a) +#define IPropertyPageSite_GetLocaleID(p,a) ICOM_CALL1(GetLocaleID,p,a) +#define IPropertyPageSite_GetPageContainer(p,a) ICOM_CALL1(GetPageContainer,p,a) +#define IPropertyPageSite_TranslateAccelerator(p,a) ICOM_CALL1(TranslateAccelerator,p,a) +#endif + + +/***************************************************************************** + * IPropertyNotifySink interface + */ +#define ICOM_INTERFACE IPropertyNotifySink +#define IPropertyNotifySink_METHODS \ + ICOM_METHOD1(HRESULT,OnChanged, DISPID,dispID) \ + ICOM_METHOD1(HRESULT,OnRequestEdit, DISPID,dispID) +#define IPropertyNotifySink_IMETHODS \ + IUnknown_IMETHODS \ + IPropertyNotifySink_METHODS +ICOM_DEFINE(IPropertyNotifySink,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPropertyNotifySink_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyNotifySink_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyNotifySink_Release(p) ICOM_CALL (Release,p) +/*** IPropertyNotifySink methods ***/ +#define IPropertyNotifySink_OnChanged(p,a) ICOM_CALL1(OnChanged,p,a) +#define IPropertyNotifySink_OnRequestEdit(p,a) ICOM_CALL1(OnRequestEdit,p,a) +#endif + + +/***************************************************************************** + * IPropertyNotifySink interface + */ +#define ICOM_INTERFACE ISimpleFrameSite +#define ISimpleFrameSite_METHODS \ + ICOM_METHOD6(HRESULT,PreMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD*,pwdCookie) \ + ICOM_METHOD6(HRESULT,PostMessageFilter, HWND,hWnd, UINT,msg, WPARAM,wp, LPARAM,lp, LRESULT*,plResult, DWORD,pwdCookie) +#define ISimpleFrameSite_IMETHODS \ + IUnknown_IMETHODS \ + ISimpleFrameSite_METHODS +ICOM_DEFINE(ISimpleFrameSite,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ISimpleFrameSite_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ISimpleFrameSite_AddRef(p) ICOM_CALL (AddRef,p) +#define ISimpleFrameSite_Release(p) ICOM_CALL (Release,p) +/*** IPropertyNotifySink methods ***/ +#define ISimpleFrameSite_PreMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PreMessageFilter,p,a,b,c,d,e,f) +#define ISimpleFrameSite_PostMessageFilter(p,a,b,c,d,e,f) ICOM_CALL1(PostMessageFilter,p,a,b,c,d,e,f) +#endif + + +/***************************************************************************** + * IPersistStreamInit interface + */ +#define ICOM_INTERFACE IPersistStreamInit +#define IPersistStreamInit_METHODS \ + ICOM_METHOD (HRESULT,IsDirty) \ + ICOM_METHOD1(HRESULT,Load, LPSTREAM,pStm) \ + ICOM_METHOD2(HRESULT,Save, LPSTREAM,pStm, BOOL,fClearDirty) \ + ICOM_METHOD1(HRESULT,GetSizeMax, ULARGE_INTEGER*,pcbSize) \ + ICOM_METHOD (HRESULT,InitNew) +#define IPersistStreamInit_IMETHODS \ + IPersist_IMETHODS \ + IPersistStreamInit_METHODS +ICOM_DEFINE(IPersistStreamInit,IPersist) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPersistStreamInit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistStreamInit_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistStreamInit_Release(p) ICOM_CALL (Release,p) +/*** IPersist methods ***/ +#define IPersistStreamInit_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistStreamInit methods ***/ +#define IPersistStreamInit_IsDirty(p) ICOM_CALL (IsDirty,p) +#define IPersistStreamInit_Load(p,a) ICOM_CALL1(Load,p,a) +#define IPersistStreamInit_Save(p,a,b) ICOM_CALL2(Save,p,a,b) +#define IPersistStreamInit_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a) +#define IPersistStreamInit_InitNew(p) ICOM_CALL (InitNew,p) +#endif + + +/***************************************************************************** + * IPersistMemory interface + */ +#define ICOM_INTERFACE IPersistMemory +#define IPersistMemory_METHODS \ + ICOM_METHOD (HRESULT,IsDirty) \ + ICOM_METHOD2(HRESULT,Load, LPVOID,pMem, ULONG,cbSize) \ + ICOM_METHOD3(HRESULT,Save, LPVOID,pMem, BOOL,fClearDirty, ULONG,cbSize) \ + ICOM_METHOD1(HRESULT,GetSizeMax, ULONG*,pCbSize) \ + ICOM_METHOD (HRESULT,InitNew) +#define IPersistMemory_IMETHODS \ + IPersist_IMETHODS \ + IPersistMemory_METHODS +ICOM_DEFINE(IPersistMemory,IPersist) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPersistMemory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistMemory_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistMemory_Release(p) ICOM_CALL (Release,p) +/*** IPersist methods ***/ +#define IPersistMemory_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistMemory methods ***/ +#define IPersistMemory_IsDirty(p) ICOM_CALL (IsDirty,p) +#define IPersistMemory_Load(p,a,b) ICOM_CALL2(Load,p,a,b) +#define IPersistMemory_Save(p,a,b,c) ICOM_CALL3(Save,p,a,b,c) +#define IPersistMemory_GetSizeMax(p,a) ICOM_CALL1(GetSizeMax,p,a) +#define IPersistMemory_InitNew(p) ICOM_CALL (InitNew,p) +#endif + + +/***************************************************************************** + * IPersistPropertyBag interface + */ +#define ICOM_INTERFACE IPersistPropertyBag +#define IPersistPropertyBag_METHODS \ + ICOM_METHOD (HRESULT,InitNew) \ + ICOM_METHOD2(HRESULT,Load, IPropertyBag*,pPropBag, IErrorLog*,pErrorLog) \ + ICOM_METHOD3(HRESULT,Save, IPropertyBag*,pPropBag, BOOL,fClearDirty, BOOL,fSaveAllProperties) +#define IPersistPropertyBag_IMETHODS \ + IPersist_IMETHODS \ + IPersistPropertyBag_METHODS +ICOM_DEFINE(IPersistPropertyBag,IPersist) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPersistPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPersistPropertyBag_AddRef(p) ICOM_CALL (AddRef,p) +#define IPersistPropertyBag_Release(p) ICOM_CALL (Release,p) +/*** IPersist methods ***/ +#define IPersistPropertyBag_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a) +/*** IPersistPropertyBag methods ***/ +#define IPersistPropertyBag_InitNew(p) ICOM_CALL (InitNew,p) +#define IPersistPropertyBag_Load(p,a,b) ICOM_CALL2(Load,p,a,b) +#define IPersistPropertyBag_Save(p,a,b,c) ICOM_CALL3(Save,p,a,b,c) +#endif + + +/***************************************************************************** + * IErrorLog interface + */ +#define ICOM_INTERFACE IErrorLog +#define IErrorLog_METHODS \ + ICOM_METHOD2(HRESULT,AddError, LPCOLESTR,pszPropName, EXCEPINFO*,pExcepInfo) +#define IErrorLog_IMETHODS \ + IUnknown_IMETHODS \ + IErrorLog_METHODS +ICOM_DEFINE(IErrorLog,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IErrorLog_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IErrorLog_AddRef(p) ICOM_CALL (AddRef,p) +#define IErrorLog_Release(p) ICOM_CALL (Release,p) +/*** IErrorLog methods ***/ +#define IErrorLog_AddError(p,a,b) ICOM_CALL2(GetClassID,p,a,b) +#endif + + +/***************************************************************************** + * IPropertyBag interface + */ +#define ICOM_INTERFACE IPropertyBag +#define IPropertyBag_METHODS \ + ICOM_METHOD3(HRESULT,Read, LPCOLESTR,pszPropName, VARIANT*,pVar, IErrorLog*,pErrorLog) \ + ICOM_METHOD2(HRESULT,Write, LPCOLESTR,pszPropName, VARIANT*,pVar) +#define IPropertyBag_IMETHODS \ + IUnknown_IMETHODS \ + IPropertyBag_METHODS +ICOM_DEFINE(IPropertyBag,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPropertyBag_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPropertyBag_AddRef(p) ICOM_CALL (AddRef,p) +#define IPropertyBag_Release(p) ICOM_CALL (Release,p) +/*** IPropertyBag methods ***/ +#define IPropertyBag_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c) +#define IPropertyBag_Write(p,a,b) ICOM_CALL2(Write,p,a,b) +#endif + + +/***************************************************************************** + * ISpecifyPropertyPages interface + */ +#define ICOM_INTERFACE ISpecifyPropertyPages +#define ISpecifyPropertyPages_METHODS \ + ICOM_METHOD1(HRESULT,GetPages, CAUUID*,pPages) +#define ISpecifyPropertyPages_IMETHODS \ + IUnknown_IMETHODS \ + ISpecifyPropertyPages_METHODS +ICOM_DEFINE(ISpecifyPropertyPages,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define ISpecifyPropertyPages_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define ISpecifyPropertyPages_AddRef(p) ICOM_CALL (AddRef,p) +#define ISpecifyPropertyPages_Release(p) ICOM_CALL (Release,p) +/*** ISpecifyPropertyPages methods ***/ +#define ISpecifyPropertyPages_GetPages(p,a) ICOM_CALL3(GetPages,p,a) +#endif + + +/***************************************************************************** + * IPerPropertyBrowsing interface + */ +#define ICOM_INTERFACE IPerPropertyBrowsing +#define IPerPropertyBrowsing_METHODS \ + ICOM_METHOD2(HRESULT,GetDisplayString, DISPID,dispID, BSTR*,pBstr) \ + ICOM_METHOD2(HRESULT,MapPropertyToPage, DISPID,dispID, CLSID*,pClsid) \ + ICOM_METHOD3(HRESULT,GetPredefinedStrings, DISPID,dispID, CALPOLESTR*,pCaStringsOut, CADWORD*,pCaCookiesOut) \ + ICOM_METHOD3(HRESULT,GetPredefinedValue, DISPID,dispID, DWORD,dwCookie, VARIANT*,pVarOut) +#define IPerPropertyBrowsing_IMETHODS \ + IUnknown_IMETHODS \ + IPerPropertyBrowsing_METHODS +ICOM_DEFINE(IPerPropertyBrowsing,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPerPropertyBrowsing_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPerPropertyBrowsing_AddRef(p) ICOM_CALL (AddRef,p) +#define IPerPropertyBrowsing_Release(p) ICOM_CALL (Release,p) +/*** IPerPropertyBrowsing methods ***/ +#define IPerPropertyBrowsing_GetDisplayString(p,a,b) ICOM_CALL2(GetDisplayString,p,a,b) +#define IPerPropertyBrowsing_MapPropertyToPage(p,a,b) ICOM_CALL2(MapPropertyToPage,p,a,b) +#define IPerPropertyBrowsing_GetPredefinedStrings(p,a,b,c) ICOM_CALL3(GetPredefinedStrings,p,a,b,c) +#define IPerPropertyBrowsing_GetPredefinedValue(p,a,b,c) ICOM_CALL3(GetPredefinedValue,p,a,b,c) +#endif + + +#endif /* __WINE_WINE_OBJ_PROPERTY_H */ + diff --git a/include/winnt.h b/include/winnt.h index e488ed7c47b..216e4a2a401 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -36,6 +36,16 @@ #define ANYSIZE_ARRAY 1 +#define MINCHAR 0x80 +#define MAXCHAR 0x7f +#define MINSHORT 0x8000 +#define MAXSHORT 0x7fff +#define MINLONG 0x80000000 +#define MAXLONG 0x7fffffff +#define MAXBYTE 0xff +#define MAXWORD 0xffff +#define MAXDWORD 0xffffffff + #define FIELD_OFFSET(type, field) \ ((LONG)(INT)&(((type *)0)->field)) @@ -345,6 +355,9 @@ WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ); #define ANYSIZE_ARRAY 1 +/* FIXME: Orphan. What does it point to? */ +typedef PVOID PACCESS_TOKEN; + /* * TOKEN_INFORMATION_CLASS */ @@ -369,7 +382,7 @@ typedef enum _TOKEN_INFORMATION_CLASS { typedef struct { BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY; +} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; typedef struct _SID { BYTE Revision; @@ -460,15 +473,19 @@ typedef struct _LARGE_INTEGER { DWORD LowPart; LONG HighPart; -} LARGE_INTEGER,*PLARGE_INTEGER; +} LARGE_INTEGER, *LPLARGE_INTEGER, *PLARGE_INTEGER; typedef struct _ULARGE_INTEGER { DWORD LowPart; DWORD HighPart; -} ULARGE_INTEGER,*PULARGE_INTEGER; +} ULARGE_INTEGER, *LPULARGE_INTEGER, *PULARGE_INTEGER; -typedef LARGE_INTEGER LUID,*PLUID; /* locally unique ids */ +/* + * Locally Unique Identifier + */ + +typedef LARGE_INTEGER LUID,*PLUID; typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; @@ -500,6 +517,7 @@ typedef struct _TOKEN_PRIMARY_GROUP { PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP; + /* * TOKEN_DEFAULT_DACL */ @@ -685,6 +703,11 @@ typedef enum tagSID_NAME_USE { #define THREAD_DIRECT_IMPERSONATION 0x0200 #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff) +#define THREAD_BASE_PRIORITY_LOWRT 15 +#define THREAD_BASE_PRIORITY_MAX 2 +#define THREAD_BASE_PRIORITY_MIN -2 +#define THREAD_BASE_PRIORITY_IDLE -15 + #define FILE_READ_DATA 0x0001 /* file & pipe */ #define FILE_LIST_DIRECTORY 0x0001 /* directory */ #define FILE_WRITE_DATA 0x0002 /* file & pipe */ diff --git a/include/wintypes.h b/include/wintypes.h index 79cb541cf96..95845b78b5d 100644 --- a/include/wintypes.h +++ b/include/wintypes.h @@ -464,7 +464,7 @@ typedef struct tagRECT INT right; INT bottom; } RECT, *PRECT, *LPRECT; -typedef const RECT *LPCRECT32; +typedef const RECT *LPCRECT; typedef struct tagRECTL diff --git a/include/wtypes.h b/include/wtypes.h index 3089ae407b0..bc0a8c854f6 100644 --- a/include/wtypes.h +++ b/include/wtypes.h @@ -35,19 +35,19 @@ typedef BSTR *LPBSTR; #ifndef GUID_DEFINED #define GUID_DEFINED -struct _GUID +typedef struct _GUID { DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; -}; +} GUID; #endif -typedef struct _GUID GUID,*LPGUID; -typedef struct _GUID CLSID,*LPCLSID; -typedef struct _GUID IID,*LPIID; -typedef struct _GUID FMTID,*LPFMTID; +typedef GUID *LPGUID; +typedef GUID CLSID,*LPCLSID; +typedef GUID IID,*LPIID; +typedef GUID FMTID,*LPFMTID; #ifdef __cplusplus #define REFGUID const GUID & #define REFCLSID const CLSID & @@ -60,6 +60,16 @@ typedef struct _GUID FMTID,*LPFMTID; #define REFFMTID const FMTID* const #endif // !__cplusplus +#define GUID_NULL ((GUID*)NULL) /* Is this right? */ +#define CLSID_NULL ((REFCLSID)NULL) + +typedef enum tagDVASPECT +{ + DVASPECT_CONTENT = 1, + DVASPECT_THUMBNAIL = 2, + DVASPECT_ICON = 4, + DVASPECT_DOCPRINT = 8 +} DVASPECT; #define DECLARE_HANDLE(a) typedef HANDLE16 a##16; typedef HANDLE a DECLARE_HANDLE(HMETAFILEPICT); diff --git a/ole/compobj.c b/ole/compobj.c index 0b536e39cf3..30a0c47bd1f 100644 --- a/ole/compobj.c +++ b/ole/compobj.c @@ -33,11 +33,12 @@ #include #include #include +#include "windef.h" #include "wine/winbase16.h" #include "wine/winestring.h" #include "winerror.h" #include "ole.h" -#include "ole2.h" +#include "ole2ver.h" #include "debug.h" #include "file.h" #include "heap.h" diff --git a/ole/guid.c b/ole/guid.c index 368e5f43909..b7a8b47ff28 100644 --- a/ole/guid.c +++ b/ole/guid.c @@ -7,7 +7,6 @@ * so that the corresponding variables get defined. But they * don't even all belong to the same DLL !!! */ -#include "oleobj.h" #include "oleidl.h" #include "oaidl.h" #include "ocidl.h" diff --git a/ole/ole2disp.c b/ole/ole2disp.c index 68026e9247d..af69ca2d657 100644 --- a/ole/ole2disp.c +++ b/ole/ole2disp.c @@ -6,7 +6,7 @@ #include #include "winerror.h" -#include "ole.h" +#include "ole2.h" #include "oleauto.h" #include "wine/obj_base.h" #include "heap.h" @@ -290,10 +290,10 @@ int WINAPI SysStringByteLen(BSTR str) /****************************************************************************** * CreateDispTypeInfo [OLE2DISP.31] */ -OLESTATUS WINAPI CreateDispTypeInfo16( +HRESULT CreateDispTypeInfo16( INTERFACEDATA *pidata, LCID lcid, - LPVOID **pptinfo /*ITypeInfo*/ + ITypeInfo **pptinfo ) { FIXME(ole,"(%p,%ld,%p),stub\n",pidata,lcid,pptinfo); return 0; @@ -302,8 +302,8 @@ OLESTATUS WINAPI CreateDispTypeInfo16( /****************************************************************************** * RegisterActiveObject [OLE2DISP.35] */ -OLESTATUS WINAPI RegisterActiveObject16( - IUnknown * punk,REFCLSID rclsid,DWORD dwFlags, DWORD * pdwRegister +HRESULT RegisterActiveObject16( + IUnknown *punk, REFCLSID rclsid, DWORD dwFlags, unsigned long *pdwRegister ) { char buf[80]; WINE_StringFromCLSID(rclsid,buf); diff --git a/ole/olecli.c b/ole/olecli.c index 2c0effeea19..5eecbde4bea 100644 --- a/ole/olecli.c +++ b/ole/olecli.c @@ -10,7 +10,7 @@ #include "winerror.h" #include "ole.h" #include "gdi.h" -#include "wine/obj_dataobject.h" +#include "objidl.h" #include "debug.h" diff --git a/ole/oledlg.c b/ole/oledlg.c index 526b1933078..99e346ed686 100644 --- a/ole/oledlg.c +++ b/ole/oledlg.c @@ -7,11 +7,9 @@ #include "wintypes.h" #include "winbase.h" #include "winerror.h" -#include "ole.h" #include "oledlg.h" -#include "wine/obj_base.h" #include "debug.h" - +#include "ole2.h" /*********************************************************************** * OleUIAddVerbMenu32A (OLEDLG.1) */ diff --git a/ole/oleobj.c b/ole/oleobj.c index 9744a4664e2..b7bc6b9aafd 100644 --- a/ole/oleobj.c +++ b/ole/oleobj.c @@ -6,44 +6,46 @@ #include -#include "oleobj.h" #include "winbase.h" #include "winerror.h" -#include "wine/obj_base.h" -#include "wine/obj_storage.h" -#include "wine/obj_moniker.h" -#include "wine/obj_dataobject.h" +#include "oleidl.h" #include "debug.h" /************************************************************************** * IOleAdviseHolder Implementation */ -static HRESULT WINAPI IOleAdviseHolder_QueryInterface(LPOLEADVISEHOLDER,REFIID,LPVOID*); -static ULONG WINAPI IOleAdviseHolder_AddRef(LPOLEADVISEHOLDER); -static ULONG WINAPI IOleAdviseHolder_Release(LPOLEADVISEHOLDER); -static HRESULT WINAPI IOleAdviseHolder_Advise(LPOLEADVISEHOLDER, IAdviseSink*, DWORD*); -static HRESULT WINAPI IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER, DWORD); -static HRESULT WINAPI IOleAdviseHolder_EnumAdvise (LPOLEADVISEHOLDER, IEnumSTATDATA **); -static HRESULT WINAPI IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER, IMoniker *); -static HRESULT WINAPI IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER this); -static HRESULT WINAPI IOleAdviseHolder_SendOnClose (LPOLEADVISEHOLDER this); +typedef struct +{ + ICOM_VTABLE(IOleAdviseHolder)* lpvtbl; + DWORD ref; +} IOleAdviseHolderImpl; + +static HRESULT WINAPI IOleAdviseHolder_fnQueryInterface(LPOLEADVISEHOLDER,REFIID,LPVOID*); +static ULONG WINAPI IOleAdviseHolder_fnAddRef(LPOLEADVISEHOLDER); +static ULONG WINAPI IOleAdviseHolder_fnRelease(LPOLEADVISEHOLDER); +static HRESULT WINAPI IOleAdviseHolder_fnAdvise(LPOLEADVISEHOLDER, IAdviseSink*, DWORD*); +static HRESULT WINAPI IOleAdviseHolder_fnUnadvise (LPOLEADVISEHOLDER, DWORD); +static HRESULT WINAPI IOleAdviseHolder_fnEnumAdvise (LPOLEADVISEHOLDER, IEnumSTATDATA **); +static HRESULT WINAPI IOleAdviseHolder_fnSendOnRename (LPOLEADVISEHOLDER, IMoniker *); +static HRESULT WINAPI IOleAdviseHolder_fnSendOnSave (LPOLEADVISEHOLDER); +static HRESULT WINAPI IOleAdviseHolder_fnSendOnClose (LPOLEADVISEHOLDER); /************************************************************************** * IOleAdviseHolder_VTable */ -static IOleAdviseHolder_VTable oahvt = +static struct ICOM_VTABLE(IOleAdviseHolder) oahvt = { - IOleAdviseHolder_QueryInterface, - IOleAdviseHolder_AddRef, - IOleAdviseHolder_Release, - IOleAdviseHolder_Advise, - IOleAdviseHolder_Unadvise, - IOleAdviseHolder_EnumAdvise, - IOleAdviseHolder_SendOnRename, - IOleAdviseHolder_SendOnSave, - IOleAdviseHolder_SendOnClose + IOleAdviseHolder_fnQueryInterface, + IOleAdviseHolder_fnAddRef, + IOleAdviseHolder_fnRelease, + IOleAdviseHolder_fnAdvise, + IOleAdviseHolder_fnUnadvise, + IOleAdviseHolder_fnEnumAdvise, + IOleAdviseHolder_fnSendOnRename, + IOleAdviseHolder_fnSendOnSave, + IOleAdviseHolder_fnSendOnClose }; /************************************************************************** @@ -52,39 +54,40 @@ static IOleAdviseHolder_VTable oahvt = LPOLEADVISEHOLDER IOleAdviseHolder_Constructor() { - LPOLEADVISEHOLDER lpoah; + IOleAdviseHolderImpl* lpoah; - lpoah= (LPOLEADVISEHOLDER)HeapAlloc(GetProcessHeap(),0,sizeof(IOleAdviseHolder)); + lpoah= (IOleAdviseHolderImpl*)HeapAlloc(GetProcessHeap(),0,sizeof(IOleAdviseHolderImpl)); lpoah->ref = 1; lpoah->lpvtbl = &oahvt; FIXME (ole, "(%p)->()\n", lpoah); - return lpoah; + return (LPOLEADVISEHOLDER)lpoah; } /************************************************************************** * IOleAdviseHolder_QueryInterface */ static HRESULT WINAPI -IOleAdviseHolder_QueryInterface (LPOLEADVISEHOLDER this, REFIID riid, LPVOID *ppvObj) +IOleAdviseHolder_fnQueryInterface (LPOLEADVISEHOLDER iface, REFIID riid, LPVOID *ppvObj) { + ICOM_THIS(IOleAdviseHolderImpl, iface); char xriid[50]; WINE_StringFromCLSID((LPCLSID)riid,xriid); - FIXME (ole, "(%p)->(\n\tIID:\t%s)\n", this, xriid); + FIXME (ole, "(%p)->(\n\tIID:\t%s)\n", This, xriid); *ppvObj = NULL; if(IsEqualIID(riid, &IID_IUnknown)) { /* IUnknown */ - *ppvObj = this; + *ppvObj = This; } else if(IsEqualIID(riid, &IID_IOleAdviseHolder)) { /* IOleAdviseHolder */ - *ppvObj = (IOleAdviseHolder*) this; + *ppvObj = (IOleAdviseHolder*) This; } if(*ppvObj) { - (*(LPOLEADVISEHOLDER*)ppvObj)->lpvtbl->fnAddRef(this); + (*(LPOLEADVISEHOLDER*)ppvObj)->lpvtbl->fnAddRef(iface); FIXME (ole, "-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj); return S_OK; } @@ -97,35 +100,38 @@ IOleAdviseHolder_QueryInterface (LPOLEADVISEHOLDER this, REFIID riid, LPVOID *pp * IOleAdviseHolder_AddRef */ static ULONG WINAPI -IOleAdviseHolder_AddRef (LPOLEADVISEHOLDER this) +IOleAdviseHolder_fnAddRef (LPOLEADVISEHOLDER iface) { - FIXME (ole, "(%p)->(count=%lu)\n", this, this->ref); - return ++(this->ref); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(count=%lu)\n", This, This->ref); + return ++(This->ref); } /****************************************************************************** * IOleAdviseHolder_Release */ static ULONG WINAPI -IOleAdviseHolder_Release (LPOLEADVISEHOLDER this) +IOleAdviseHolder_fnRelease (LPOLEADVISEHOLDER iface) { - FIXME (ole, "(%p)->(count=%lu)\n", this, this->ref); - if (!--(this->ref)) { - FIXME (ole, "-- destroying IOleAdviseHolder(%p)\n", this); - HeapFree(GetProcessHeap(),0,this); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(count=%lu)\n", This, This->ref); + if (!--(This->ref)) { + FIXME (ole, "-- destroying IOleAdviseHolder(%p)\n", This); + HeapFree(GetProcessHeap(),0,This); return 0; } - return this->ref; + return This->ref; } /****************************************************************************** * IOleAdviseHolder_Advise */ static HRESULT WINAPI -IOleAdviseHolder_Advise (LPOLEADVISEHOLDER this, +IOleAdviseHolder_fnAdvise (LPOLEADVISEHOLDER iface, IAdviseSink *pAdvise, DWORD *pdwConnection) { - FIXME (ole, "(%p)->(%p %p)\n", this, pAdvise, pdwConnection); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(%p %p)\n", This, pAdvise, pdwConnection); *pdwConnection = 0; @@ -136,9 +142,10 @@ IOleAdviseHolder_Advise (LPOLEADVISEHOLDER this, * IOleAdviseHolder_Unadvise */ static HRESULT WINAPI -IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER this, DWORD dwConnection) +IOleAdviseHolder_fnUnadvise (LPOLEADVISEHOLDER iface, DWORD dwConnection) { - FIXME (ole, "(%p)->(%lu)\n", this, dwConnection); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(%lu)\n", This, dwConnection); return S_OK; } @@ -147,9 +154,10 @@ IOleAdviseHolder_Unadvise (LPOLEADVISEHOLDER this, DWORD dwConnection) * IOleAdviseHolder_EnumAdvise */ static HRESULT WINAPI -IOleAdviseHolder_EnumAdvise (LPOLEADVISEHOLDER this, IEnumSTATDATA **ppenumAdvise) +IOleAdviseHolder_fnEnumAdvise (LPOLEADVISEHOLDER iface, IEnumSTATDATA **ppenumAdvise) { - FIXME (ole, "(%p)->(%p)\n", this, ppenumAdvise); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(%p)\n", This, ppenumAdvise); *ppenumAdvise = NULL; @@ -160,9 +168,10 @@ IOleAdviseHolder_EnumAdvise (LPOLEADVISEHOLDER this, IEnumSTATDATA **ppenumAdvis * IOleAdviseHolder_SendOnRename */ static HRESULT WINAPI -IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER this, IMoniker *pmk) +IOleAdviseHolder_fnSendOnRename (LPOLEADVISEHOLDER iface, IMoniker *pmk) { - FIXME (ole, "(%p)->(%p)\n", this, pmk); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)->(%p)\n", This, pmk); return S_OK; @@ -172,9 +181,10 @@ IOleAdviseHolder_SendOnRename (LPOLEADVISEHOLDER this, IMoniker *pmk) * IOleAdviseHolder_SendOnSave */ static HRESULT WINAPI -IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER this) +IOleAdviseHolder_fnSendOnSave (LPOLEADVISEHOLDER iface) { - FIXME (ole, "(%p)\n", this); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)\n", This); return S_OK; @@ -184,9 +194,10 @@ IOleAdviseHolder_SendOnSave (LPOLEADVISEHOLDER this) * IOleAdviseHolder_SendOnClose */ static HRESULT WINAPI -IOleAdviseHolder_SendOnClose (LPOLEADVISEHOLDER this) +IOleAdviseHolder_fnSendOnClose (LPOLEADVISEHOLDER iface) { - FIXME (ole, "(%p)\n", this); + ICOM_THIS(IOleAdviseHolderImpl, iface); + FIXME (ole, "(%p)\n", This); return S_OK;