ReactOS 0.4.15-dev-6680-g8c76870
mlang.idl
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004 Mike McCormack
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef DO_NO_IMPORTS
20import "unknwn.idl";
21#endif
22
23interface IStream;
24
25cpp_quote("#define CPIOD_PEEK 0x40000000")
26cpp_quote("#define CPIOD_FORCE_PROMPT 0x80000000")
27
28[
29 uuid(275c23e0-3747-11d0-9fea-00aa003f8646),
30 lcid(0x0000),
31 version(0.2)
32]
33library MultiLanguage
34{
35 importlib("stdole2.tlb");
36
37[
38 object,
39 uuid(359f3443-bd4a-11d0-b188-00aa0038c969),
40 pointer_default(unique)
41]
42interface IMLangCodePages : IUnknown
43{
44 HRESULT GetCharCodePages(
45 [in] WCHAR chSrc,
46 [out] DWORD *pdwCodePages);
47 HRESULT GetStrCodePages(
48 [in, size_is(cchSrc)] const WCHAR *pszSrc,
49 [in] LONG cchSrc,
50 [in] DWORD dwPriorityCodePages,
51 [out] DWORD *pdwCodePages,
52 [out] LONG *pcchCodePages);
53 HRESULT CodePageToCodePages(
54 [in] UINT uCodePage,
55 [out] DWORD *pdwCodePages);
56 HRESULT CodePagesToCodePage(
57 [in] DWORD dwCodePages,
58 [in] UINT uDefaultCodePage,
59 [out] UINT *puCodePage);
60}
61
62[
63 object,
64 uuid(359f3441-bd4a-11d0-b188-00aa0038c969),
65 pointer_default(unique)
66]
67interface IMLangFontLink : IMLangCodePages
68{
69 HRESULT GetFontCodePages(
70 [in] HDC hDC,
71 [in] HFONT hFont,
72 [out] DWORD *pdwCodePages );
73
74 HRESULT MapFont(
75 [in] HDC hDC,
76 [in] DWORD dwCodePages,
77 [in] HFONT hSrcFont,
78 [out] HFONT *phDestFont);
79
80 HRESULT ReleaseFont(
81 [in] HFONT hFont);
82
83 HRESULT ResetFontMapping();
84}
85
86[
87 object,
88 uuid(ae5f1430-388b-11d2-8380-00c04f8f5da1),
89 pointer_default(unique)
90]
91interface IEnumScript : IUnknown
92{
93 const USHORT MAX_SCRIPT_NAME = 48;
94 const USHORT MAX_MIMEFACE_NAME = 32;
95
96 typedef BYTE SCRIPT_ID;
97 typedef __int64 SCRIPT_IDS;
98
99 typedef enum tagSCRIPTCONTF
100 {
101 sidDefault = 0,
102 sidMerge = sidDefault + 1,
103 sidAsciiSym = sidMerge + 1,
104 sidAsciiLatin = sidAsciiSym + 1,
105 sidLatin = sidAsciiLatin + 1,
106 sidGreek = sidLatin + 1,
107 sidCyrillic = sidGreek + 1,
108 sidArmenian = sidCyrillic + 1,
109 sidHebrew = sidArmenian + 1,
110 sidArabic = sidHebrew + 1,
111 sidDevanagari = sidArabic + 1,
112 sidBengali = sidDevanagari + 1,
113 sidGurmukhi = sidBengali + 1,
114 sidGujarati = sidGurmukhi + 1,
115 sidOriya = sidGujarati + 1,
116 sidTamil = sidOriya + 1,
117 sidTelugu = sidTamil + 1,
118 sidKannada = sidTelugu + 1,
119 sidMalayalam = sidKannada + 1,
120 sidThai = sidMalayalam + 1,
121 sidLao = sidThai + 1,
122 sidTibetan = sidLao + 1,
123 sidGeorgian = sidTibetan + 1,
124 sidHangul = sidGeorgian + 1,
125 sidKana = sidHangul + 1,
126 sidBopomofo = sidKana + 1,
127 sidHan = sidBopomofo + 1,
128 sidEthiopic = sidHan + 1,
129 sidCanSyllabic = sidEthiopic + 1,
130 sidCherokee = sidCanSyllabic + 1,
131 sidYi = sidCherokee + 1,
132 sidBraille = sidYi + 1,
133 sidRunic = sidBraille + 1,
134 sidOgham = sidRunic + 1,
135 sidSinhala = sidOgham + 1,
136 sidSyriac = sidSinhala + 1,
137 sidBurmese = sidSyriac + 1,
138 sidKhmer = sidBurmese + 1,
139 sidThaana = sidKhmer + 1,
140 sidMongolian = sidThaana + 1,
141 sidUserDefined = sidMongolian + 1,
142 sidLim = sidUserDefined + 1,
143 sidFEFirst = sidHangul,
144 sidFELast = sidHan
145 } SCRIPTCONTF;
146
147 typedef enum tagSCRIPTFONTCONTF
148 {
149 SCRIPTCONTF_FIXED_FONT = 0x1,
150 SCRIPTCONTF_PROPORTIONAL_FONT = 0x2,
151 SCRIPTCONTF_SCRIPT_USER = 0x10000,
152 SCRIPTCONTF_SCRIPT_HIDE = 0x20000,
153 SCRIPTCONTF_SCRIPT_SYSTEM = 0x40000
154 } SCRIPTFONTCONTF;
155
156 typedef struct tagSCRIPFONTINFO
157 {
158 SCRIPT_IDS scripts;
159 WCHAR wszFont[MAX_MIMEFACE_NAME];
160 } SCRIPTFONTINFO, *PSCRIPTFONTINFO;
161
162 typedef struct tagSCRIPTINFO {
163 SCRIPT_ID ScriptId;
164 UINT uiCodePage;
165 WCHAR wszDescription[MAX_SCRIPT_NAME];
166 WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
167 WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
168 } SCRIPTINFO, *PSCRIPTINFO;
169
170 HRESULT Clone(
171 [out] IEnumScript **ppEnum);
172
173 HRESULT Next(
174 [in] ULONG celt,
175 [out] PSCRIPTINFO rgelt,
176 [out] ULONG *pceltFetched);
177
178 HRESULT Reset();
179
180 HRESULT Skip(
181 [in] ULONG celt);
182}
183
184[
185 object,
186 uuid(dccfc162-2b38-11d2-b7ec-00c04f8f5d9a),
187 pointer_default(unique)
188]
189interface IMLangFontLink2 : IMLangCodePages
190{
191 typedef struct tagUNICODERANGE
192 {
193 WCHAR wcFrom;
194 WCHAR wcTo;
195 } UNICODERANGE;
196
197 typedef [unique] IMLangFontLink2 *PMLANGFONTLINK2;
198
199 HRESULT GetFontCodePages(
200 [in] HDC hDC,
201 [in] HFONT hFont,
202 [out] DWORD *pdwCodePages );
203
204 HRESULT ReleaseFont(
205 [in] HFONT hFont);
206
207 HRESULT ResetFontMapping();
208
209 HRESULT MapFont(
210 [in] HDC hDC,
211 [in] DWORD dwCodePages,
212 [in] WCHAR chSrc,
213 [out] HFONT *pFont);
214
215 HRESULT GetFontUnicodeRanges(
216 [in] HDC hDC,
217 [in,out] UINT *puiRanges,
218 [out] UNICODERANGE* pUranges);
219
220 HRESULT GetScriptFontInfo(
221 [in] SCRIPT_ID sid,
222 [in] DWORD dwFlags,
223 [in,out] UINT *puiFonts,
224 [out] SCRIPTFONTINFO* pScriptFont);
225
226 HRESULT CodePageToScriptID(
227 [in] UINT uiCodePage,
228 [out] SCRIPT_ID *pSid);
229}
230
231[
232 object,
233 uuid(c04d65ce-b70d-11d0-b188-00aa0038c969),
234 pointer_default(unique)
235]
236interface IMLangString : IUnknown
237{
238#ifdef NEWMLSTR
239 HRESULT LockMLStr(
240 [in] LONG lPos,
241 [in] DWORD dwFlags,
242 [out] DWORD* pdwCookie,
243 [out] LONG* plActualPos,
244 [out] LONG* plActualLen);
245
246 HRESULT UnlockMLStr(
247 [in] DWORD dwCookie);
248#else
249 HRESULT Sync(
250 [in] BOOL fNoAccess);
251#endif
252 HRESULT GetLength(
253 [out, retval] LONG* plLen);
254 HRESULT SetMLStr(
255 [in] LONG lDestPos,
256 [in] LONG lDestLen,
257 [in] IUnknown *pSrcMLStr,
258 [in] LONG lSrcPos,
259 [in] LONG lSrcLen);
260#ifdef NEWMLSTR
261 HRESULT RegisterAttr(
262 [in] IUnknown *pUnk,
263 [out] DWORD* pdwCookie);
264 HRESULT UnregisterAttr(
265 [in] DWORD dwCookie);
266 HRESULT EnumAttr(
267 [out] IEnumUnknown **ppEnumUnk);
268 HRESULT FindAttr(
269 [in] REFIID riid,
270 [in] LPARAM lParam,
271 [out] IUnknown **ppUnk);
272#else
273 HRESULT GetMLStr(
274 [in] LONG lSrcPos,
275 [in] LONG lSrcLen,
276 [in] IUnknown *pUnkOuter,
277 [in] DWORD dwClsContext,
278 [in] const IID* piid,
279 [out] IUnknown** ppDestMLStr,
280 [out] LONG* plDestPos,
281 [out] LONG* plDestLen);
282#endif
283}
284
285[
286 object,
287 uuid(f5be2ee1-bfd7-11d0-b188-00aa0038c969),
288 pointer_default(unique)
289]
290interface IMLangLineBreakConsole : IUnknown
291{
292 HRESULT BreakLineML(
293 [in] IMLangString* pSrcMLStr,
294 [in] LONG lSrcPos,
295 [in] LONG lSrcLen,
296 [in] LONG cMinColumns,
297 [in] LONG cMaxColumns,
298 [out] LONG* plLineLen,
299 [out] LONG* plSkipLen);
300
301 HRESULT BreakLineW(
302 [in] LCID locale,
303 [in, size_is(cchSrc)] const WCHAR* pszSrc,
304 [in] LONG cchSrc,
305 [in] LONG cMaxColumns,
306 [out] LONG* pcchLine,
307 [out] LONG* pcchSkip );
308
309 HRESULT BreakLineA(
310 [in] LCID locale,
311 [in] UINT uCodePage,
312 [in, size_is(cchSrc)] const CHAR* pszSrc,
313 [in] LONG cchSrc,
314 [in] LONG cMaxColumns,
315 [out] LONG* pcchLine,
316 [out] LONG* pcchSkip);
317}
318
319[
320 object,
321 uuid(275c23e3-3747-11d0-9fea-00aa003f8646),
322 pointer_default(unique)
323]
324interface IEnumCodePage : IUnknown
325{
326 const USHORT MAX_MIMECP_NAME = 64;
327 const USHORT MAX_MIMECSET_NAME = 50;
328
329 typedef enum tagMIMECONTF
330 {
331 MIMECONTF_MAILNEWS = 0x00000001,
332 MIMECONTF_BROWSER = 0x00000002,
333 MIMECONTF_MINIMAL = 0x00000004,
334 MIMECONTF_IMPORT = 0x00000008,
335 MIMECONTF_SAVABLE_MAILNEWS = 0x00000100,
336 MIMECONTF_SAVABLE_BROWSER = 0x00000200,
337 MIMECONTF_EXPORT = 0x00000400,
338 MIMECONTF_PRIVCONVERTER = 0x00010000,
339 MIMECONTF_VALID = 0x00020000,
340 MIMECONTF_VALID_NLS = 0x00040000,
341 MIMECONTF_MIME_IE4 = 0x10000000,
342 MIMECONTF_MIME_LATEST = 0x20000000,
343 MIMECONTF_MIME_REGISTRY = 0x40000000
344 } MIMECONTF;
345
346 typedef struct tagMIMECPINFO {
347 DWORD dwFlags;
348 UINT uiCodePage;
349 UINT uiFamilyCodePage;
350 WCHAR wszDescription[MAX_MIMECP_NAME];
351 WCHAR wszWebCharset[MAX_MIMECSET_NAME];
352 WCHAR wszHeaderCharset[MAX_MIMECSET_NAME];
353 WCHAR wszBodyCharset[MAX_MIMECSET_NAME];
354 WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
355 WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
356 BYTE bGDICharset;
357 } MIMECPINFO, *PMIMECPINFO;
358
359 typedef struct tagMIMECSETINFO
360 {
361 UINT uiCodePage;
362 UINT uiInternetEncoding;
363 WCHAR wszCharset[MAX_MIMECSET_NAME];
364 } MIMECSETINFO, *PMIMECSETINFO;
365
366 HRESULT Clone(
367 [out] IEnumCodePage **ppEnum);
368
369 HRESULT Next(
370 [in] ULONG celt,
371 [out] PMIMECPINFO rgelt,
372 [out] ULONG *pceltFetched);
373
374 HRESULT Reset();
375
376 HRESULT Skip(
377 [in] ULONG celt);
378}
379
380[
381 object,
382 uuid(d66d6f98-cdaa-11d0-b822-00c04fc9b31f),
383 pointer_default(unique)
384]
385interface IMLangConvertCharset : IUnknown
386{
387 typedef enum tagMLCONVCHARF
388 {
389 MLCONVCHARF_AUTODETECT = 1,
390 MLCONVCHARF_ENTITIZE = 2,
391 MLCONVCHARF_NCR_ENTITIZE = 2,
392 MLCONVCHARF_NAME_ENTITIZE = 4,
393 MLCONVCHARF_USEDEFCHAR = 8,
394 MLCONVCHARF_NOBESTFITCHARS = 16,
395 MLCONVCHARF_DETECTJPN = 32
396 } MLCONVCHAR;
397
398 typedef enum tagMLCPF
399 {
400 MLDETECTF_MAILNEWS = 0x0001,
401 MLDETECTF_BROWSER = 0x0002,
402 MLDETECTF_VALID = 0x0004,
403 MLDETECTF_VALID_NLS = 0x0008,
404 MLDETECTF_PRESERVE_ORDER = 0x0010,
405 MLDETECTF_PREFERRED_ONLY = 0x0020,
406 MLDETECTF_FILTER_SPECIALCHAR = 0x0040,
407 MLDETECTF_EURO_UTF8 = 0x0080
408 } MLCP;
409
410 HRESULT Initialize(
411 [in] UINT uiSrcCodePage,
412 [in] UINT uiDstCodePage,
413 [in] DWORD dwProperty);
414
415 HRESULT GetSourceCodePage(
416 [out] UINT *puiSrcCodePage);
417
418 HRESULT GetDestinationCodePage(
419 [out] UINT *puiDstCodePage);
420
421 HRESULT GetProperty(
422 [out] DWORD *pdwProperty);
423
424 HRESULT DoConversion(
425 [in] BYTE *pSrcStr,
426 [in,out] UINT *pcSrcSize,
427 [in] BYTE *pDstStr,
428 [in,out] UINT *pcDstSize);
429
430 HRESULT DoConversionToUnicode(
431 [in] CHAR *pSrcStr,
432 [in,out] UINT *pcSrcSize,
433 [in] WCHAR *pDstStr,
434 [in,out] UINT *pcDstSize);
435
436 HRESULT DoConversionFromUnicode(
437 [in] WCHAR *pSrcStr,
438 [in,out] UINT *pcSrcSize,
439 [in] CHAR *pDstStr,
440 [in,out] UINT *pcDstSize);
441}
442
443[
444 uuid(d66d6f99-cdaa-11d0-b822-00c04fc9b31f)
445]
446coclass CMLangConvertCharset
447{
448 [default] interface IMLangConvertCharset;
449};
450
451[
452 object,
453 uuid(3dc39d1d-c030-11d0-b81b-00c04fc9b31f),
454 pointer_default(unique)
455]
456interface IEnumRfc1766 : IUnknown
457{
458 const USHORT MAX_RFC1766_NAME = 6;
459 const USHORT MAX_LOCALE_NAME = 32;
460
461 typedef struct tagRFC1766INFO
462 {
463 LCID lcid;
464 WCHAR wszRfc1766[MAX_RFC1766_NAME];
465 WCHAR wszLocaleName[MAX_LOCALE_NAME];
466 } RFC1766INFO, *PRFC1766INFO;
467
468 HRESULT Clone(
469 [out] IEnumRfc1766 **ppEnum);
470
471 HRESULT Next(
472 [in] ULONG celt,
473 [out] PRFC1766INFO rgelt,
474 [out] ULONG *pceltFetched);
475
476 HRESULT Reset();
477
478 HRESULT Skip(
479 [in] ULONG celt);
480}
481
482[
483 object,
484 uuid(275c23e1-3747-11d0-9fea-00aa003f8646),
485 pointer_default(unique)
486]
487interface IMultiLanguage : IUnknown
488{
489 HRESULT GetNumberOfCodePageInfo(
490 [out] UINT *pcCodePage);
491
492 HRESULT GetCodePageInfo(
493 [in] UINT uiCodePage,
494 [out] PMIMECPINFO pCodePageInfo);
495
496 HRESULT GetFamilyCodePage(
497 [in] UINT uiCodePage,
498 [out] UINT *puiFamilyCodePage);
499
500 HRESULT EnumCodePages(
501 [in] DWORD grfFlags,
502 [out] IEnumCodePage **ppEnumCodePage);
503
504 HRESULT GetCharsetInfo(
505 [in] BSTR Charset,
506 [in] PMIMECSETINFO pCharsetInfo);
507
508 HRESULT IsConvertible(
509 [in] DWORD dwSrcEncoding,
510 [in] DWORD dwDstEncoding);
511
512 HRESULT ConvertString(
513 [in,out] DWORD *pdwMode,
514 [in] DWORD dwSrcEncoding,
515 [in] DWORD dwDstEncoding,
516 [in] BYTE *pSrcStr,
517 [in,out] UINT *pcSrcSize,
518 [in] BYTE *pDstStr,
519 [in,out] UINT *pcDstSize);
520
521 HRESULT ConvertStringToUnicode(
522 [in,out] DWORD *pdwMode,
523 [in] DWORD dwEncoding,
524 [in] CHAR *pSrcStr,
525 [in,out] UINT *pcSrcSize,
526 [in] WCHAR *pDstStr,
527 [in,out] UINT *pcDstSize);
528
529 HRESULT ConvertStringFromUnicode(
530 [in,out] DWORD *pdwMode,
531 [in] DWORD dwEncoding,
532 [in] WCHAR *pSrcStr,
533 [in,out] UINT *pcSrcSize,
534 [in] CHAR *pDstStr,
535 [in,out] UINT *pcDstSize);
536
537 HRESULT ConvertStringReset();
538
539 HRESULT GetRfc1766FromLcid(
540 [in] LCID Locale,
541 [out] BSTR *pbstrRfc1766);
542
543 HRESULT GetLcidFromRfc1766(
544 [out] LCID *pLocale,
545 [in] BSTR bstrRfc1766);
546
547 HRESULT EnumRfc1766(
548 [out] IEnumRfc1766 **ppEnumRfc1766);
549
550 HRESULT GetRfc1766Info(
551 [in] LCID Locale,
552 [out] PRFC1766INFO pRfc1766Info);
553
554 HRESULT CreateConvertCharset(
555 [in] UINT uiSrcCodePage,
556 [in] UINT uiDstCodePage,
557 [in] DWORD dwProperty,
558 [out] IMLangConvertCharset **ppMLangConvertCharset);
559
560}
561
562[
563 object,
564 uuid(dccfc164-2b38-11d2-b7ec-00c04f8f5d9a),
565 pointer_default(unique)
566]
567interface IMultiLanguage2 : IUnknown
568{
569 typedef struct tagDetectEncodingInfo
570 {
571 UINT nLangID;
572 UINT nCodePage;
573 INT nDocPercent;
574 INT nConfidence;
575 } DetectEncodingInfo, *pDetectEncodingInfo;
576
577 HRESULT GetNumberOfCodePageInfo(
578 [out] UINT *pcCodePage);
579
580 HRESULT GetCodePageInfo(
581 [in] UINT uiCodePage,
582 [in] LANGID LangId,
583 [out] PMIMECPINFO pCodePageInfo);
584
585 HRESULT GetFamilyCodePage(
586 [in] UINT uiCodePage,
587 [out] UINT *puiFamilyCodePage);
588
589 HRESULT EnumCodePages(
590 [in] DWORD grfFlags,
591 [in] LANGID LangId,
592 [out] IEnumCodePage **ppEnumCodePage);
593
594 HRESULT GetCharsetInfo(
595 [in] BSTR Charset,
596 [in] PMIMECSETINFO pCharsetInfo);
597
598 HRESULT IsConvertible(
599 [in] DWORD dwSrcEncoding,
600 [in] DWORD dwDstEncoding);
601
602 HRESULT ConvertString(
603 [in,out] DWORD *pdwMode,
604 [in] DWORD dwSrcEncoding,
605 [in] DWORD dwDstEncoding,
606 [in] BYTE *pSrcStr,
607 [in,out] UINT *pcSrcSize,
608 [in] BYTE *pDstStr,
609 [in,out] UINT *pcDstSize);
610
611 HRESULT ConvertStringToUnicode(
612 [in,out] DWORD *pdwMode,
613 [in] DWORD dwEncoding,
614 [in] CHAR *pSrcStr,
615 [in,out] UINT *pcSrcSize,
616 [in] WCHAR *pDstStr,
617 [in,out] UINT *pcDstSize);
618
619 HRESULT ConvertStringFromUnicode(
620 [in,out] DWORD *pdwMode,
621 [in] DWORD dwEncoding,
622 [in] WCHAR *pSrcStr,
623 [in,out] UINT *pcSrcSize,
624 [in] CHAR *pDstStr,
625 [in,out] UINT *pcDstSize);
626
627 HRESULT ConvertStringReset();
628
629 HRESULT GetRfc1766FromLcid(
630 [in] LCID Locale,
631 [out] BSTR *pbstrRfc1766);
632
633 HRESULT GetLcidFromRfc1766(
634 [out] LCID *pLocale,
635 [in] BSTR bstrRfc1766);
636
637 HRESULT EnumRfc1766(
638 [in] LANGID LangId,
639 [out] IEnumRfc1766 **ppEnumRfc1766);
640
641 HRESULT GetRfc1766Info(
642 [in] LCID Locale,
643 [in] LANGID LangId,
644 [out] PRFC1766INFO pRfc1766Info);
645
646 HRESULT CreateConvertCharset(
647 [in] UINT uiSrcCodePage,
648 [in] UINT uiDstCodePage,
649 [in] DWORD dwProperty,
650 [out] IMLangConvertCharset **ppMLangConvertCharset);
651
652 HRESULT ConvertStringInIStream(
653 [in,out] DWORD *pdwMode,
654 [in] DWORD dwFlag,
655 [in] WCHAR *lpFallBack,
656 [in] DWORD dwSrcEncoding,
657 [in] DWORD dwDstEncoding,
658 [in] IStream *pstmIn,
659 [in] IStream *pstmOut);
660
661 HRESULT ConvertStringToUnicodeEx(
662 [in,out] DWORD *pdwMode,
663 [in] DWORD dwEncoding,
664 [in] CHAR *pSrcStr,
665 [in,out] UINT *pcSrcSize,
666 [in] WCHAR *pDstStr,
667 [in,out] UINT *pcDstSize,
668 [in] DWORD dwFlag,
669 [in] WCHAR *lpFallBack);
670
671 HRESULT ConvertStringFromUnicodeEx(
672 [in,out] DWORD *pdwMode,
673 [in] DWORD dwEncoding,
674 [in] WCHAR *pSrcStr,
675 [in,out] UINT *pcSrcSize,
676 [in] CHAR *pDstStr,
677 [in,out] UINT *pcDstSize,
678 [in] DWORD dwFlag,
679 [in] WCHAR *lpFallBack);
680
681 HRESULT DetectCodepageInIStream(
682 [in] DWORD dwFlag,
683 [in] DWORD dwPrefWinCodePage,
684 [in] IStream *pstmIn,
685 [in,out] DetectEncodingInfo *lpEncoding,
686 [in,out] INT *pnScores);
687
688 HRESULT DetectInputCodepage(
689 [in] DWORD dwFlag,
690 [in] DWORD dwPrefWinCodePage,
691 [in] CHAR *pSrcStr,
692 [in,out] INT *pcSrcSize,
693 [in,out] DetectEncodingInfo *lpEncoding,
694 [in,out] INT *pnScores);
695
696 HRESULT ValidateCodePage(
697 [in] UINT uiCodePage,
698 [in] HWND hwnd);
699
700 HRESULT GetCodePageDescription(
701 [in] UINT uiCodePage,
702 [in] LCID lcid,
703 [in,out,size_is(cchWideChar)] LPWSTR lpWideCharStr,
704 [in] int cchWideChar);
705
706 HRESULT IsCodePageInstallable(
707 [in] UINT uiCodePage);
708
709 HRESULT SetMimeDBSource(
710 [in] MIMECONTF dwSource);
711
712 HRESULT GetNumberOfScripts(
713 [out] UINT *pnScripts);
714
715 HRESULT EnumScripts(
716 [in] DWORD dwFlags,
717 [in] LANGID LangId,
718 [out] IEnumScript **ppEnumScript);
719
720 HRESULT ValidateCodePageEx( /* undocumented on MSDN */
721 [in] UINT uiCodePage,
722 [in] HWND hwnd,
723 [in] DWORD dwfIODControl);
724}
725
726[
727 object,
728 uuid(4e5868ab-b157-4623-9acc-6a1d9caebe04),
729 pointer_default(unique)
730]
731interface IMultiLanguage3 : IMultiLanguage2
732{
733 typedef [unique] IMultiLanguage3 *LPMULTILANGUAGE3;
734 HRESULT DetectOutboundCodePage(
735 [in] DWORD dwFlags,
736 [in] LPCWSTR lpWideCharStr,
737 [in] UINT cchWideChar,
738 [in] UINT *puiPreferredCodePages,
739 [in] UINT nPreferredCodePages,
740 [in] UINT *puiDetectedCodePages,
741 [in, out] UINT *pnDetectedCodePages,
742 [in] WCHAR *lpSpecialChar);
743
744 HRESULT DetectOutboundCodePageInIStream(
745 [in] DWORD dwFlags,
746 [in] IStream *pStrIn,
747 [in] UINT *puiPreferredCodePages,
748 [in] UINT nPreferredCodePages,
749 [in] UINT *puiDetectedCodePages,
750 [in, out] UINT *pnDetectedCodePages,
751 [in] WCHAR *lpSpecialChar);
752}
753
754[
755 uuid(275C23E2-3747-11d0-9FEA-00AA003f8646)
756]
757coclass CMultiLanguage
758{
759 [default] interface IMultiLanguage;
760 interface IMLangCodePages;
761 interface IMLangFontLink;
762 /* interface IMLangLineBreakConsole; */
763 interface IMLangFontLink2;
764};
765
766} // library MultiLanguage
767
768cpp_quote("STDAPI LcidToRfc1766A(LCID, LPSTR, INT);")
769cpp_quote("STDAPI LcidToRfc1766W(LCID, LPWSTR, INT);")
770cpp_quote("#define LcidToRfc1766 WINELIB_NAME_AW(LcidToRfc1766)")
771
772cpp_quote("STDAPI Rfc1766ToLcidA(LCID *, LPCSTR);")
773cpp_quote("STDAPI Rfc1766ToLcidW(LCID *, LPCWSTR);")
774cpp_quote("#define Rfc1766ToLcid WINELIB_NAME_AW(Rfc1766ToLcid)")
775
776cpp_quote("STDAPI GetGlobalFontLinkObject(void **unknown);")
777cpp_quote("STDAPI IsConvertINetStringAvailable(DWORD, DWORD);")
778cpp_quote("STDAPI ConvertINetString(LPDWORD, DWORD, DWORD, LPCSTR, LPINT, LPSTR, LPINT);")
779cpp_quote("STDAPI ConvertINetMultiByteToUnicode(LPDWORD, DWORD, LPCSTR, LPINT, LPWSTR, LPINT);")
780cpp_quote("STDAPI ConvertINetUnicodeToMultiByte(LPDWORD, DWORD, LPCWSTR, LPINT, LPSTR, LPINT);")
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:491