diff --git a/reactos/include/psdk/mapiform.h b/reactos/include/psdk/mapiform.h new file mode 100644 index 00000000000..d9375ced42a --- /dev/null +++ b/reactos/include/psdk/mapiform.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 1998 Justin Bradford + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef MAPIFORM_H +#define MAPIFORM_H + +#include +#include +#include +#include + + +typedef ULONG HFRMREG; +#define HFRMREG_DEFAULT 0 +#define HFRMREG_LOCAL 1 +#define HFRMREG_PERSONAL 2 +#define HFRMREG_FOLDER 3 + +typedef const char **LPPCSTR; + + +#ifdef __cplusplus +extern "C" { +#endif + +HRESULT WINAPI MAPIOpenLocalFormContainer(LPVOID*); + +#ifdef __cplusplus +} +#endif + +#endif /* MAPIFORM_H */ diff --git a/reactos/include/psdk/npapi.h b/reactos/include/psdk/npapi.h index d0cdcc0b810..e5e8bfcfb0d 100644 --- a/reactos/include/psdk/npapi.h +++ b/reactos/include/psdk/npapi.h @@ -40,6 +40,9 @@ #define WNNC_DLG_PROPERTYDIALOG 0x00000020 #define WNNC_DLG_SEARCHDIALOG 0x00000040 #define WNNC_DLG_FORMATNETWORKNAME 0x00000080 +#define WNNC_DLG_PERMISSIONEDITOR 0x00000100 +#define WNNC_DLG_GETRESOURCEPARENT 0x00000200 +#define WNNC_DLG_GETRESOURCEINFORMATION 0x00000800 #define WNNC_ADMIN 0x00000009 #define WNNC_ADM_GETDIRECTORYTYPE 0x00000001 @@ -48,6 +51,7 @@ #define WNNC_ENUMERATION 0x0000000b #define WNNC_ENUM_GLOBAL 0x00000001 #define WNNC_ENUM_LOCAL 0x00000002 +#define WNNC_ENUM_CONTEXT 0x00000004 #define WNNC_START 0x0000000c #define WNNC_WAIT_FOR_START 0x00000001 @@ -64,6 +68,8 @@ typedef DWORD APIENTRY (*PF_NPOpenEnum)(DWORD dwScope, DWORD dwType, DWORD dwUsa typedef DWORD APIENTRY (*PF_NPEnumResource)(HANDLE hEnum, LPDWORD lpcCount, LPVOID lpBuffer, LPDWORD lpBufferSize); typedef DWORD APIENTRY (*PF_NPCloseEnum)(HANDLE hEnum); +typedef DWORD (APIENTRY *PF_NPGetResourceInformation)(LPNETRESOURCEW lpNetResource, + LPVOID lpBuffer, LPDWORD lpcbBuffer, LPWSTR* lplpSystem); /* connection-related */ typedef DWORD APIENTRY (*PF_NPAddConnection)(LPNETRESOURCEW lpNetResource, diff --git a/reactos/include/psdk/shlguid.h b/reactos/include/psdk/shlguid.h index 18e33801040..f70049c64eb 100644 --- a/reactos/include/psdk/shlguid.h +++ b/reactos/include/psdk/shlguid.h @@ -57,7 +57,10 @@ DEFINE_SHLGUID(IID_IQueryInfo, 0x00021500L, 0, 0); DEFINE_GUID(IID_IACList, 0x77A130B0L,0x94FD,0x11D0,0xA5,0x44,0x00,0xC0,0x4F,0xD7,0xD0,0x62); DEFINE_GUID(IID_IACList2, 0x470141A0L,0x5186,0x11D2,0xBB,0xB6,0x00,0x60,0x97,0x7B,0x46,0x4C); DEFINE_GUID(IID_IObjMgr, 0x00BB2761L,0x6A77,0x11D0,0xA5,0x35,0x00,0xC0,0x4F,0xD7,0xD0,0x62); +DEFINE_GUID(IID_IProgressDialog, 0xEBBC7C04,0x315E,0x11D2,0xB6,0x2F,0x00,0x60,0x97,0xDF,0x5B,0xD4); + DEFINE_GUID(CLSID_NewMenu, 0xd969A300L,0xe7FF,0x11D0,0xA9,0x3B,0x00,0xA0,0xC9,0x0F,0x27,0x19); + /* avoid duplicate definitions with shobjidl.h (FIXME) */ /* DEFINE_SHLGUID(IID_IShellPropSheetExt, 0x000214E9L, 0, 0); */ /* DEFINE_SHLGUID(IID_IExtractIconA, 0x000214EBL, 0, 0); */ @@ -122,6 +125,8 @@ DEFINE_GUID(CLSID_DragDropHelper, 0x4657278a, 0x411b, 0x11d2, 0x83, 0x9a, 0x00, DEFINE_GUID(CLSID_AutoComplete, 0x00bb2763, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); DEFINE_GUID(CLSID_ACLMulti, 0x00bb2765, 0x6a77, 0x11d0, 0xa5, 0x35, 0x00, 0xc0, 0x4f, 0xd7, 0xd0, 0x62); +DEFINE_GUID(CLSID_ProgressDialog, 0xf8383852, 0xfcd3, 0x11d1, 0xa6, 0xb9, 0x0, 0x60, 0x97, 0xdf, 0x5b, 0xd4); + #define PSGUID_SHELLDETAILS {0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0} DEFINE_GUID(FMTID_ShellDetails, 0x28636aa6, 0x953d, 0x11d2, 0xb5, 0xd6, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0xd0); #define PID_FINDDATA 0 diff --git a/reactos/include/psdk/shlobj.h b/reactos/include/psdk/shlobj.h index 14609ebf841..ed7173cb7ce 100644 --- a/reactos/include/psdk/shlobj.h +++ b/reactos/include/psdk/shlobj.h @@ -370,6 +370,58 @@ DECLARE_INTERFACE_(IACList,IUnknown) #define IACList_Expand(p,a) (p)->lpVtbl->Expand(p,a) #endif +/* IProgressDialog interface */ +#define PROGDLG_NORMAL 0x00000000 +#define PROGDLG_MODAL 0x00000001 +#define PROGDLG_AUTOTIME 0x00000002 +#define PROGDLG_NOTIME 0x00000004 +#define PROGDLG_NOMINIMIZE 0x00000008 +#define PROGDLG_NOPROGRESSBAR 0x00000010 +#define PROGDLG_MARQUEEPROGRESS 0x00000020 +#define PROGDLG_NOCANCEL 0x00000040 + +#define PDTIMER_RESET 0x00000001 +#define PDTIMER_PAUSE 0x00000002 +#define PDTIMER_RESUME 0x00000003 + +#define INTERFACE IProgressDialog +DECLARE_INTERFACE_(IProgressDialog,IUnknown) +{ + /*** IUnknown methods ***/ + STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; + STDMETHOD_(ULONG,AddRef) (THIS) PURE; + STDMETHOD_(ULONG,Release) (THIS) PURE; + /*** IProgressDialog methods ***/ + STDMETHOD(StartProgressDialog)(THIS_ HWND hwndParent, IUnknown *punkEnableModeless, DWORD dwFlags, LPCVOID reserved) PURE; + STDMETHOD(StopProgressDialog)(THIS) PURE; + STDMETHOD(SetTitle)(THIS_ LPCWSTR pwzTitle) PURE; + STDMETHOD(SetAnimation)(THIS_ HINSTANCE hInstance, UINT uiResourceId) PURE; + STDMETHOD_(BOOL,HasUserCancelled)(THIS) PURE; + STDMETHOD(SetProgress)(THIS_ DWORD dwCompleted, DWORD dwTotal) PURE; + STDMETHOD(SetProgress64)(THIS_ ULONGLONG ullCompleted, ULONGLONG ullTotal) PURE; + STDMETHOD(SetLine)(THIS_ DWORD dwLineNum, LPCWSTR pwzString, BOOL bPath, LPCVOID reserved) PURE; + STDMETHOD(SetCancelMsg)(THIS_ LPCWSTR pwzCancelMsg, LPCVOID reserved) PURE; + STDMETHOD(Timer)(THIS_ DWORD dwTimerAction, LPCVOID reserved) PURE; +}; +#undef INTERFACE + +#if !defined(__cplusplus) || defined(CINTERFACE) +/*** IUnknown methods ***/ +#define IProgressDialog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) +#define IProgressDialog_AddRef(p) (p)->lpVtbl->AddRef(p) +#define IProgressDialog_Release(p) (p)->lpVtbl->Release(p) +/*** IProgressDialog methods ***/ +#define IProgressDialog_StartProgressDialog(p,a,b,c,d) (p)->lpVtbl->StartProgressDialog(p,a,b,c,d) +#define IProgressDialog_StopProgressDialog(p) (p)->lpVtbl->StopProgressDialog(p) +#define IProgressDialog_SetTitle(p,a) (p)->lpVtbl->SetTitle(p,a) +#define IProgressDialog_SetAnimation(p,a,b) (p)->lpVtbl->SetAnimation(p,a,b) +#define IProgressDialog_HasUserCancelled(p) (p)->lpVtbl->HasUserCancelled(p) +#define IProgressDialog_SetProgress(p,a,b) (p)->lpVtbl->SetProgress(p,a,b) +#define IProgressDialog_SetProgress64(p,a,b) (p)->lpVtbl->SetProgress64(p,a,b) +#define IProgressDialog_SetLine(p,a,b,c,d) (p)->lpVtbl->SetLine(p,a,b,c,d) +#define IProgressDialog_SetCancelMsg(p,a,b) (p)->lpVtbl->SetCancelMsg(p,a,b) +#define IProgressDialog_Timer(p,a,b) (p)->lpVtbl->Timer(p,a,b) +#endif /* IDockingWindowFrame interface */ #define INTERFACE IDockingWindow diff --git a/reactos/include/psdk/urlmon.idl b/reactos/include/psdk/urlmon.idl index 5f640862083..3f2b49ef4b1 100644 --- a/reactos/include/psdk/urlmon.idl +++ b/reactos/include/psdk/urlmon.idl @@ -1278,6 +1278,12 @@ cpp_quote("HRESULT WINAPI RevokeBindStatusCallback(LPBC,IBindStatusCallback*);") cpp_quote("void WINAPI ReleaseBindInfo(BINDINFO*);") cpp_quote("HRESULT WINAPI UrlMkGetSessionOption(DWORD,LPVOID,DWORD,DWORD*,DWORD);") cpp_quote("HRESULT WINAPI UrlMkSetSessionOption(DWORD,LPVOID,DWORD,DWORD);") +cpp_quote("HRESULT WINAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);") +cpp_quote("HRESULT WINAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);") +cpp_quote("HRESULT WINAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);") +cpp_quote("HRESULT WINAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);") +cpp_quote("HRESULT WINAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);") +cpp_quote("HRESULT WINAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);") cpp_quote("#define OInetCombineUrl CoInternetCombineUrl") cpp_quote("#define OInetCompareUrl CoInternetCompareUrl") diff --git a/reactos/include/psdk/vfw.h b/reactos/include/psdk/vfw.h index 2558af9e982..abda57a25a4 100644 --- a/reactos/include/psdk/vfw.h +++ b/reactos/include/psdk/vfw.h @@ -849,7 +849,7 @@ ULONG WINAPI AVIStreamRelease(PAVISTREAM); HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*); HRESULT WINAPI AVIStreamInfoA(PAVISTREAM,AVISTREAMINFOA*,LONG); HRESULT WINAPI AVIStreamInfoW(PAVISTREAM,AVISTREAMINFOW*,LONG); -HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,DWORD); +HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,LONG); HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM,LONG,LPVOID,LONG*); HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM,LONG,LPVOID,LONG); HRESULT WINAPI AVIStreamRead(PAVISTREAM,LONG,LONG,LPVOID,LONG,LONG*,LONG*); diff --git a/reactos/include/psdk/wincrypt.h b/reactos/include/psdk/wincrypt.h index 17729d7e4d0..481deb9a916 100644 --- a/reactos/include/psdk/wincrypt.h +++ b/reactos/include/psdk/wincrypt.h @@ -1180,6 +1180,28 @@ typedef HANDLE HCRYPTASYNC, *PHCRYPTASYNC; typedef void (WINAPI *PFN_CRYPT_ASYNC_PARAM_FREE_FUNC)(LPSTR pszParamOid, LPVOID pvParam); +#define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION ((LPCSTR)1) +#define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL ((LPCSTR)2) + +typedef void (WINAPI *PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC)( + void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, + void *pvObject); + +typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION +{ + PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pfnCompletion; + void *pvCompletion; +} CRYPT_ASYNC_RETRIEVAL_COMPLETION, *PCRYPT_ASYNC_RETRIEVAL_COMPLETION; + +typedef BOOL (WINAPI *PFN_CANCEL_ASYNC_RETRIEVAL_FUNC)( + HCRYPTASYNC hAsyncRetrieve); + +typedef struct _CRYPT_BLOB_ARRAY +{ + DWORD cBlob; + PCRYPT_DATA_BLOB rgBlob; +} CRYPT_BLOB_ARRAY, *PCRYPT_BLOB_ARRAY; + typedef struct _CRYPT_CREDENTIALS { DWORD cbSize; LPCSTR pszCredentialsOid; @@ -1211,7 +1233,26 @@ typedef struct _CRYPT_RETRIEVE_AUX_INFO { DWORD dwMaxUrlRetrievalByteCount; } CRYPT_RETRIEVE_AUX_INFO, *PCRYPT_RETRIEVE_AUX_INFO; +typedef void (WINAPI *PFN_FREE_ENCODED_OBJECT_FUNC)(LPCSTR pszObjectOid, + PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext); + +#define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC \ + "SchemeDllRetrieveEncodedObject" +#define SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC \ + "SchemeDllRetrieveEncodedObjectW" +/* The signature of SchemeDllRetrieveEncodedObjectW is: +BOOL WINAPI SchemeDllRetrieveEncodedObjectW(LPCWSTR pwszUrl, + LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, + PCRYPT_BLOB_ARRAY pObject, PFN_FREE_ENCODED_OBJECT_FUNC *ppfnFreeObject, + void **ppvFreeContext, HCRYPTASYNC hAsyncRetrieve, + PCRYPT_CREDENTIALS pCredentials, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); + */ + #define CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC "ContextDllCreateObjectContext" +/* The signature of ContextDllCreateObjectContext is: +BOOL WINAPI ContextDllCreateObjectContext(LPCSTR pszObjectOid, + DWORD dwRetrievalFlags, PCRYPT_BLOB_ARRAY pObject, void **ppvContxt); + */ #define CONTEXT_OID_CERTIFICATE ((LPCSTR)1) #define CONTEXT_OID_CRL ((LPCSTR)2) @@ -1309,6 +1350,12 @@ typedef struct _CRYPT_RETRIEVE_AUX_INFO { #define ALG_SID_SAFERSK64 7 #define ALG_SID_SAFERSK128 8 #define ALG_SID_3DES_112 9 +#define ALG_SID_CYLINK_MEK 12 +#define ALG_SID_RC5 13 +#define ALG_SID_AES_128 14 +#define ALG_SID_AES_192 15 +#define ALG_SID_AES_256 16 +#define ALG_SID_AES 17 /* Diffie-Hellmans SIDs */ #define ALG_SID_DH_SANDF 1 #define ALG_SID_DH_EPHEM 2 @@ -1330,6 +1377,10 @@ typedef struct _CRYPT_RETRIEVE_AUX_INFO { #define ALG_SID_SSL3SHAMD5 8 #define ALG_SID_HMAC 9 #define ALG_SID_TLS1PRF 10 +#define ALG_SID_HASH_REPLACE_OWF 11 +#define ALG_SID_SHA_256 12 +#define ALG_SID_SHA_384 13 +#define ALG_SID_SHA_512 14 /* SCHANNEL SIDs */ #define ALG_SID_SSL3_MASTER 1 #define ALG_SID_SCHANNEL_MASTER_HASH 2 @@ -1350,6 +1401,10 @@ typedef struct _CRYPT_RETRIEVE_AUX_INFO { #define CALG_SSL3_SHAMD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) #define CALG_HMAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) #define CALG_TLS1PRF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF) +#define CALG_HASH_REPLACE_OWF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF) +#define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) +#define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) +#define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) #define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) #define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) #define CALG_NO_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) @@ -1360,8 +1415,13 @@ typedef struct _CRYPT_RETRIEVE_AUX_INFO { #define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2) #define CALG_3DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES) #define CALG_3DES_112 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112) +#define CALG_AES_128 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128) +#define CALG_AES_192 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192) +#define CALG_AES_256 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256) +#define CALG_AES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES) #define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4) #define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL) +#define CALG_RC5 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5) #define CALG_SSL3_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER) #define CALG_SCHANNEL_MASTER_HASH (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH) #define CALG_SCHANNEL_MAC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY) @@ -1523,6 +1583,20 @@ static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o',' #endif #define MS_SCARD_PROV WINELIB_NAME_AW(MS_SCARD_PROV_) +#define MS_ENH_RSA_AES_PROV_A "Microsoft Enhanced RSA and AES Cryptographic Provider" +#if defined(__GNUC__) +# define MS_ENH_RSA_AES_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ + 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\ + 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } +#elif defined(_MSC_VER) +# define MS_ENH_RSA_AES_PROV_W L"Microsoft Enhanced RSA and AES Cryptographic Provider" +#else +static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', + 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ', + 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; +#endif +#define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_) + /* Key Specs*/ #define AT_KEYEXCHANGE 1 #define AT_SIGNATURE 2 diff --git a/reactos/include/psdk/winerror.h b/reactos/include/psdk/winerror.h index 8a39c0224b3..c93e2f0eb0b 100644 --- a/reactos/include/psdk/winerror.h +++ b/reactos/include/psdk/winerror.h @@ -1872,6 +1872,7 @@ #define MAKE_SCODE(s,f,c) ((SCODE)(((unsigned long)(s)<<31)|((unsigned long)(f)<<16)|((unsigned long)(c))) ) #define FACILITY_NT_BIT 0x10000000 #define HRESULT_FROM_WIN32(x) (x?((HRESULT)(((x)&0x0000FFFF)|(FACILITY_WIN32<<16)|0x80000000)):0) +#define __HRESULT_FROM_WIN32(x) HRESULT_FROM_WIN32(x) #define HRESULT_FROM_NT(x) ((HRESULT)((x)|FACILITY_NT_BIT)) #define GetScode(hr) ((SCODE) (hr)) #define ResultFromScode(sc) ((HRESULT) (sc)) diff --git a/reactos/include/psdk/winnls.h b/reactos/include/psdk/winnls.h index 7396f33e33e..b9505e83ecb 100644 --- a/reactos/include/psdk/winnls.h +++ b/reactos/include/psdk/winnls.h @@ -584,6 +584,7 @@ int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int); int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int); LANGID WINAPI GetUserDefaultLangID(void); LCID WINAPI GetUserDefaultLCID(void); +LANGID WINAPI GetUserDefaultUILanguage(void); GEOID WINAPI GetUserGeoID(GEOCLASS); BOOL WINAPI IsDBCSLeadByte(BYTE); BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE); diff --git a/reactos/include/reactos/wine/irot.idl b/reactos/include/reactos/wine/irot.idl new file mode 100644 index 00000000000..7cea28fca73 --- /dev/null +++ b/reactos/include/reactos/wine/irot.idl @@ -0,0 +1,93 @@ +/* + * Copyright 2007 Robert Shearman for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "wtypes.idl"; + +cpp_quote("#define IROT_PROTSEQ {'n','c','a','l','r','p','c',0}"); +cpp_quote("#define IROT_ENDPOINT {'i','r','o','t',0}"); + +typedef struct tagMonikerComparisonData { + ULONG ulCntData; + [size_is(ulCntData)] BYTE abData[]; +} MonikerComparisonData; + +[ + uuid(7a98c254-6808-11cf-b73b-00aa00b677a8), + version(0.2) +] +interface Irot +{ + typedef struct tagInterfaceData + { + ULONG ulCntData; + [size_is(ulCntData)] BYTE abData[]; + } InterfaceData; + + typedef [unique] InterfaceData *PInterfaceData; + + typedef struct tagInterfaceList + { + ULONG size; + [size_is(size)] PInterfaceData interfaces[]; + } InterfaceList; + + typedef [unique] InterfaceList *PInterfaceList; + + typedef DWORD IrotCookie; + + typedef handle_t IrotHandle; + + HRESULT IrotRegister( + [in] IrotHandle h, + [in] const MonikerComparisonData *moniker_data, + [in] const InterfaceData *object, + [in] const InterfaceData *moniker, + [in] const FILETIME *time, + [in] DWORD grfFlags, + [out] IrotCookie *cookie); + + HRESULT IrotRevoke( + [in] IrotHandle h, + [in] IrotCookie cookie, + [out] PInterfaceData *object, + [out] PInterfaceData *moniker); + + HRESULT IrotIsRunning( + [in] IrotHandle h, + [in] const MonikerComparisonData *moniker_data); + + HRESULT IrotGetObject( + [in] IrotHandle h, + [in] const MonikerComparisonData *moniker_data, + [out] PInterfaceData *obj, + [out] IrotCookie *cookie); + + HRESULT IrotNoteChangeTime( + [in] IrotHandle h, + [in] IrotCookie cookie, + [in] const FILETIME *time); + + HRESULT IrotGetTimeOfLastChange( + [in] IrotHandle h, + [in] const MonikerComparisonData *moniker_data, + [out] FILETIME *time); + + HRESULT IrotEnumRunning( + [in] IrotHandle h, + [out] PInterfaceList *list); +} diff --git a/reactos/include/reactos/wine/wineheaders.rbuild b/reactos/include/reactos/wine/wineheaders.rbuild index 8b9a00e3855..9abd14615d9 100644 --- a/reactos/include/reactos/wine/wineheaders.rbuild +++ b/reactos/include/reactos/wine/wineheaders.rbuild @@ -1,5 +1,6 @@ + irot.idl itss.idl