Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1077 lines
42 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: mlang.idl
  7. //
  8. // Contents: IMultiLanguage interface definition
  9. //
  10. //
  11. //--------------------------------------------------------------------------
  12. cpp_quote("//=--------------------------------------------------------------------------=")
  13. cpp_quote("// MLang.h ")
  14. cpp_quote("//=--------------------------------------------------------------------------=")
  15. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  16. cpp_quote("// ")
  17. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ")
  18. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ")
  19. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A ")
  20. cpp_quote("// PARTICULAR PURPOSE. ")
  21. cpp_quote("//=--------------------------------------------------------------------------=")
  22. cpp_quote(" ")
  23. cpp_quote("#pragma comment(lib,\"uuid.lib\") ")
  24. cpp_quote(" ")
  25. cpp_quote("//----------------------------------------------------------------------------")
  26. cpp_quote("// IMultiLanguage Interfaces. ")
  27. cpp_quote(" ")
  28. #ifndef DO_NO_IMPORTS
  29. import "unknwn.idl";
  30. #endif
  31. [
  32. uuid(275c23e0-3747-11d0-9fea-00aa003f8646),
  33. helpstring("MultiLanguage Object Model"),
  34. lcid(0x0000),
  35. version(0.2)
  36. ]
  37. library MultiLanguage
  38. {
  39. importlib("stdole2.tlb");
  40. typedef WORD LANGID;
  41. typedef enum tagMLSTR_FLAGS
  42. {
  43. #ifdef NEWMLSTR
  44. MLSTR_READ = 0x0001,
  45. MLSTR_WRITE = 0x000A,
  46. MLSTR_SHARE_DENYREAD = 0x0004,
  47. MLSTR_SHARE_DENYWRITE = 0x0008,
  48. MLSTR_MOVE = 0x0010,
  49. MLSTR_NOWAIT = 0x0020
  50. #else
  51. MLSTR_READ = 1,
  52. MLSTR_WRITE = 2
  53. #endif
  54. } MLSTR_FLAGS;
  55. [
  56. uuid(D24ACD21-BA72-11D0-B188-00AA0038C969),
  57. helpstring("IMLangStringBufW Interface"),
  58. pointer_default(unique)
  59. ]
  60. interface IMLangStringBufW : IUnknown
  61. {
  62. [helpstring("method GetStatus")] HRESULT GetStatus([out] long* plFlags, [out] long* pcchBuf);
  63. [helpstring("method LockBuf")] HRESULT LockBuf([in] long cchOffset, [in] long cchMaxLock, [out, size_is(,*pcchBuf)] WCHAR** ppszBuf, [out] long* pcchBuf);
  64. [helpstring("method UnlockBuf")] HRESULT UnlockBuf([in, size_is(cchWrite - cchOffset)] const WCHAR* pszBuf, [in] long cchOffset, [in] long cchWrite);
  65. [helpstring("method Insert")] HRESULT Insert([in] long cchOffset, [in] long cchMaxInsert, [out] long* pcchActual);
  66. [helpstring("method Delete")] HRESULT Delete([in] long cchOffset, [in] long cchDelete);
  67. };
  68. [
  69. uuid(D24ACD23-BA72-11D0-B188-00AA0038C969),
  70. helpstring("IMLangStringBufA Interface"),
  71. pointer_default(unique)
  72. ]
  73. interface IMLangStringBufA : IUnknown
  74. {
  75. [helpstring("method GetStatus")] HRESULT GetStatus([out] long* plFlags, [out] long* pcchBuf);
  76. [helpstring("method LockBuf")] HRESULT LockBuf([in] long cchOffset, [in] long cchMaxLock, [out, size_is(,*pcchBuf)] CHAR** ppszBuf, [out] long* pcchBuf);
  77. [helpstring("method UnlockBuf")] HRESULT UnlockBuf([in, size_is(cchWrite - cchOffset)] const CHAR* pszBuf, [in] long cchOffset, [in] long cchWrite);
  78. [helpstring("method Insert")] HRESULT Insert([in] long cchOffset, [in] long cchMaxInsert, [out] long* pcchActual);
  79. [helpstring("method Delete")] HRESULT Delete([in] long cchOffset, [in] long cchDelete);
  80. };
  81. #ifdef NEWMLSTR
  82. [
  83. uuid(9c0782c0-5087-11d1-998c-00aa00601ea8),
  84. helpstring("IMLStrAttr Interface"),
  85. pointer_default(unique)
  86. ]
  87. interface IMLStrAttr : IUnknown
  88. {
  89. [helpstring("method SetClient")] HRESULT SetClient([in] IUnknown* pUnk);
  90. [helpstring("method GetClient")] HRESULT GetClient([out] IUnknown** ppUnk);
  91. [helpstring("method QueryAttr")] HRESULT QueryAttr([in] REFIID riid, [in] LPARAM lParam, [out] IUnknown** ppUnk, [out] long* lConf);
  92. [helpstring("method GetAttrInterface")] HRESULT GetAttrInterface([out] IID* pIID, [out] LPARAM* plParam);
  93. [helpstring("method SetMLStr")] HRESULT SetMLStr([in] long lDestPos, [in] long lDestLen, [in] IUnknown* pSrcMLStr, [in] long lSrcPos, [in] long lSrcLen);
  94. };
  95. [
  96. uuid(39a623c0-5109-11d1-998c-00aa00601ea8),
  97. helpstring("IMLStrAttrWStr Interface"),
  98. pointer_default(unique)
  99. ]
  100. interface IMLStrAttrWStr : IMLStrAttr
  101. {
  102. [helpstring("method SetWStr")] HRESULT SetWStr([in] long lDestPos, [in] long lDestLen, [in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  103. [helpstring("method SetStrBufW")] HRESULT SetStrBufW([in] long lDestPos, [in] long lDestLen, [in] IMLangStringBufW* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  104. [helpstring("method GetWStr")] HRESULT GetWStr([in] long lSrcPos, [in] long lSrcLen, [out, size_is(cchDest)] WCHAR* pszDest, [in] long cchDest, [out] long* pcchActual, [out] long* plActualLen);
  105. [helpstring("method GetStrBufW")] HRESULT GetStrBufW([in] long lSrcPos, [in] long lSrcMaxLen, [out] IMLangStringBufW** ppDestBuf, [out] long* plDestLen);
  106. [helpstring("method LockWStr")] HRESULT LockWStr([in] long lSrcPos, [in] long lSrcLen, [in] long lFlags, [in] long cchRequest, [out, size_is(,*pcchDest)] WCHAR** ppszDest, [out] long* pcchDest, [out] long* plDestLen);
  107. [helpstring("method UnlockWStr")] HRESULT UnlockWStr([in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  108. };
  109. [
  110. uuid(39a623c1-5109-11d1-998c-00aa00601ea8),
  111. helpstring("IMLStrAttrAStr Interface"),
  112. pointer_default(unique)
  113. ]
  114. interface IMLStrAttrAStr : IMLStrAttr
  115. {
  116. [helpstring("method SetAStr")] HRESULT SetAStr([in] long lDestPos, [in] long lDestLen, [in] UINT uCodePage, [in, size_is(cchSrc)] const CHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  117. [helpstring("method SetStrBufA")] HRESULT SetStrBufA([in] long lDestPos, [in] long lDestLen, [in] UINT uCodePage, [in] IMLangStringBufA* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  118. [helpstring("method GetAStr")] HRESULT GetAStr([in] long lSrcPos, [in] long lSrcLen, [in] UINT uCodePageIn, [out] UINT* puCodePageOut, [out, size_is(cchDest)] CHAR* pszDest, [in] long cchDest, [out] long* pcchActual, [out] long* plActualLen);
  119. [helpstring("method GetStrBufA")] HRESULT GetStrBufA([in] long lSrcPos, [in] long lSrcMaxLen, [out] UINT* puDestCodePage, [out] IMLangStringBufA** ppDestBuf, [out] long* plDestLen);
  120. [helpstring("method LockAStr")] HRESULT LockAStr([in] long lSrcPos, [in] long lSrcLen, [in] long lFlags, [in] UINT uCodePageIn, [in] long cchRequest, [out] UINT* puCodePageOut, [out, size_is(,*pcchDest)] CHAR** ppszDest, [out] long* pcchDest, [out] long* plDestLen);
  121. [helpstring("method UnlockAStr")] HRESULT UnlockAStr([in, size_is(cchSrc)] const CHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  122. };
  123. [
  124. uuid(39a623c2-5109-11d1-998c-00aa00601ea8),
  125. helpstring("IMLStrAttrLong Interface"),
  126. pointer_default(unique)
  127. ]
  128. interface IMLStrAttrLong : IMLStrAttr
  129. {
  130. [helpstring("method SetLong")] HRESULT SetLong([in] long lDestPos, [in] long lDestLen, [in] long lValue);
  131. [helpstring("method GetLong")] HRESULT GetLong([in] long lSrcPos, [in] long lSrcLen, [out] long* plValue, [out] long* plActualPos, [out] long* plActualLen);
  132. };
  133. [
  134. uuid(39a623c3-5109-11d1-998c-00aa00601ea8),
  135. helpstring("IMLStrAttrLocale Interface"),
  136. pointer_default(unique)
  137. ]
  138. interface IMLStrAttrLocale : IMLStrAttrLong
  139. {
  140. };
  141. [
  142. uuid(8d0dcf40-520d-11d1-998c-00aa00601ea8),
  143. helpstring("IMLStrAttrNotifySink Interface"),
  144. pointer_default(unique)
  145. ]
  146. interface IMLStrAttrNotifySink : IUnknown
  147. {
  148. [helpstring("method OnRequestEdit")] HRESULT OnRequestEdit([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  149. [helpstring("method OnCanceledEdit")] HRESULT OnCanceledEdit([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  150. [helpstring("method OnChanged")] HRESULT OnChanged([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  151. };
  152. [
  153. uuid(c454b4e0-510f-11d1-998c-00aa00601ea8),
  154. helpstring("CMLStrAttrWStr Class")
  155. ]
  156. coclass CMLStrAttrWStr
  157. {
  158. [default] interface IMLStrAttrWStr;
  159. [source] interface IMLStrAttrNotifySink;
  160. };
  161. [
  162. uuid(c454b4e1-510f-11d1-998c-00aa00601ea8),
  163. helpstring("CMLStrAttrAStr Class")
  164. ]
  165. coclass CMLStrAttrAStr
  166. {
  167. [default] interface IMLStrAttrAStr;
  168. [source] interface IMLStrAttrNotifySink;
  169. };
  170. [
  171. uuid(c454b4e2-510f-11d1-998c-00aa00601ea8),
  172. helpstring("CMLStrAttrLocale Class")
  173. ]
  174. coclass CMLStrAttrLocale
  175. {
  176. [default] interface IMLStrAttrLocale;
  177. [source] interface IMLStrAttrNotifySink;
  178. };
  179. #endif // NEWMLSTR
  180. [
  181. uuid(C04D65CE-B70D-11D0-B188-00AA0038C969),
  182. helpstring("IMLangString Interface"),
  183. pointer_default(unique)
  184. ]
  185. interface IMLangString : IUnknown
  186. {
  187. #ifdef NEWMLSTR
  188. [helpstring("method LockMLStr")] HRESULT LockMLStr([in] long lPos, [in] long lLen, [in] DWORD dwFlags, [out] DWORD* pdwCookie, [out] long* plActualPos, [out] long* plActualLen);
  189. [helpstring("method UnlockMLStr")] HRESULT UnlockMLStr([in] DWORD dwCookie);
  190. #else
  191. [helpstring("method Sync")] HRESULT Sync([in] BOOL fNoAccess);
  192. #endif
  193. [helpstring("method GetLength")] HRESULT GetLength([out, retval] long* plLen);
  194. [helpstring("method SetMLStr")] HRESULT SetMLStr([in] long lDestPos, [in] long lDestLen, [in] IUnknown* pSrcMLStr, [in] long lSrcPos, [in] long lSrcLen);
  195. #ifdef NEWMLSTR
  196. [helpstring("method RegisterAttr")] HRESULT RegisterAttr([in] IUnknown* pUnk, [out] DWORD* pdwCookie);
  197. [helpstring("method UnregisterAttr")] HRESULT UnregisterAttr([in] DWORD dwCookie);
  198. [helpstring("method EnumAttr")] HRESULT EnumAttr([out] IEnumUnknown** ppEnumUnk);
  199. [helpstring("method FindAttr")] HRESULT FindAttr([in] REFIID riid, [in] LPARAM lParam, [out] IUnknown** ppUnk);
  200. #else
  201. [helpstring("method GetMLStr")] HRESULT GetMLStr([in] long lSrcPos, [in] long lSrcLen, [in] IUnknown* pUnkOuter, [in] DWORD dwClsContext, [in] const IID* piid, [out] IUnknown** ppDestMLStr, [out] long* plDestPos, [out] long* plDestLen);
  202. #endif
  203. };
  204. [
  205. uuid(C04D65D0-B70D-11D0-B188-00AA0038C969),
  206. helpstring("IMLangStringWStr Interface"),
  207. pointer_default(unique)
  208. ]
  209. interface IMLangStringWStr : IMLangString
  210. {
  211. [helpstring("method SetWStr")] HRESULT SetWStr([in] long lDestPos, [in] long lDestLen, [in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  212. [helpstring("method SetStrBufW")] HRESULT SetStrBufW([in] long lDestPos, [in] long lDestLen, [in] IMLangStringBufW* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  213. [helpstring("method GetWStr")] HRESULT GetWStr([in] long lSrcPos, [in] long lSrcLen, [out, size_is(cchDest)] WCHAR* pszDest, [in] long cchDest, [out] long* pcchActual, [out] long* plActualLen);
  214. [helpstring("method GetStrBufW")] HRESULT GetStrBufW([in] long lSrcPos, [in] long lSrcMaxLen, [out] IMLangStringBufW** ppDestBuf, [out] long* plDestLen);
  215. [helpstring("method LockWStr")] HRESULT LockWStr([in] long lSrcPos, [in] long lSrcLen, [in] long lFlags, [in] long cchRequest, [out, size_is(,*pcchDest)] WCHAR** ppszDest, [out] long* pcchDest, [out] long* plDestLen);
  216. [helpstring("method UnlockWStr")] HRESULT UnlockWStr([in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  217. [helpstring("method SetLocale")] HRESULT SetLocale([in] long lDestPos, [in] long lDestLen, [in] LCID locale);
  218. [helpstring("method GetLocale")] HRESULT GetLocale([in] long lSrcPos, [in] long lSrcMaxLen, [out] LCID* plocale, [out] long* plLocalePos, [out] long* plLocaleLen);
  219. };
  220. [
  221. uuid(C04D65D2-B70D-11D0-B188-00AA0038C969),
  222. helpstring("IMLangStringAStr Interface"),
  223. pointer_default(unique)
  224. ]
  225. interface IMLangStringAStr : IMLangString
  226. {
  227. [helpstring("method SetAStr")] HRESULT SetAStr([in] long lDestPos, [in] long lDestLen, [in] UINT uCodePage, [in, size_is(cchSrc)] const CHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  228. [helpstring("method SetStrBufA")] HRESULT SetStrBufA([in] long lDestPos, [in] long lDestLen, [in] UINT uCodePage, [in] IMLangStringBufA* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  229. [helpstring("method GetAStr")] HRESULT GetAStr([in] long lSrcPos, [in] long lSrcLen, [in] UINT uCodePageIn, [out] UINT* puCodePageOut, [out, size_is(cchDest)] CHAR* pszDest, [in] long cchDest, [out] long* pcchActual, [out] long* plActualLen);
  230. [helpstring("method GetStrBufA")] HRESULT GetStrBufA([in] long lSrcPos, [in] long lSrcMaxLen, [out] UINT* puDestCodePage, [out] IMLangStringBufA** ppDestBuf, [out] long* plDestLen);
  231. [helpstring("method LockAStr")] HRESULT LockAStr([in] long lSrcPos, [in] long lSrcLen, [in] long lFlags, [in] UINT uCodePageIn, [in] long cchRequest, [out] UINT* puCodePageOut, [out, size_is(,*pcchDest)] CHAR** ppszDest, [out] long* pcchDest, [out] long* plDestLen);
  232. [helpstring("method UnlockAStr")] HRESULT UnlockAStr([in, size_is(cchSrc)] const CHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  233. [helpstring("method SetLocale")] HRESULT SetLocale([in] long lDestPos, [in] long lDestLen, [in] LCID locale);
  234. [helpstring("method GetLocale")] HRESULT GetLocale([in] long lSrcPos, [in] long lSrcMaxLen, [out] LCID* plocale, [out] long* plLocalePos, [out] long* plLocaleLen);
  235. };
  236. #ifdef NEWMLSTR
  237. [
  238. uuid(4d94b420-5382-11d1-998c-00aa00601ea8),
  239. helpstring("IMLangStringNotifySink Interface"),
  240. pointer_default(unique)
  241. ]
  242. interface IMLangStringNotifySink : IUnknown
  243. {
  244. [helpstring("method OnRegisterAttr")] HRESULT OnRegisterAttr([in] IUnknown* pUnk);
  245. [helpstring("method OnUnregisterAttr")] HRESULT OnUnregisterAttr([in] IUnknown* pUnk);
  246. [helpstring("method OnRequestEdit")] HRESULT OnRequestEdit([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  247. [helpstring("method OnCanceledEdit")] HRESULT OnCanceledEdit([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  248. [helpstring("method OnChanged")] HRESULT OnChanged([in] long lDestPos, [in] long lDestLen, [in] long lNewLen, [in] REFIID riid, [in] LPARAM lParam, [in] IUnknown* pUnk);
  249. };
  250. #endif
  251. [
  252. uuid(C04D65CF-B70D-11D0-B188-00AA0038C969),
  253. helpstring("MLangString Class")
  254. ]
  255. coclass CMLangString
  256. {
  257. [default] interface IMLangString;
  258. interface IMLangStringWStr;
  259. interface IMLangStringAStr;
  260. #ifdef NEWMLSTR
  261. [source] interface IMLangStringNotifySink;
  262. #endif
  263. };
  264. [
  265. uuid(F5BE2EE1-BFD7-11D0-B188-00AA0038C969),
  266. helpstring("IMLangLineBreakConsole Interface"),
  267. pointer_default(unique)
  268. ]
  269. interface IMLangLineBreakConsole : IUnknown
  270. {
  271. [helpstring("method BreakLineML")] HRESULT BreakLineML([in] IMLangString* pSrcMLStr, [in] long lSrcPos, [in] long lSrcLen, [in] long cMinColumns, [in] long cMaxColumns, [out] long* plLineLen, [out] long* plSkipLen);
  272. [helpstring("method BreakLineW")] HRESULT BreakLineW([in] LCID locale, [in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [in] long cMaxColumns, [out] long* pcchLine, [out] long* pcchSkip);
  273. [helpstring("method BreakLineA")] HRESULT BreakLineA([in] LCID locale, [in] UINT uCodePage, [in, size_is(cchSrc)] const CHAR* pszSrc, [in] long cchSrc, [in] long cMaxColumns, [out] long* pcchLine, [out] long* pcchSkip);
  274. };
  275. [
  276. object,
  277. uuid(275c23e3-3747-11d0-9fea-00aa003f8646),
  278. pointer_default(unique)
  279. ]
  280. interface IEnumCodePage : IUnknown
  281. {
  282. const USHORT MAX_MIMECP_NAME = 64;
  283. const USHORT MAX_MIMECSET_NAME = 50;
  284. const USHORT MAX_MIMEFACE_NAME = 32;
  285. typedef enum tagMIMECONTF
  286. {
  287. MIMECONTF_MAILNEWS = 0x00000001,
  288. MIMECONTF_BROWSER = 0x00000002,
  289. MIMECONTF_MINIMAL = 0x00000004,
  290. MIMECONTF_IMPORT = 0x00000008,
  291. MIMECONTF_SAVABLE_MAILNEWS = 0x00000100,
  292. MIMECONTF_SAVABLE_BROWSER = 0x00000200,
  293. MIMECONTF_EXPORT = 0x00000400,
  294. MIMECONTF_PRIVCONVERTER = 0x00010000,
  295. MIMECONTF_VALID = 0x00020000,
  296. MIMECONTF_VALID_NLS = 0x00040000,
  297. MIMECONTF_MIME_IE4 = 0x10000000,
  298. MIMECONTF_MIME_LATEST = 0x20000000,
  299. MIMECONTF_MIME_REGISTRY = 0x40000000
  300. } MIMECONTF;
  301. typedef struct tagMIMECPINFO
  302. {
  303. DWORD dwFlags;
  304. UINT uiCodePage;
  305. UINT uiFamilyCodePage;
  306. WCHAR wszDescription[MAX_MIMECP_NAME];
  307. WCHAR wszWebCharset[MAX_MIMECSET_NAME];
  308. WCHAR wszHeaderCharset[MAX_MIMECSET_NAME];
  309. WCHAR wszBodyCharset[MAX_MIMECSET_NAME];
  310. WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
  311. WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
  312. BYTE bGDICharset;
  313. } MIMECPINFO, *PMIMECPINFO;
  314. typedef struct tagMIMECSETINFO
  315. {
  316. UINT uiCodePage;
  317. UINT uiInternetEncoding;
  318. WCHAR wszCharset[MAX_MIMECSET_NAME];
  319. } MIMECSETINFO, *PMIMECSETINFO;
  320. typedef [unique] IEnumCodePage *LPENUMCODEPAGE;
  321. HRESULT Clone
  322. (
  323. [out] IEnumCodePage **ppEnum
  324. );
  325. HRESULT Next
  326. (
  327. [in] ULONG celt,
  328. [out] PMIMECPINFO rgelt,
  329. [out] ULONG *pceltFetched
  330. );
  331. HRESULT Reset();
  332. HRESULT Skip
  333. (
  334. [in] ULONG celt
  335. );
  336. };
  337. [
  338. object,
  339. uuid(3dc39d1d-c030-11d0-b81b-00c04fc9b31f),
  340. pointer_default(unique)
  341. ]
  342. interface IEnumRfc1766 : IUnknown
  343. {
  344. const USHORT MAX_RFC1766_NAME = 6;
  345. const USHORT MAX_LOCALE_NAME = 32;
  346. typedef struct tagRFC1766INFO
  347. {
  348. LCID lcid;
  349. WCHAR wszRfc1766[MAX_RFC1766_NAME];
  350. WCHAR wszLocaleName[MAX_LOCALE_NAME];
  351. } RFC1766INFO, *PRFC1766INFO;
  352. typedef [unique] IEnumRfc1766 *LPENUMRFC1766;
  353. HRESULT Clone
  354. (
  355. [out] IEnumRfc1766 **ppEnum
  356. );
  357. HRESULT Next
  358. (
  359. [in] ULONG celt,
  360. [out] PRFC1766INFO rgelt,
  361. [out] ULONG *pceltFetched
  362. );
  363. HRESULT Reset();
  364. HRESULT Skip
  365. (
  366. [in] ULONG celt
  367. );
  368. };
  369. [
  370. object,
  371. uuid(AE5F1430-388B-11d2-8380-00C04F8F5DA1),
  372. pointer_default(unique)
  373. ]
  374. interface IEnumScript : IUnknown
  375. {
  376. const USHORT MAX_SCRIPT_NAME = 48;
  377. typedef BYTE SCRIPT_ID;
  378. typedef __int64 SCRIPT_IDS;
  379. typedef enum tagSCRIPTCONTF
  380. {
  381. sidDefault, // 0
  382. sidMerge, // 1
  383. sidAsciiSym, // 2
  384. sidAsciiLatin, // 3
  385. sidLatin, // 4
  386. sidGreek, // 5
  387. sidCyrillic, // 6
  388. sidArmenian, // 7
  389. sidHebrew, // 8
  390. sidArabic, // 9
  391. sidDevanagari, // 10
  392. sidBengali, // 11
  393. sidGurmukhi, // 12
  394. sidGujarati, // 13
  395. sidOriya, // 14
  396. sidTamil, // 15
  397. sidTelugu, // 16
  398. sidKannada, // 17
  399. sidMalayalam, // 18
  400. sidThai, // 19
  401. sidLao, // 20
  402. sidTibetan, // 21
  403. sidGeorgian, // 22
  404. sidHangul, // 23
  405. sidKana, // 24
  406. sidBopomofo, // 25
  407. sidHan, // 26
  408. sidEthiopic, // 27
  409. sidCanSyllabic, // 28
  410. sidCherokee, // 29
  411. sidYi, // 30
  412. sidBraille, // 31
  413. sidRunic, // 32
  414. sidOgham, // 33
  415. sidSinhala, // 34
  416. sidSyriac, // 35
  417. sidBurmese, // 36
  418. sidKhmer, // 37
  419. sidThaana, // 38
  420. sidMongolian, // 39
  421. sidUserDefined, // 40
  422. sidLim, // 41
  423. sidFEFirst = sidHangul,
  424. sidFELast = sidHan
  425. } SCRIPTCONTF;
  426. typedef struct tagSCRIPTINFO
  427. {
  428. SCRIPT_ID ScriptId;
  429. UINT uiCodePage;
  430. WCHAR wszDescription[MAX_SCRIPT_NAME];
  431. WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
  432. WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
  433. } SCRIPTINFO, *PSCRIPTINFO;
  434. typedef [unique] IEnumScript *LPENUMScript;
  435. HRESULT Clone
  436. (
  437. [out] IEnumScript **ppEnum
  438. );
  439. HRESULT Next
  440. (
  441. [in] ULONG celt,
  442. [out] PSCRIPTINFO rgelt,
  443. [out] ULONG *pceltFetched
  444. );
  445. HRESULT Reset();
  446. HRESULT Skip
  447. (
  448. [in] ULONG celt
  449. );
  450. };
  451. [
  452. object,
  453. uuid(d66d6f98-cdaa-11d0-b822-00c04fc9b31f),
  454. pointer_default(unique)
  455. ]
  456. interface IMLangConvertCharset : IUnknown
  457. {
  458. typedef enum tagMLCONVCHARF
  459. {
  460. MLCONVCHARF_AUTODETECT = 1,
  461. MLCONVCHARF_ENTITIZE = 2,
  462. MLCONVCHARF_NCR_ENTITIZE = 2,
  463. MLCONVCHARF_NAME_ENTITIZE = 4,
  464. MLCONVCHARF_USEDEFCHAR = 8,
  465. MLCONVCHARF_NOBESTFITCHARS = 16,
  466. MLCONVCHARF_DETECTJPN = 32
  467. } MLCONVCHAR;
  468. typedef enum tagMLCPF
  469. {
  470. MLDETECTF_MAILNEWS = 0x0001, // Outgoing encoding for mail client
  471. MLDETECTF_BROWSER = 0x0002, // Outgoing encoding for browser client
  472. MLDETECTF_VALID = 0x0004, // Detection result must be valid for conversion and text rendering
  473. MLDETECTF_VALID_NLS = 0x0008, // Detection result must be valid for conversion
  474. MLDETECTF_PRESERVE_ORDER = 0x0010, // Perserve perferred code page order
  475. MLDETECTF_PREFERRED_ONLY = 0x0020, // Only return one of preferred code pages as detection result
  476. MLDETECTF_FILTER_SPECIALCHAR= 0x0040, // Filter out graphical symbols and punctuations
  477. } MLCP;
  478. typedef [unique] IMLangConvertCharset *LPMLANGCONVERTCHARSET;
  479. HRESULT Initialize
  480. (
  481. [in] UINT uiSrcCodePage,
  482. [in] UINT uiDstCodePage,
  483. [in] DWORD dwProperty
  484. );
  485. HRESULT GetSourceCodePage
  486. (
  487. [out] UINT *puiSrcCodePage
  488. );
  489. HRESULT GetDestinationCodePage
  490. (
  491. [out] UINT *puiDstCodePage
  492. );
  493. HRESULT GetProperty
  494. (
  495. [out] DWORD *pdwProperty
  496. );
  497. HRESULT DoConversion
  498. (
  499. [in] BYTE *pSrcStr,
  500. [in,out] UINT *pcSrcSize,
  501. [in] BYTE *pDstStr,
  502. [in,out] UINT *pcDstSize
  503. );
  504. HRESULT DoConversionToUnicode
  505. (
  506. [in] CHAR *pSrcStr,
  507. [in,out] UINT *pcSrcSize,
  508. [in] WCHAR *pDstStr,
  509. [in,out] UINT *pcDstSize
  510. );
  511. HRESULT DoConversionFromUnicode
  512. (
  513. [in] WCHAR *pSrcStr,
  514. [in,out] UINT *pcSrcSize,
  515. [in] CHAR *pDstStr,
  516. [in,out] UINT *pcDstSize
  517. );
  518. };
  519. [
  520. uuid(d66d6f99-cdaa-11d0-b822-00c04fc9b31f),
  521. ]
  522. coclass CMLangConvertCharset
  523. {
  524. [default] interface IMLangConvertCharset;
  525. };
  526. [
  527. object,
  528. uuid(275c23e1-3747-11d0-9fea-00aa003f8646),
  529. pointer_default(unique)
  530. ]
  531. interface IMultiLanguage : IUnknown
  532. {
  533. typedef [unique] IMultiLanguage *LPMULTILANGUAGE;
  534. HRESULT GetNumberOfCodePageInfo
  535. (
  536. [out] UINT *pcCodePage
  537. );
  538. HRESULT GetCodePageInfo
  539. (
  540. [in] UINT uiCodePage,
  541. [out] PMIMECPINFO pCodePageInfo
  542. );
  543. HRESULT GetFamilyCodePage
  544. (
  545. [in] UINT uiCodePage,
  546. [out] UINT *puiFamilyCodePage
  547. );
  548. HRESULT EnumCodePages
  549. (
  550. [in] DWORD grfFlags,
  551. [out] IEnumCodePage **ppEnumCodePage
  552. );
  553. HRESULT GetCharsetInfo
  554. (
  555. [in] BSTR Charset,
  556. [out] PMIMECSETINFO pCharsetInfo
  557. );
  558. HRESULT IsConvertible
  559. (
  560. [in] DWORD dwSrcEncoding,
  561. [in] DWORD dwDstEncoding
  562. );
  563. HRESULT ConvertString
  564. (
  565. [in,out] DWORD *pdwMode,
  566. [in] DWORD dwSrcEncoding,
  567. [in] DWORD dwDstEncoding,
  568. [in] BYTE *pSrcStr,
  569. [in,out] UINT *pcSrcSize,
  570. [in] BYTE *pDstStr,
  571. [in,out] UINT *pcDstSize
  572. );
  573. HRESULT ConvertStringToUnicode
  574. (
  575. [in,out] DWORD *pdwMode,
  576. [in] DWORD dwEncoding,
  577. [in] CHAR *pSrcStr,
  578. [in,out] UINT *pcSrcSize,
  579. [in] WCHAR *pDstStr,
  580. [in,out] UINT *pcDstSize
  581. );
  582. HRESULT ConvertStringFromUnicode
  583. (
  584. [in,out] DWORD *pdwMode,
  585. [in] DWORD dwEncoding,
  586. [in] WCHAR *pSrcStr,
  587. [in,out] UINT *pcSrcSize,
  588. [in] CHAR *pDstStr,
  589. [in,out] UINT *pcDstSize
  590. );
  591. HRESULT ConvertStringReset();
  592. HRESULT GetRfc1766FromLcid
  593. (
  594. [in] LCID Locale,
  595. [out] BSTR *pbstrRfc1766
  596. );
  597. HRESULT GetLcidFromRfc1766
  598. (
  599. [out] LCID *pLocale,
  600. [in] BSTR bstrRfc1766
  601. );
  602. HRESULT EnumRfc1766
  603. (
  604. [out] IEnumRfc1766 **ppEnumRfc1766
  605. );
  606. HRESULT GetRfc1766Info
  607. (
  608. [in] LCID Locale,
  609. [out] PRFC1766INFO pRfc1766Info
  610. );
  611. HRESULT CreateConvertCharset
  612. (
  613. [in] UINT uiSrcCodePage,
  614. [in] UINT uiDstCodePage,
  615. [in] DWORD dwProperty,
  616. [out] IMLangConvertCharset **ppMLangConvertCharset
  617. );
  618. };
  619. cpp_quote("// dwfIODControl definitions for ValidateCodePageEx()")
  620. cpp_quote("#define CPIOD_PEEK 0x40000000L")
  621. cpp_quote("#define CPIOD_FORCE_PROMPT 0x80000000L")
  622. [
  623. object,
  624. uuid(DCCFC164-2B38-11d2-B7EC-00C04F8F5D9A),
  625. pointer_default(unique)
  626. ]
  627. interface IMultiLanguage2 : IUnknown
  628. {
  629. typedef [unique] IMultiLanguage2 *LPMULTILANGUAGE2;
  630. typedef enum tagMLDETECTCP
  631. {
  632. MLDETECTCP_NONE = 0,
  633. MLDETECTCP_7BIT = 1,
  634. MLDETECTCP_8BIT = 2,
  635. MLDETECTCP_DBCS = 4,
  636. MLDETECTCP_HTML = 8,
  637. MLDETECTCP_NUMBER = 16
  638. } MLDETECTCP ;
  639. typedef struct tagDetectEncodingInfo
  640. {
  641. UINT nLangID; // Win32 primary language ID
  642. UINT nCodePage; // Win32 code page (valid for SBCS and DBCS input only!)
  643. INT nDocPercent; // % of doc in this language, 0-100
  644. INT nConfidence; // Relative confidence measure, approx 0-100
  645. } DetectEncodingInfo, *pDetectEncodingInfo;
  646. typedef enum tagSCRIPTFONTCONTF
  647. {
  648. SCRIPTCONTF_FIXED_FONT = 0x00000001,
  649. SCRIPTCONTF_PROPORTIONAL_FONT = 0x00000002,
  650. SCRIPTCONTF_SCRIPT_USER = 0x00010000,
  651. SCRIPTCONTF_SCRIPT_HIDE = 0x00020000,
  652. SCRIPTCONTF_SCRIPT_SYSTEM = 0x00040000
  653. } SCRIPTFONTCONTF;
  654. typedef struct tagSCRIPFONTINFO
  655. {
  656. SCRIPT_IDS scripts;
  657. WCHAR wszFont[MAX_MIMEFACE_NAME];
  658. } SCRIPTFONTINFO, *PSCRIPTFONTINFO;
  659. HRESULT GetNumberOfCodePageInfo
  660. (
  661. [out] UINT *pcCodePage
  662. );
  663. HRESULT GetCodePageInfo
  664. (
  665. [in] UINT uiCodePage,
  666. [in] LANGID LangId,
  667. [out] PMIMECPINFO pCodePageInfo
  668. );
  669. HRESULT GetFamilyCodePage
  670. (
  671. [in] UINT uiCodePage,
  672. [out] UINT *puiFamilyCodePage
  673. );
  674. HRESULT EnumCodePages
  675. (
  676. [in] DWORD grfFlags,
  677. [in] LANGID LangId,
  678. [out] IEnumCodePage **ppEnumCodePage
  679. );
  680. HRESULT GetCharsetInfo
  681. (
  682. [in] BSTR Charset,
  683. [out] PMIMECSETINFO pCharsetInfo
  684. );
  685. HRESULT IsConvertible
  686. (
  687. [in] DWORD dwSrcEncoding,
  688. [in] DWORD dwDstEncoding
  689. );
  690. HRESULT ConvertString
  691. (
  692. [in,out] DWORD *pdwMode,
  693. [in] DWORD dwSrcEncoding,
  694. [in] DWORD dwDstEncoding,
  695. [in] BYTE *pSrcStr,
  696. [in,out] UINT *pcSrcSize,
  697. [in] BYTE *pDstStr,
  698. [in,out] UINT *pcDstSize
  699. );
  700. HRESULT ConvertStringToUnicode
  701. (
  702. [in,out] DWORD *pdwMode,
  703. [in] DWORD dwEncoding,
  704. [in] CHAR *pSrcStr,
  705. [in,out] UINT *pcSrcSize,
  706. [in] WCHAR *pDstStr,
  707. [in,out] UINT *pcDstSize
  708. );
  709. HRESULT ConvertStringFromUnicode
  710. (
  711. [in,out] DWORD *pdwMode,
  712. [in] DWORD dwEncoding,
  713. [in] WCHAR *pSrcStr,
  714. [in,out] UINT *pcSrcSize,
  715. [in] CHAR *pDstStr,
  716. [in,out] UINT *pcDstSize
  717. );
  718. HRESULT ConvertStringReset();
  719. HRESULT GetRfc1766FromLcid
  720. (
  721. [in] LCID Locale,
  722. [out] BSTR *pbstrRfc1766
  723. );
  724. HRESULT GetLcidFromRfc1766
  725. (
  726. [out] LCID *pLocale,
  727. [in] BSTR bstrRfc1766
  728. );
  729. HRESULT EnumRfc1766
  730. (
  731. [in] LANGID LangId,
  732. [out] IEnumRfc1766 **ppEnumRfc1766
  733. );
  734. HRESULT GetRfc1766Info
  735. (
  736. [in] LCID Locale,
  737. [in] LANGID LangId,
  738. [out] PRFC1766INFO pRfc1766Info
  739. );
  740. HRESULT CreateConvertCharset
  741. (
  742. [in] UINT uiSrcCodePage,
  743. [in] UINT uiDstCodePage,
  744. [in] DWORD dwProperty,
  745. [out] IMLangConvertCharset **ppMLangConvertCharset
  746. );
  747. HRESULT ConvertStringInIStream
  748. (
  749. [in,out] DWORD *pdwMode,
  750. [in] DWORD dwFlag,
  751. [in] WCHAR *lpFallBack,
  752. [in] DWORD dwSrcEncoding,
  753. [in] DWORD dwDstEncoding,
  754. [in] IStream *pstmIn,
  755. [in] IStream *pstmOut
  756. );
  757. HRESULT ConvertStringToUnicodeEx
  758. (
  759. [in,out] DWORD *pdwMode,
  760. [in] DWORD dwEncoding,
  761. [in] CHAR *pSrcStr,
  762. [in,out] UINT *pcSrcSize,
  763. [in] WCHAR *pDstStr,
  764. [in,out] UINT *pcDstSize,
  765. [in] DWORD dwFlag,
  766. [in] WCHAR *lpFallBack
  767. );
  768. HRESULT ConvertStringFromUnicodeEx
  769. (
  770. [in,out] DWORD *pdwMode,
  771. [in] DWORD dwEncoding,
  772. [in] WCHAR *pSrcStr,
  773. [in,out] UINT *pcSrcSize,
  774. [in] CHAR *pDstStr,
  775. [in,out] UINT *pcDstSize,
  776. [in] DWORD dwFlag,
  777. [in] WCHAR *lpFallBack
  778. );
  779. HRESULT DetectCodepageInIStream
  780. (
  781. [in] DWORD dwFlag,
  782. [in] DWORD dwPrefWinCodePage,
  783. [in] IStream *pstmIn,
  784. [in,out] DetectEncodingInfo *lpEncoding,
  785. [in,out] INT *pnScores
  786. );
  787. HRESULT DetectInputCodepage
  788. (
  789. [in] DWORD dwFlag,
  790. [in] DWORD dwPrefWinCodePage,
  791. [in] CHAR *pSrcStr,
  792. [in,out] INT *pcSrcSize,
  793. [in,out] DetectEncodingInfo *lpEncoding,
  794. [in,out] INT *pnScores
  795. );
  796. HRESULT ValidateCodePage
  797. (
  798. [in] UINT uiCodePage,
  799. [in] HWND hwnd
  800. );
  801. HRESULT GetCodePageDescription
  802. (
  803. [in] UINT uiCodePage,
  804. [in] LCID lcid,
  805. [in,out]LPWSTR lpWideCharStr,
  806. [in] int cchWideChar
  807. );
  808. HRESULT IsCodePageInstallable
  809. (
  810. [in] UINT uiCodePage
  811. );
  812. HRESULT SetMimeDBSource
  813. (
  814. [in] MIMECONTF dwSource
  815. );
  816. HRESULT GetNumberOfScripts
  817. (
  818. [out] UINT *pnScripts
  819. );
  820. HRESULT EnumScripts
  821. (
  822. [in] DWORD dwFlags,
  823. [in] LANGID LangId,
  824. [out] IEnumScript **ppEnumScript
  825. );
  826. HRESULT ValidateCodePageEx
  827. (
  828. [in] UINT uiCodePage,
  829. [in] HWND hwnd,
  830. [in] DWORD dwfIODControl
  831. );
  832. };
  833. [
  834. uuid(359F3443-BD4A-11D0-B188-00AA0038C969),
  835. helpstring("IMLangCodePages Interface"),
  836. pointer_default(unique)
  837. ]
  838. interface IMLangCodePages : IUnknown
  839. {
  840. typedef [unique] IMLangCodePages* PMLANGCODEPAGES;
  841. [helpstring("method GetCharCodePages")] HRESULT GetCharCodePages([in] WCHAR chSrc, [out] DWORD* pdwCodePages);
  842. [helpstring("method GetStrCodePages")] HRESULT GetStrCodePages([in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [in] DWORD dwPriorityCodePages, [out] DWORD* pdwCodePages, [out] long* pcchCodePages);
  843. [helpstring("method CodePageToCodePages")] HRESULT CodePageToCodePages([in] UINT uCodePage, [out] DWORD* pdwCodePages);
  844. [helpstring("method CodePagesToCodePage")] HRESULT CodePagesToCodePage([in] DWORD dwCodePages, [in] UINT uDefaultCodePage, [out] UINT* puCodePage);
  845. };
  846. [
  847. uuid(359F3441-BD4A-11D0-B188-00AA0038C969),
  848. helpstring("IMLangFontLink Interface"),
  849. pointer_default(unique)
  850. ]
  851. interface IMLangFontLink : IMLangCodePages
  852. {
  853. typedef [unique] IMLangFontLink* PMLANGFONTLINK;
  854. [helpstring("method GetFontCodePages")] HRESULT GetFontCodePages([in] HDC hDC, [in] HFONT hFont, [out] DWORD* pdwCodePages);
  855. [helpstring("method MapFont")] HRESULT MapFont([in] HDC hDC, [in] DWORD dwCodePages, [in] HFONT hSrcFont, [out] HFONT* phDestFont);
  856. [helpstring("method ReleaseFont")] HRESULT ReleaseFont([in] HFONT hFont);
  857. [helpstring("method ResetFontMapping")] HRESULT ResetFontMapping();
  858. };
  859. [
  860. uuid(DCCFC162-2B38-11d2-B7EC-00C04F8F5D9A),
  861. helpstring("IMLangFontLink2 Interface"),
  862. pointer_default(unique)
  863. ]
  864. interface IMLangFontLink2 : IMLangCodePages
  865. {
  866. typedef struct tagUNICODERANGE
  867. {
  868. WCHAR wcFrom;
  869. WCHAR wcTo;
  870. } UNICODERANGE;
  871. typedef [unique] IMLangFontLink2* PMLANGFONTLINK2;
  872. [helpstring("method GetFontCodePages")] HRESULT GetFontCodePages([in] HDC hDC, [in] HFONT hFont, [out] DWORD* pdwCodePages);
  873. [helpstring("method ReleaseFont")] HRESULT ReleaseFont([in] HFONT hFont);
  874. [helpstring("method ResetFontMapping")] HRESULT ResetFontMapping();
  875. [helpstring("method MapFont")] HRESULT MapFont([in] HDC hDC, [in] DWORD dwCodePages, [in] WCHAR chSrc, [out] HFONT* pFont );
  876. [helpstring("method GetFontUnicodeRanges")] HRESULT GetFontUnicodeRanges([in] HDC hDC, [in,out] UINT *puiRanges, [out] UNICODERANGE* pUranges);
  877. [helpstring("method GetScriptFontInfo")]HRESULT GetScriptFontInfo([in] SCRIPT_ID sid, [in] DWORD dwFlags, [in, out] UINT *puiFonts, [out] SCRIPTFONTINFO* pScriptFont);
  878. [helpstring("method CodePageToScriptID")] HRESULT CodePageToScriptID([in] UINT uiCodePage, [out] SCRIPT_ID *pSid);
  879. };
  880. [
  881. object,
  882. uuid(4e5868ab-b157-4623-9acc-6a1d9caebe04),
  883. pointer_default(unique)
  884. ]
  885. interface IMultiLanguage3 : IMultiLanguage2
  886. {
  887. typedef [unique] IMultiLanguage3 *LPMULTILANGUAGE3;
  888. HRESULT DetectOutboundCodePage(
  889. [in] DWORD dwFlags,
  890. [in] LPCWSTR lpWideCharStr,
  891. [in] UINT cchWideChar,
  892. [in] UINT* puiPreferredCodePages,
  893. [in] UINT nPreferredCodePages,
  894. [in] UINT* puiDetectedCodePages,
  895. [in, out] UINT* pnDetectedCodePages,
  896. [in] WCHAR * lpSpecialChar
  897. );
  898. HRESULT DetectOutboundCodePageInIStream(
  899. [in] DWORD dwFlags,
  900. [in] IStream* pStrIn,
  901. [in] UINT* puiPreferredCodePages,
  902. [in] UINT nPreferredCodePages,
  903. [in] UINT* puiDetectedCodePages,
  904. [in, out] UINT* pnDetectedCodePages,
  905. [in] WCHAR * lpSpecialChar
  906. );
  907. };
  908. [
  909. uuid(275c23e2-3747-11d0-9fea-00aa003f8646),
  910. ]
  911. coclass CMultiLanguage
  912. {
  913. [default] interface IMultiLanguage;
  914. interface IMLangCodePages;
  915. interface IMLangFontLink;
  916. interface IMLangLineBreakConsole;
  917. interface IMultiLanguage2;
  918. interface IMLangFontLink2;
  919. interface IMultiLanguage3;
  920. };
  921. }
  922. cpp_quote("#ifndef _MLANG_H_API_DEF_ ")
  923. cpp_quote("#define _MLANG_H_API_DEF_ ")
  924. cpp_quote(" ")
  925. cpp_quote("// APIs prototypes ")
  926. cpp_quote("STDAPI LcidToRfc1766A(LCID Locale, LPSTR pszRfc1766, int iMaxLength); ")
  927. cpp_quote("STDAPI LcidToRfc1766W(LCID Locale, LPWSTR pszRfc1766, int nChar); ")
  928. cpp_quote("#ifdef UNICODE ")
  929. cpp_quote("#define LcidToRfc1766 LcidToRfc1766W ")
  930. cpp_quote("#else ")
  931. cpp_quote("#define LcidToRfc1766 LcidToRfc1766A ")
  932. cpp_quote("#endif ")
  933. cpp_quote("STDAPI Rfc1766ToLcidA(LCID *pLocale, LPCSTR pszRfc1766); ")
  934. cpp_quote("STDAPI Rfc1766ToLcidW(LCID *pLocale, LPCWSTR pszRfc1766); ")
  935. cpp_quote("#ifdef UNICODE ")
  936. cpp_quote("#define Rfc1766ToLcid Rfc1766ToLcidW ")
  937. cpp_quote("#else ")
  938. cpp_quote("#define Rfc1766ToLcid Rfc1766ToLcidA ")
  939. cpp_quote("#endif ")
  940. cpp_quote(" ")
  941. cpp_quote("STDAPI IsConvertINetStringAvailable(DWORD dwSrcEncoding, DWORD dwDstEncoding);")
  942. cpp_quote("STDAPI ConvertINetString(LPDWORD lpdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, LPCSTR lpSrcStr, LPINT lpnSrcSize, LPSTR lpDstStr, LPINT lpnDstSize); ")
  943. cpp_quote("STDAPI ConvertINetMultiByteToUnicode(LPDWORD lpdwMode, DWORD dwEncoding, LPCSTR lpSrcStr, LPINT lpnMultiCharCount, LPWSTR lpDstStr, LPINT lpnWideCharCount); ")
  944. cpp_quote("STDAPI ConvertINetUnicodeToMultiByte(LPDWORD lpdwMode, DWORD dwEncoding, LPCWSTR lpSrcStr, LPINT lpnWideCharCount, LPSTR lpDstStr, LPINT lpnMultiCharCount); ")
  945. cpp_quote(" ")
  946. cpp_quote("#endif // _MLANG_H_API_DEF_ ")