Commit ea1640fc authored by Paul Quinn's avatar Paul Quinn Committed by Alexandre Julliard

Added a lot of new OLE interfaces.

parent 91d72b99
......@@ -7,7 +7,7 @@
*/
#include <string.h>
#include "wine/obj_dataobject.h"
#include "oleidl.h"
#include "pidl.h"
#include "winerror.h"
#include "shell32_main.h"
......
......@@ -11,7 +11,6 @@
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include "ole.h"
#include "ole2.h"
#include "debug.h"
#include "shlobj.h"
......
......@@ -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"
......
......@@ -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
......
......@@ -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 struct tagCANDIDATELIST
{
DWORD dwSize;
DWORD dwStyle;
DWORD dwCount;
DWORD dwSelection;
DWORD dwPageStart;
DWORD dwPageSize;
DWORD dwOffset[1];
} CANDIDATELIST, *LPCANDIDATELIST;
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
typedef void *LPSTYLEBUFA;
typedef void *LPSTYLEBUFW;
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)
typedef void *LPCOMPOSITIONFORM;
#ifdef __cplusplus
}
#endif
#endif /* __WINE_IMM_H */
#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 */
......@@ -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 */
......@@ -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 */
......
......@@ -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 */
/*
* 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 */
......@@ -5,8 +5,9 @@
extern "C" {
#endif
#include <ole.h>
/*#include <ole.h> */
#include "mapidefs.h"
#include "wine/obj_oleaut.h"
#include "oaidl.h"
BSTR16 WINAPI SysAllocString16(LPOLESTR16);
......
......@@ -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 */
......@@ -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 */
......@@ -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 */
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
#endif /* __WINE_WINE_OBJ_CONTROL_H */
/*****************************************************************************
* 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 */
......@@ -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;
};
......
......@@ -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
......
......@@ -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
......
......@@ -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,86 +97,33 @@ typedef struct tagSAFEARRAY
SAFEARRAYBOUND rgsabound[ 1 ]; /* One bound for each dimension */
} SAFEARRAY, *LPSAFEARRAY;
/*
* Data types for Variants.
*/
enum VARENUM {
VT_EMPTY = 0,
VT_NULL = 1,
VT_I2 = 2,
VT_I4 = 3,
VT_R4 = 4,
VT_R8 = 5,
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
VT_DISPATCH = 9,
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
VT_UNKNOWN = 13,
VT_DECIMAL = 14,
VT_I1 = 16,
VT_UI1 = 17,
VT_UI2 = 18,
VT_UI4 = 19,
VT_I8 = 20,
VT_UI8 = 21,
VT_INT = 22,
VT_UINT = 23,
VT_VOID = 24,
VT_HRESULT = 25,
VT_PTR = 26,
VT_SAFEARRAY = 27,
VT_CARRAY = 28,
VT_USERDEFINED = 29,
VT_LPSTR = 30,
VT_LPWSTR = 31,
VT_FILETIME = 64,
VT_BLOB = 65,
VT_STREAM = 66,
VT_STORAGE = 67,
VT_STREAMED_OBJECT = 68,
VT_STORED_OBJECT = 69,
VT_BLOB_OBJECT = 70,
VT_CF = 71,
VT_CLSID = 72,
VT_VECTOR = 0x1000,
VT_ARRAY = 0x2000,
VT_BYREF = 0x4000,
VT_RESERVED = 0x8000,
VT_ILLEGAL = 0xffff,
VT_ILLEGALMASKED = 0xfff,
VT_TYPEMASK = 0xfff
};
/* the largest valide type
*/
#define VT_MAXVALIDTYPE VT_CLSID
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.
* * E_OUTOFMEMORY : Memory could not be allocated for the conversion.
* 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;
......@@ -180,10 +132,9 @@ struct tagVARIANT {
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union _wine_tagVARIANT_UNION_NAME
union DUMMY_UNION_NAME
{
/* By value.
*/
/* By value. */
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
......@@ -199,15 +150,12 @@ struct tagVARIANT {
DATE date;
BSTR bstrVal;
CY cyVal;
/*
DECIMAL decVal;
/* DECIMAL decVal; */
IUnknown* punkVal;
IDispatch* pdispVal;
*/
SAFEARRAY* parray;
/* By reference
*/
/* By reference */
CHAR* pcVal;
USHORT* puiVal;
ULONG* pulVal;
......@@ -225,16 +173,26 @@ struct tagVARIANT {
VARIANT* pvarVal;
PVOID byref;
CY* pcyVal;
/*
DECIMAL* pdecVal;
/* DECIMAL* pdecVal; */
IUnknown** ppunkVal;
IDispatch** ppdispVal;
*/
SAFEARRAY** pparray;
} _wine_tagVARIANT_UNION_NAME;
} 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
{
......@@ -244,7 +202,8 @@ typedef struct tagDISPPARAMS
UINT cNamedArgs;
} DISPPARAMS;
typedef struct tagEXCEPINFO {
typedef struct tagEXCEPINFO
{
WORD wCode;
WORD wReserved;
BSTR bstrSource;
......@@ -256,6 +215,268 @@ typedef 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.
*/
enum VARENUM {
VT_EMPTY = 0,
VT_NULL = 1,
VT_I2 = 2,
VT_I4 = 3,
VT_R4 = 4,
VT_R8 = 5,
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
VT_DISPATCH = 9,
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
VT_UNKNOWN = 13,
VT_DECIMAL = 14,
VT_I1 = 16,
VT_UI1 = 17,
VT_UI2 = 18,
VT_UI4 = 19,
VT_I8 = 20,
VT_UI8 = 21,
VT_INT = 22,
VT_UINT = 23,
VT_VOID = 24,
VT_HRESULT = 25,
VT_PTR = 26,
VT_SAFEARRAY = 27,
VT_CARRAY = 28,
VT_USERDEFINED = 29,
VT_LPSTR = 30,
VT_LPWSTR = 31,
VT_FILETIME = 64,
VT_BLOB = 65,
VT_STREAM = 66,
VT_STORAGE = 67,
VT_STREAMED_OBJECT = 68,
VT_STORED_OBJECT = 69,
VT_BLOB_OBJECT = 70,
VT_CF = 71,
VT_CLSID = 72,
VT_VECTOR = 0x1000,
VT_ARRAY = 0x2000,
VT_BYREF = 0x4000,
VT_RESERVED = 0x8000,
VT_ILLEGAL = 0xffff,
VT_ILLEGALMASKED = 0xfff,
VT_TYPEMASK = 0xfff
};
/* the largest valide type
*/
#define VT_MAXVALIDTYPE VT_CLSID
/*
* 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.
*/
/*****************************************************************************
* 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 */
/*
* 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 */
/*
* 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 */
/*
* 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 */
/*
* 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 */
/*
* 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 */
......@@ -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 */
......
......@@ -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
......
......@@ -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);
......
......@@ -33,11 +33,12 @@
#include <string.h>
#include <time.h>
#include <assert.h>
#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"
......
......@@ -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"
......
......@@ -6,7 +6,7 @@
#include <string.h>
#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);
......
......@@ -10,7 +10,7 @@
#include "winerror.h"
#include "ole.h"
#include "gdi.h"
#include "wine/obj_dataobject.h"
#include "objidl.h"
#include "debug.h"
......
......@@ -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)
*/
......
......@@ -6,44 +6,46 @@
#include <string.h>
#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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment