This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/mlang.h

1028 lines
46 KiB
C

/*
* mlang.h Multilanguage interfaces
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#include <rpc.h>
#include <rpcndr.h>
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __mlang_h__
#define __mlang_h__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <unknwn.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Script identifier data types */
typedef BYTE SCRIPT_ID;
typedef __int64 SCRIPT_IDS;
/* Maximum name lengths */
#define MAX_MIMECP_NAME 64
#define MAX_MIMECSET_NAME 50
#define MAX_MIMEFACE_NAME 32
#define MAX_RFC1766_NAME 6
#define MAX_LOCALE_NAME 32
#define MAX_SCRIPT_NAME 48
/* IMultiLanguage2::ValidateCodePageEx() flags */
#define CPIOD_PEEK 0x40000000L
#define CPIOD_FORCE_PROMPT 0x80000000L
/* Multilanguage string flags */
typedef enum tagMLSTR_FLAGS {
MLSTR_READ = 1,
MLSTR_WRITE = 2
} MLSTR_FLAGS;
/* MIME content flags */
typedef enum tagMIMECONTF {
MIMECONTF_MAILNEWS = 0x00000001,
MIMECONTF_BROWSER = 0x00000002,
MIMECONTF_MINIMAL = 0x00000004,
MIMECONTF_IMPORT = 0x00000008,
MIMECONTF_SAVABLE_MAILNEWS = 0x00000100,
MIMECONTF_SAVABLE_BROWSER = 0x00000200,
MIMECONTF_EXPORT = 0x00000400,
MIMECONTF_PRIVCONVERTER = 0x00010000,
MIMECONTF_VALID = 0x00020000,
MIMECONTF_VALID_NLS = 0x00040000,
MIMECONTF_MIME_IE4 = 0x10000000,
MIMECONTF_MIME_LATEST = 0x20000000,
MIMECONTF_MIME_REGISTRY = 0x40000000
} MIMECONTF;
/* MIME code page information */
typedef struct tagMIMECPINFO {
DWORD dwFlags;
UINT uiCodePage;
UINT uiFamilyCodePage;
WCHAR wszDescription[MAX_MIMECP_NAME];
WCHAR wszWebCharset[MAX_MIMECSET_NAME];
WCHAR wszHeaderCharset[MAX_MIMECSET_NAME];
WCHAR wszBodyCharset[MAX_MIMECSET_NAME];
WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
BYTE bGDICharset;
} MIMECPINFO;
typedef MIMECPINFO *PMIMECPINFO;
/* MIME character set information */
typedef struct tagMIMECSETINFO {
UINT uiCodePage;
UINT uiInternetEncoding;
WCHAR wszCharset[MAX_MIMECSET_NAME];
} MIMECSETINFO;
typedef MIMECSETINFO *PMIMECSETINFO;
/* RFC 1766 information */
typedef struct tagRFC1766INFO {
LCID lcid;
WCHAR wszRfc1766[MAX_RFC1766_NAME];
WCHAR wszLocaleName[MAX_LOCALE_NAME];
} RFC1766INFO;
typedef RFC1766INFO *PRFC1766INFO;
/* Script content flags */
typedef enum tagSCRIPTCONTF {
sidDefault = 0,
sidMerge = 1,
sidAsciiSym = 2,
sidAsciiLatin = 3,
sidLatin = 4,
sidGreek = 5,
sidCyrillic = 6,
sidArmenian = 7,
sidHebrew = 8,
sidArabic = 9,
sidDevanagari = 10,
sidBengali = 11,
sidGurmukhi = 12,
sidGujarati = 13,
sidOriya = 14,
sidTamil = 15,
sidTelugu = 16,
sidKannada = 17,
sidMalayalam = 18,
sidThai = 19,
sidLao = 20,
sidTibetan = 21,
sidGeorgian = 22,
sidHangul = 23,
sidKana = 24,
sidBopomofo = 25,
sidHan = 26,
sidEthiopic = 27,
sidCanSyllabic = 28,
sidCherokee = 29,
sidYi = 30,
sidBraille = 31,
sidRunic = 32,
sidOgham = 33,
sidSinhala = 34,
sidSyriac = 35,
sidBurmese = 36,
sidKhmer = 37,
sidThaana = 38,
sidMongolian = 39,
sidUserDefined = 40,
sidLim = 41,
sidFEFirst = sidHangul,
sidFELast = sidHan
} SCRIPTCONTF;
/* Script information */
typedef struct tagSCRIPTINFO {
SCRIPT_ID ScriptId;
UINT uiCodePage;
WCHAR wszDescription[MAX_SCRIPT_NAME];
WCHAR wszFixedWidthFont[MAX_MIMEFACE_NAME];
WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
} SCRIPTINFO;
typedef SCRIPTINFO *PSCRIPTINFO;
/* Character set conversion flags */
typedef enum tagMLCONVCHARF {
MLCONVCHARF_AUTODETECT = 1,
MLCONVCHARF_ENTITIZE = 2,
MLCONVCHARF_NCR_ENTITIZE = 2,
MLCONVCHARF_NAME_ENTITIZE = 4,
MLCONVCHARF_USEDEFCHAR = 8,
MLCONVCHARF_NOBESTFITCHARS = 16,
MLCONVCHARF_DETECTJPN = 32
} MLCONVCHAR;
/* Code page flags */
typedef enum tagMLCPF {
MLDETECTF_MAILNEWS = 0x00000001,
MLDETECTF_BROWSER = 0x00000002,
MLDETECTF_VALID = 0x00000004,
MLDETECTF_VALID_NLS = 0x00000008,
MLDETECTF_PRESERVE_ORDER = 0x00000010,
MLDETECTF_PREFERRED_ONLY = 0x00000020,
MLDETECTF_FILTER_SPECIALCHAR = 0x00000040,
MLDETECTF_EURO_UTF8 = 0x00000080
} MLCP;
/* Code page detection flags */
typedef enum tagMLDETECTCP {
MLDETECTCP_NONE = 0,
MLDETECTCP_7BIT = 1,
MLDETECTCP_8BIT = 2,
MLDETECTCP_DBCS = 4,
MLDETECTCP_HTML = 8,
MLDETECTCP_NUMBER = 16
} MLDETECTCP;
/* Encoding detection information */
typedef struct tagDetectEncodingInfo {
UINT nLangID;
UINT nCodePage;
INT nDocPercent;
INT nConfidence;
} DetectEncodingInfo;
typedef DetectEncodingInfo *pDetectEncodingInfo;
/* Script font content flags */
typedef enum tagSCRIPTFONTCONTF {
SCRIPTCONTF_FIXED_FONT = 0x00000001,
SCRIPTCONTF_PROPORTIONAL_FONT = 0x00000002,
SCRIPTCONTF_SCRIPT_USER = 0x00010000,
SCRIPTCONTF_SCRIPT_HIDE = 0x00020000,
SCRIPTCONTF_SCRIPT_SYSTEM = 0x00040000
} SCRIPTFONTCONTF;
/* Script font information */
typedef struct tagSCRIPTFONTINFO {
SCRIPT_IDS scripts;
WCHAR wszFont[MAX_MIMEFACE_NAME];
} SCRIPTFONTINFO;
typedef SCRIPTFONTINFO *PSCRIPTFONTINFO;
/* Unicode range */
typedef struct tagUNICODERANGE {
WCHAR wcFrom;
WCHAR wcTo;
} UNICODERANGE;
/* GUIDs */
EXTERN_C const IID LIBID_MultiLanguage;
EXTERN_C const IID IID_IMLangStringBufW;
EXTERN_C const IID IID_IMLangStringBufA;
EXTERN_C const IID IID_IMLangString;
EXTERN_C const IID IID_IMLangStringWStr;
EXTERN_C const IID IID_IMLangStringAStr;
EXTERN_C const CLSID CLSID_CMLangString;
EXTERN_C const IID IID_IMLangLineBreakConsole;
EXTERN_C const IID IID_IEnumCodePage;
EXTERN_C const IID IID_IEnumRfc1766;
EXTERN_C const IID IID_IEnumScript;
EXTERN_C const IID IID_IMLangConvertCharset;
EXTERN_C const CLSID CLSID_CMLangConvertCharset;
EXTERN_C const IID IID_IMultiLanguage;
EXTERN_C const IID IID_IMultiLanguage2;
EXTERN_C const IID IID_IMLangCodePages;
EXTERN_C const IID IID_IMLangFontLink;
EXTERN_C const IID IID_IMLangFontLink2;
EXTERN_C const IID IID_IMultiLanguage3;
EXTERN_C const CLSID CLSID_CMultiLanguage;
/* IMLangStringBufW interface */
#undef INTERFACE
#define INTERFACE IMLangStringBufW
DECLARE_INTERFACE_( IMLangStringBufW, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangStringBufW methods */
STDMETHOD( GetStatus )( THIS_ long *, long * ) PURE;
STDMETHOD( LockBuf )( THIS_ long, long, WCHAR **, long * ) PURE;
STDMETHOD( UnlockBuf )( THIS_ const WCHAR *, long, long ) PURE;
STDMETHOD( Insert )( THIS_ long, long, long * ) PURE;
STDMETHOD( Delete )( THIS_ long, long ) PURE;
};
/* IMLangStringBufA interface */
#undef INTERFACE
#define INTERFACE IMLangStringBufA
DECLARE_INTERFACE_( IMLangStringBufA, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangStringBufA methods */
STDMETHOD( GetStatus )( THIS_ long *, long * ) PURE;
STDMETHOD( LockBuf )( THIS_ long, long, CHAR **, long * ) PURE;
STDMETHOD( UnlockBuf )( THIS_ const CHAR *, long, long ) PURE;
STDMETHOD( Insert )( THIS_ long, long, long * ) PURE;
STDMETHOD( Delete )( THIS_ long, long ) PURE;
};
/* IMLangString interface */
#undef INTERFACE
#define INTERFACE IMLangString
DECLARE_INTERFACE_( IMLangString, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangString methods */
STDMETHOD( Sync )( THIS_ BOOL ) PURE;
STDMETHOD( GetLength )( THIS_ long * ) PURE;
STDMETHOD( SetMLStr )( THIS_ long, long, IUnknown *, long, long ) PURE;
STDMETHOD( GetMLStr )( THIS_ long, long, IUnknown *, DWORD, const IID *, IUnknown **, long *, long * ) PURE;
};
/* IMLangStringWStr interface */
#undef INTERFACE
#define INTERFACE IMLangStringWStr
DECLARE_INTERFACE_( IMLangStringWStr, IMLangString ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangString methods */
STDMETHOD( Sync )( THIS_ BOOL ) PURE;
STDMETHOD( GetLength )( THIS_ long * ) PURE;
STDMETHOD( SetMLStr )( THIS_ long, long, IUnknown *, long, long ) PURE;
STDMETHOD( GetMLStr )( THIS_ long, long, IUnknown *, DWORD, const IID *, IUnknown **, long *, long * ) PURE;
/* IMLangStringWStr methods */
STDMETHOD( SetWStr )( THIS_ long, long, const WCHAR *, long, long *, long * ) PURE;
STDMETHOD( SetStrBufW )( THIS_ long, long, IMLangStringBufW *, long *, long * ) PURE;
STDMETHOD( GetWStr )( THIS_ long, long, WCHAR *, long, long *, long * ) PURE;
STDMETHOD( GetStrBufW )( THIS_ long, long, IMLangStringBufW **, long * ) PURE;
STDMETHOD( LockWStr )( THIS_ long, long, long, long, WCHAR **, long *, long * ) PURE;
STDMETHOD( UnlockWStr )( THIS_ const WCHAR *, long, long *, long * ) PURE;
STDMETHOD( SetLocale )( THIS_ long, long, LCID ) PURE;
STDMETHOD( GetLocale )( THIS_ long, long, LCID *, long *, long * ) PURE;
};
/* IMLangStringAStr interface */
#undef INTERFACE
#define INTERFACE IMLangStringAStr
DECLARE_INTERFACE_( IMLangStringAStr, IMLangString ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangString methods */
STDMETHOD( Sync )( THIS_ BOOL ) PURE;
STDMETHOD( GetLength )( THIS_ long * ) PURE;
STDMETHOD( SetMLStr )( THIS_ long, long, IUnknown *, long, long ) PURE;
STDMETHOD( GetMLStr )( THIS_ long, long, IUnknown *, DWORD, const IID *, IUnknown **, long *, long * ) PURE;
/* IMLangStringAStr methods */
STDMETHOD( SetAStr )( THIS_ long, long, UINT, const CHAR *, long, long *, long * ) PURE;
STDMETHOD( SetStrBufA )( THIS_ long, long, UINT, IMLangStringBufA *, long *, long * ) PURE;
STDMETHOD( GetAStr )( THIS_ long, long, UINT, UINT *, CHAR *, long, long *, long * ) PURE;
STDMETHOD( GetStrBufA )( THIS_ long, long, UINT *, IMLangStringBufA **, long * ) PURE;
STDMETHOD( LockAStr )( THIS_ long, long, long, UINT, long, UINT *, CHAR **, long *, long * ) PURE;
STDMETHOD( UnlockAStr )( THIS_ const CHAR *, long, long *, long * ) PURE;
STDMETHOD( SetLocale )( THIS_ long, long, LCID ) PURE;
STDMETHOD( GetLocale )( THIS_ long, long, LCID *, long *, long * ) PURE;
};
/* IMLangLineBreakConsole interface */
#undef INTERFACE
#define INTERFACE IMLangLineBreakConsole
DECLARE_INTERFACE_( IMLangLineBreakConsole, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangLineBreakConsole methods */
STDMETHOD( BreakLineML )( THIS_ IMLangString *, long, long, long, long, long *, long * ) PURE;
STDMETHOD( BreakLineW )( THIS_ LCID, const WCHAR *, long, long, long *, long * ) PURE;
STDMETHOD( BreakLineA )( THIS_ LCID, UINT, const CHAR *, long, long, long *, long * ) PURE;
};
/* IEnumCodePage interface */
#undef INTERFACE
#define INTERFACE IEnumCodePage
DECLARE_INTERFACE_( IEnumCodePage, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumCodePage methods */
STDMETHOD( Clone )( THIS_ IEnumCodePage ** ) PURE;
STDMETHOD( Next )( THIS_ ULONG, PMIMECPINFO, ULONG * ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
};
typedef IEnumCodePage *LPENUMCODEPAGE;
/* IEnumRfc1766 interface */
#undef INTERFACE
#define INTERFACE IEnumRfc1766
DECLARE_INTERFACE_( IEnumRfc1766, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumRfc1766 methods */
STDMETHOD( Clone )( THIS_ IEnumRfc1766 ** ) PURE;
STDMETHOD( Next )( THIS_ ULONG, PRFC1766INFO, ULONG * ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
};
typedef IEnumRfc1766 *LPENUMRFC1766;
/* IEnumScript interface */
#undef INTERFACE
#define INTERFACE IEnumScript
DECLARE_INTERFACE_( IEnumScript, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumScript methods */
STDMETHOD( Clone )( THIS_ IEnumScript ** ) PURE;
STDMETHOD( Next )( THIS_ ULONG, PSCRIPTINFO, ULONG * ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
};
typedef IEnumScript *LPENUMScript;
/* IMLangConvertCharset interface */
#undef INTERFACE
#define INTERFACE IMLangConvertCharset
DECLARE_INTERFACE_( IMLangConvertCharset, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangConvertCharset methods */
STDMETHOD( Initialize )( THIS_ UINT, UINT, DWORD ) PURE;
STDMETHOD( GetSourceCodePage )( THIS_ UINT * ) PURE;
STDMETHOD( GetDestinationCodePage )( THIS_ UINT * ) PURE;
STDMETHOD( GetProperty )( THIS_ DWORD * ) PURE;
STDMETHOD( DoConversion )( THIS_ BYTE *, UINT *, BYTE *, UINT * ) PURE;
STDMETHOD( DoConversionToUnicode )( THIS_ CHAR *, UINT *, WCHAR *, UINT * ) PURE;
STDMETHOD( DoConversionFromUnicode )( THIS_ WCHAR *, UINT *, CHAR *, UINT * ) PURE;
};
typedef IMLangConvertCharset *LPMLANGCONVERTCHARSET;
/* IMultiLanguage interface */
#undef INTERFACE
#define INTERFACE IMultiLanguage
DECLARE_INTERFACE_( IMultiLanguage, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMultiLanguage methods */
STDMETHOD( GetNumberOfCodePageInfo )( THIS_ UINT * ) PURE;
STDMETHOD( GetCodePageInfo )( THIS_ UINT, PMIMECPINFO ) PURE;
STDMETHOD( GetFamilyCodePage )( THIS_ UINT, UINT * ) PURE;
STDMETHOD( EnumCodePages )( THIS_ DWORD, IEnumCodePage ** ) PURE;
STDMETHOD( GetCharsetInfo )( THIS_ BSTR, PMIMECSETINFO ) PURE;
STDMETHOD( IsConvertible )( THIS_ DWORD, DWORD ) PURE;
STDMETHOD( ConvertString )( THIS_ DWORD *, DWORD, DWORD, BYTE *, UINT *, BYTE *, UINT * ) PURE;
STDMETHOD( ConvertStringToUnicode )( THIS_ DWORD *, DWORD, CHAR *, UINT *, WCHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringFromUnicode )( THIS_ DWORD *, DWORD, WCHAR *, UINT *, CHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringReset )( THIS ) PURE;
STDMETHOD( GetRfc1766FromLcid )( THIS_ LCID, BSTR * ) PURE;
STDMETHOD( GetLcidFromRfc1766 )( THIS_ LCID *, BSTR ) PURE;
STDMETHOD( EnumRfc1766 )( THIS_ IEnumRfc1766 ** ) PURE;
STDMETHOD( GetRfc1766Info )( THIS_ LCID, PRFC1766INFO ) PURE;
STDMETHOD( CreateConvertCharset )( THIS_ UINT, UINT, DWORD, IMLangConvertCharset ** ) PURE;
};
typedef IMultiLanguage *LPMULTILANGUAGE;
/* IMultiLanguage2 interface */
#undef INTERFACE
#define INTERFACE IMultiLanguage2
DECLARE_INTERFACE_( IMultiLanguage2, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMultiLanguage2 methods */
STDMETHOD( GetNumberOfCodePageInfo )( THIS_ UINT * ) PURE;
STDMETHOD( GetCodePageInfo )( THIS_ UINT, PMIMECPINFO ) PURE;
STDMETHOD( GetFamilyCodePage )( THIS_ UINT, UINT * ) PURE;
STDMETHOD( EnumCodePages )( THIS_ DWORD, IEnumCodePage ** ) PURE;
STDMETHOD( GetCharsetInfo )( THIS_ BSTR, PMIMECSETINFO ) PURE;
STDMETHOD( IsConvertible )( THIS_ DWORD, DWORD ) PURE;
STDMETHOD( ConvertString )( THIS_ DWORD *, DWORD, DWORD, BYTE *, UINT *, BYTE *, UINT * ) PURE;
STDMETHOD( ConvertStringToUnicode )( THIS_ DWORD *, DWORD, CHAR *, UINT *, WCHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringFromUnicode )( THIS_ DWORD *, DWORD, WCHAR *, UINT *, CHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringReset )( THIS ) PURE;
STDMETHOD( GetRfc1766FromLcid )( THIS_ LCID, BSTR * ) PURE;
STDMETHOD( GetLcidFromRfc1766 )( THIS_ LCID *, BSTR ) PURE;
STDMETHOD( EnumRfc1766 )( THIS_ IEnumRfc1766 ** ) PURE;
STDMETHOD( GetRfc1766Info )( THIS_ LCID, PRFC1766INFO ) PURE;
STDMETHOD( CreateConvertCharset )( THIS_ UINT, UINT, DWORD, IMLangConvertCharset ** ) PURE;
STDMETHOD( ConvertStringInIStream )( THIS_ DWORD *, DWORD, WCHAR *, DWORD, DWORD, IStream *, IStream * ) PURE;
STDMETHOD( ConvertStringToUnicodeEx )( THIS_ DWORD *, DWORD, CHAR *, UINT *, WCHAR *, UINT *, DWORD, WCHAR * ) PURE;
STDMETHOD( ConvertStringFromUnicodeEx )( THIS_ DWORD *, DWORD, WCHAR *, UINT *, CHAR *, UINT *, DWORD, WCHAR * ) PURE;
STDMETHOD( DetectCodepageInIStream )( THIS_ DWORD, DWORD, IStream *, DetectEncodingInfo *, INT * ) PURE;
STDMETHOD( DetectInputCodepage )( THIS_ DWORD, DWORD, CHAR *, INT *, DetectEncodingInfo *, INT * ) PURE;
STDMETHOD( ValidateCodePage )( THIS_ UINT, HWND ) PURE;
STDMETHOD( GetCodePageDescription )( THIS_ UINT, LCID, LPWSTR, int ) PURE;
STDMETHOD( IsCodePageInstallable )( THIS_ UINT ) PURE;
STDMETHOD( SetMimeDBSource )( THIS_ MIMECONTF ) PURE;
STDMETHOD( GetNumberOfScripts )( THIS_ UINT * ) PURE;
STDMETHOD( EnumScripts )( THIS_ DWORD, LANGID, IEnumScript ** ) PURE;
STDMETHOD( ValidateCodePageEx )( THIS_ UINT, HWND, DWORD ) PURE;
};
typedef IMultiLanguage2 *LPMULTILANGUAGE2;
/* IMLangCodePages interface */
#undef INTERFACE
#define INTERFACE IMLangCodePages
DECLARE_INTERFACE_( IMLangCodePages, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangCodePages methods */
STDMETHOD( GetCharCodePages )( THIS_ WCHAR, DWORD * ) PURE;
STDMETHOD( GetStrCodePages )( THIS_ const WCHAR *, long, DWORD, DWORD *, long * ) PURE;
STDMETHOD( CodePageToCodePages )( THIS_ UINT, DWORD * ) PURE;
STDMETHOD( CodePagesToCodePage )( THIS_ DWORD, UINT, UINT * ) PURE;
};
typedef IMLangCodePages *LPMLANGCODEPAGES;
/* IMLangFontLink interface */
#undef INTERFACE
#define INTERFACE IMLangFontLink
DECLARE_INTERFACE_( IMLangFontLink, IMLangCodePages ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangCodePages methods */
STDMETHOD( GetCharCodePages )( THIS_ WCHAR, DWORD * ) PURE;
STDMETHOD( GetStrCodePages )( THIS_ const WCHAR *, long, DWORD, DWORD *, long * ) PURE;
STDMETHOD( CodePageToCodePages )( THIS_ UINT, DWORD * ) PURE;
STDMETHOD( CodePagesToCodePage )( THIS_ DWORD, UINT, UINT * ) PURE;
/* IMLangFontLink methods */
STDMETHOD( GetFontCodePages )( THIS_ HDC, HFONT, DWORD * ) PURE;
STDMETHOD( MapFont )( THIS_ HDC, DWORD, HFONT, HFONT * ) PURE;
STDMETHOD( ReleaseFont )( THIS_ HFONT ) PURE;
STDMETHOD( ResetFontMapping )( THIS ) PURE;
};
typedef IMLangFontLink *LPMLANGFONTLINK;
/* IMLangFontLink2 interface */
#undef INTERFACE
#define INTERFACE IMLangFontLink2
DECLARE_INTERFACE_( IMLangFontLink2, IMLangCodePages ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMLangCodePages methods */
STDMETHOD( GetCharCodePages )( THIS_ WCHAR, DWORD * ) PURE;
STDMETHOD( GetStrCodePages )( THIS_ const WCHAR *, long, DWORD, DWORD *, long * ) PURE;
STDMETHOD( CodePageToCodePages )( THIS_ UINT, DWORD * ) PURE;
STDMETHOD( CodePagesToCodePage )( THIS_ DWORD, UINT, UINT * ) PURE;
/* IMLangFontLink2 methods */
STDMETHOD( GetFontCodePages )( THIS_ HDC, HFONT, DWORD * ) PURE;
STDMETHOD( ReleaseFont )( THIS_ HFONT ) PURE;
STDMETHOD( ResetFontMapping )( THIS ) PURE;
STDMETHOD( MapFont )( THIS_ HDC, DWORD, HFONT, HFONT * ) PURE;
STDMETHOD( GetFontUnicodeRanges )( THIS_ HDC, UINT *, UNICODERANGE * ) PURE;
STDMETHOD( GetScriptFontInfo )( THIS_ SCRIPT_ID, DWORD, UINT *, SCRIPTFONTINFO * ) PURE;
STDMETHOD( CodePageToScriptID )( THIS_ UINT, SCRIPT_ID * ) PURE;
};
typedef IMLangFontLink2 *LPMLANGFONTLINK2;
/* IMultiLanguage3 interface */
#undef INTERFACE
#define INTERFACE IMultiLanguage3
DECLARE_INTERFACE_( IMultiLanguage3, IMultiLanguage2 ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMultiLanguage2 methods */
STDMETHOD( GetNumberOfCodePageInfo )( THIS_ UINT * ) PURE;
STDMETHOD( GetCodePageInfo )( THIS_ UINT, PMIMECPINFO ) PURE;
STDMETHOD( GetFamilyCodePage )( THIS_ UINT, UINT * ) PURE;
STDMETHOD( EnumCodePages )( THIS_ DWORD, IEnumCodePage ** ) PURE;
STDMETHOD( GetCharsetInfo )( THIS_ BSTR, PMIMECSETINFO ) PURE;
STDMETHOD( IsConvertible )( THIS_ DWORD, DWORD ) PURE;
STDMETHOD( ConvertString )( THIS_ DWORD *, DWORD, DWORD, BYTE *, UINT *, BYTE *, UINT * ) PURE;
STDMETHOD( ConvertStringToUnicode )( THIS_ DWORD *, DWORD, CHAR *, UINT *, WCHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringFromUnicode )( THIS_ DWORD *, DWORD, WCHAR *, UINT *, CHAR *, UINT * ) PURE;
STDMETHOD( ConvertStringReset )( THIS ) PURE;
STDMETHOD( GetRfc1766FromLcid )( THIS_ LCID, BSTR * ) PURE;
STDMETHOD( GetLcidFromRfc1766 )( THIS_ LCID *, BSTR ) PURE;
STDMETHOD( EnumRfc1766 )( THIS_ IEnumRfc1766 ** ) PURE;
STDMETHOD( GetRfc1766Info )( THIS_ LCID, PRFC1766INFO ) PURE;
STDMETHOD( CreateConvertCharset )( THIS_ UINT, UINT, DWORD, IMLangConvertCharset ** ) PURE;
STDMETHOD( ConvertStringInIStream )( THIS_ DWORD *, DWORD, WCHAR *, DWORD, DWORD, IStream *, IStream * ) PURE;
STDMETHOD( ConvertStringToUnicodeEx )( THIS_ DWORD *, DWORD, CHAR *, UINT *, WCHAR *, UINT *, DWORD, WCHAR * ) PURE;
STDMETHOD( ConvertStringFromUnicodeEx )( THIS_ DWORD *, DWORD, WCHAR *, UINT *, CHAR *, UINT *, DWORD, WCHAR * ) PURE;
STDMETHOD( DetectCodepageInIStream )( THIS_ DWORD, DWORD, IStream *, DetectEncodingInfo *, INT * ) PURE;
STDMETHOD( DetectInputCodepage )( THIS_ DWORD, DWORD, CHAR *, INT *, DetectEncodingInfo *, INT * ) PURE;
STDMETHOD( ValidateCodePage )( THIS_ UINT, HWND ) PURE;
STDMETHOD( GetCodePageDescription )( THIS_ UINT, LCID, LPWSTR, int ) PURE;
STDMETHOD( IsCodePageInstallable )( THIS_ UINT ) PURE;
STDMETHOD( SetMimeDBSource )( THIS_ MIMECONTF ) PURE;
STDMETHOD( GetNumberOfScripts )( THIS_ UINT * ) PURE;
STDMETHOD( EnumScripts )( THIS_ DWORD, LANGID, IEnumScript ** ) PURE;
STDMETHOD( ValidateCodePageEx )( THIS_ UINT, HWND, DWORD ) PURE;
/* IMultiLanguage3 methods */
STDMETHOD( DetectOutboundCodePage )( THIS_ DWORD, LPCWSTR, UINT, UINT *, UINT, UINT *, UINT *, WCHAR * ) PURE;
STDMETHOD( DetectOutboundCodePageInIStream )( THIS_ DWORD, IStream *, UINT *, UINT, UINT *, UINT *, WCHAR * ) PURE;
};
typedef IMultiLanguage3 *LPMULTILANGUAGE3;
/* C object macros */
#if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS )
#define IMLangStringBufW_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangStringBufW_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangStringBufW_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangStringBufW_GetStatus( x, p1, p2 ) \
(x)->lpVtbl->GetStatus( x, p1, p2 )
#define IMLangStringBufW_LockBuf( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->LockBuf( x, p1, p2, p3, p4 )
#define IMLangStringBufW_UnlockBuf( x, p1, p2, p3 ) \
(x)->lpVtbl->UnlockBuf( x, p1, p2, p3 )
#define IMLangStringBufW_Insert( x, p1, p2, p3 ) \
(x)->lpVtbl->Insert( x, p1, p2, p3 )
#define IMLangStringBufW_Delete( x, p1, p2 ) \
(x)->lpVtbl->Delete( x, p1, p2 )
#define IMLangStringBufA_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangStringBufA_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangStringBufA_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangStringBufA_GetStatus( x, p1, p2 ) \
(x)->lpVtbl->GetStatus( x, p1, p2 )
#define IMLangStringBufA_LockBuf( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->LockBuf( x, p1, p2, p3, p4 )
#define IMLangStringBufA_UnlockBuf( x, p1, p2, p3 ) \
(x)->lpVtbl->UnlockBuf( x, p1, p2, p3 )
#define IMLangStringBufA_Insert( x, p1, p2, p3 ) \
(x)->lpVtbl->Insert( x, p1, p2, p3 )
#define IMLangStringBufA_Delete( x, p1, p2 ) \
(x)->lpVtbl->Delete( x, p1, p2 )
#define IMLangString_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangString_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangString_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangString_Sync( x, p ) \
(x)->lpVtbl->Sync( x, p )
#define IMLangString_GetLength( x, p ) \
(x)->lpVtbl->GetLength( x, p )
#define IMLangString_SetMLStr( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetMLStr( x, p1, p2, p3, p4, p5 )
#define IMLangString_GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMLangStringWStr_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangStringWStr_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangStringWStr_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangStringWStr_Sync( x, p ) \
(x)->lpVtbl->Sync( x, p )
#define IMLangStringWStr_GetLength( x, p ) \
(x)->lpVtbl->GetLength( x, p )
#define IMLangStringWStr_SetMLStr( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetMLStr( x, p1, p2, p3, p4, p5 )
#define IMLangStringWStr_GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMLangStringWStr_SetWStr( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->SetWStr( x, p1, p2, p3, p4, p5, p6 )
#define IMLangStringWStr_SetStrBufW( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetStrBufW( x, p1, p2, p3, p4, p5 )
#define IMLangStringWStr_GetWStr( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetWStr( x, p1, p2, p3, p4, p5, p6 )
#define IMLangStringWStr_GetStrBufW( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetStrBufW( x, p1, p2, p3, p4 )
#define IMLangStringWStr_LockWStr( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->LockWStr( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMLangStringWStr_UnlockWStr( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->UnlockWStr( x, p1, p2, p3, p4 )
#define IMLangStringWStr_SetLocale( x, p1, p2, p3 ) \
(x)->lpVtbl->SetLocale( x, p1, p2, p3 )
#define IMLangStringWStr_GetLocale( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetLocale( x, p1, p2, p3, p4, p5 )
#define IMLangStringWStr_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangStringAStr_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangStringAStr_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangStringAStr_Sync( x, p ) \
(x)->lpVtbl->Sync( x, p )
#define IMLangStringAStr_GetLength( x, p ) \
(x)->lpVtbl->GetLength( x, p )
#define IMLangStringAStr_SetMLStr( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->SetMLStr( x, p1, p2, p3, p4, p5 )
#define IMLangStringAStr_GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->GetMLStr( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMLangStringAStr_SetAStr( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->SetAStr( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMLangStringAStr_SetStrBufA( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->SetStrBufA( x, p1, p2, p3, p4, p5, p6 )
#define IMLangStringAStr_GetAStr( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->GetAStr( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMLangStringAStr_GetStrBufA( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetStrBufA( x, p1, p2, p3, p4, p5 )
#define IMLangStringAStr_LockAStr( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->LockAStr( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IMLangStringAStr_UnlockAStr( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->UnlockAStr( x, p1, p2, p3, p4 )
#define IMLangStringAStr_SetLocale( x, p1, p2, p3 ) \
(x)->lpVtbl->SetLocale( x, p1, p2, p3 )
#define IMLangStringAStr_GetLocale( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetLocale( x, p1, p2, p3, p4, p5 )
#define IMLangLineBreakConsole_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangLineBreakConsole_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangLineBreakConsole_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangLineBreakConsole_BreakLineML( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->BreakLineML( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMLangLineBreakConsole_BreakLineW( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->BreakLineW( x, p1, p2, p3, p4, p5, p6 )
#define IMLangLineBreakConsole_BreakLineA( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->BreakLineA( x, p1, p2, p3, p4, p5, p6, p7 )
#define IEnumCodePage_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumCodePage_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumCodePage_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumCodePage_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IEnumCodePage_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumCodePage_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumCodePage_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumRfc1766_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumRfc1766_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumRfc1766_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumRfc1766_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IEnumRfc1766_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumRfc1766_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumRfc1766_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumScript_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumScript_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumScript_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumScript_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IEnumScript_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumScript_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumScript_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IMLangConvertCharset_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangConvertCharset_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangConvertCharset_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangConvertCharset_Initialize( x, p1, p2, p3 ) \
(x)->lpVtbl->Initialize( x, p1, p2, p3 )
#define IMLangConvertCharset_GetSourceCodePage( x, p ) \
(x)->lpVtbl->GetSourceCodePage( x, p )
#define IMLangConvertCharset_GetDestinationCodePage( x, p ) \
(x)->lpVtbl->GetDestinationCodePage( x, p )
#define IMLangConvertCharset_GetProperty( x, p ) \
(x)->lpVtbl->GetProperty( x, p )
#define IMLangConvertCharset_DoConversion( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->DoConversion( x, p1, p2, p3, p4 )
#define IMLangConvertCharset_DoConversionToUnicode( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->DoConversionToUnicode( x, p1, p2, p3, p4 )
#define IMLangConvertCharset_DoConversionFromUnicode( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->DoConversionFromUnicode( x, p1, p2, p3, p4 )
#define IMultiLanguage_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMultiLanguage_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMultiLanguage_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMultiLanguage_GetNumberOfCodePageInfo( x, p ) \
(x)->lpVtbl->GetNumberOfCodePageInfo( x, p )
#define IMultiLanguage_GetCodePageInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCodePageInfo( x, p1, p2 )
#define IMultiLanguage_GetFamilyCodePage( x, p1, p2 ) \
(x)->lpVtbl->GetFamilyCodePage( x, p1, p2 )
#define IMultiLanguage_EnumCodePages( x, p1, p2 ) \
(x)->lpVtbl->EnumCodePages( x, p1, p2 )
#define IMultiLanguage_GetCharsetInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCharsetInfo( x, p1, p2 )
#define IMultiLanguage_IsConvertible( x, p1, p2 ) \
(x)->lpVtbl->IsConvertible( x, p1, p2 )
#define IMultiLanguage_ConvertString( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ConvertString( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMultiLanguage_ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage_ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage_ConvertStringReset( x ) \
(x)->lpVtbl->ConvertStringReset( x )
#define IMultiLanguage_GetRfc1766FromLcid( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766FromLcid( x, p1, p2 )
#define IMultiLanguage_GetLcidFromRfc1766( x, p1, p2 ) \
(x)->lpVtbl->GetLcidFromRfc1766( x, p1, p2 )
#define IMultiLanguage_EnumRfc1766( x, p ) \
(x)->lpVtbl->EnumRfc1766( x, p )
#define IMultiLanguage_GetRfc1766Info( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766Info( x, p1, p2 )
#define IMultiLanguage_CreateConvertCharset( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CreateConvertCharset( x, p1, p2, p3, p4 )
#define IMultiLanguage2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMultiLanguage2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMultiLanguage2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMultiLanguage2_GetNumberOfCodePageInfo( x, p ) \
(x)->lpVtbl->GetNumberOfCodePageInfo( x, p )
#define IMultiLanguage2_GetCodePageInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCodePageInfo( x, p1, p2 )
#define IMultiLanguage2_GetFamilyCodePage( x, p1, p2 ) \
(x)->lpVtbl->GetFamilyCodePage( x, p1, p2 )
#define IMultiLanguage2_EnumCodePages( x, p1, p2 ) \
(x)->lpVtbl->EnumCodePages( x, p1, p2 )
#define IMultiLanguage2_GetCharsetInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCharsetInfo( x, p1, p2 )
#define IMultiLanguage2_IsConvertible( x, p1, p2 ) \
(x)->lpVtbl->IsConvertible( x, p1, p2 )
#define IMultiLanguage2_ConvertString( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ConvertString( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMultiLanguage2_ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage2_ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage2_ConvertStringReset( x ) \
(x)->lpVtbl->ConvertStringReset( x )
#define IMultiLanguage2_GetRfc1766FromLcid( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766FromLcid( x, p1, p2 )
#define IMultiLanguage2_GetLcidFromRfc1766( x, p1, p2 ) \
(x)->lpVtbl->GetLcidFromRfc1766( x, p1, p2 )
#define IMultiLanguage2_EnumRfc1766( x, p ) \
(x)->lpVtbl->EnumRfc1766( x, p )
#define IMultiLanguage2_GetRfc1766Info( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766Info( x, p1, p2 )
#define IMultiLanguage2_CreateConvertCharset( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CreateConvertCharset( x, p1, p2, p3, p4 )
#define IMultiLanguage2_ConvertStringInIStream( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ConvertStringInIStream( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMultiLanguage2_ConvertStringToUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ConvertStringToUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMultiLanguage2_ConvertStringFromUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ConvertStringFromUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMultiLanguage2_DetectCodepageInIStream( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->DetectCodepageInIStream( x, p1, p2, p3, p4, p5 )
#define IMultiLanguage2_DetectInputCodepage( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->DetectInputCodepage( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage2_ValidateCodePage( x, p1, p2 ) \
(x)->lpVtbl->ValidateCodePage( x, p1, p2 )
#define IMultiLanguage2_GetCodePageDescription( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetCodePageDescription( x, p1, p2, p3, p4 )
#define IMultiLanguage2_IsCodePageInstallable( x, p ) \
(x)->lpVtbl->IsCodePageInstallable( x, p )
#define IMultiLanguage2_SetMimeDBSource( x, p ) \
(x)->lpVtbl->SetMimeDBSource( x, p )
#define IMultiLanguage2_GetNumberOfScripts( x, p ) \
(x)->lpVtbl->GetNumberOfScripts( x, p )
#define IMultiLanguage2_EnumScripts( x, p1, p2, p3 ) \
(x)->lpVtbl->EnumScripts( x, p1, p2, p3 )
#define IMultiLanguage2_ValidateCodePageEx( x, p1, p2, p3 ) \
(x)->lpVtbl->ValidateCodePageEx( x, p1, p2, p3 )
#define IMLangCodePages_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangCodePages_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangCodePages_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangCodePages_GetCharCodePages( x, p1, p2 ) \
(x)->lpVtbl->GetCharCodePages( x, p1, p2 )
#define IMLangCodePages_GetStrCodePages( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetStrCodePages( x, p1, p2, p3, p4, p5 )
#define IMLangCodePages_CodePageToCodePages( x, p1, p2 ) \
(x)->lpVtbl->CodePageToCodePages( x, p1, p2 )
#define IMLangCodePages_CodePagesToCodePage( x, p1, p2, p3 ) \
(x)->lpVtbl->CodePagesToCodePage( x, p1, p2, p3 )
#define IMLangFontLink_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangFontLink_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangFontLink_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangFontLink_GetCharCodePages( x, p1, p2 ) \
(x)->lpVtbl->GetCharCodePages( x, p1, p2 )
#define IMLangFontLink_GetStrCodePages( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetStrCodePages( x, p1, p2, p3, p4, p5 )
#define IMLangFontLink_CodePageToCodePages( x, p1, p2 ) \
(x)->lpVtbl->CodePageToCodePages( x, p1, p2 )
#define IMLangFontLink_CodePagesToCodePage( x, p1, p2, p3 ) \
(x)->lpVtbl->CodePagesToCodePage( x, p1, p2, p3 )
#define IMLangFontLink_GetFontCodePages( x, p1, p2, p3 ) \
(x)->lpVtbl->GetFontCodePages( x, p1, p2, p3 )
#define IMLangFontLink_MapFont( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->MapFont( x, p1, p2, p3, p4 )
#define IMLangFontLink_ReleaseFont( x, p ) \
(x)->lpVtbl->ReleaseFont( x, p )
#define IMLangFontLink_ResetFontMapping( x ) \
(x)->lpVtbl->ResetFontMapping( x )
#define IMLangFontLink2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMLangFontLink2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMLangFontLink2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMLangFontLink2_GetCharCodePages( x, p1, p2 ) \
(x)->lpVtbl->GetCharCodePages( x, p1, p2 )
#define IMLangFontLink2_GetStrCodePages( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetStrCodePages( x, p1, p2, p3, p4, p5 )
#define IMLangFontLink2_CodePageToCodePages( x, p1, p2 ) \
(x)->lpVtbl->CodePageToCodePages( x, p1, p2 )
#define IMLangFontLink2_CodePagesToCodePage( x, p1, p2, p3 ) \
(x)->lpVtbl->CodePagesToCodePage( x, p1, p2, p3 )
#define IMLangFontLink2_GetFontCodePages( x, p1, p2, p3 ) \
(x)->lpVtbl->GetFontCodePages( x, p1, p2, p3 )
#define IMLangFontLink2_ReleaseFont( x, p ) \
(x)->lpVtbl->ReleaseFont( x, p )
#define IMLangFontLink2_ResetFontMapping( x ) \
(x)->lpVtbl->ResetFontMapping( x )
#define IMLangFontLink2_MapFont( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->MapFont( x, p1, p2, p3, p4 )
#define IMLangFontLink2_GetFontUnicodeRanges( x, p1, p2, p3 ) \
(x)->lpVtbl->GetFontUnicodeRanges( x, p1, p2, p3 )
#define IMLangFontLink2_GetScriptFontInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetScriptFontInfo( x, p1, p2, p3, p4 )
#define IMLangFontLink2_CodePageToScriptID( x, p1, p2 ) \
(x)->lpVtbl->CodePageToScriptID( x, p1, p2 )
#define IMultiLanguage3_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMultiLanguage3_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMultiLanguage3_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMultiLanguage3_GetNumberOfCodePageInfo( x, p ) \
(x)->lpVtbl->GetNumberOfCodePageInfo( x, p )
#define IMultiLanguage3_GetCodePageInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCodePageInfo( x, p1, p2 )
#define IMultiLanguage3_GetFamilyCodePage( x, p1, p2 ) \
(x)->lpVtbl->GetFamilyCodePage( x, p1, p2 )
#define IMultiLanguage3_EnumCodePages( x, p1, p2 ) \
(x)->lpVtbl->EnumCodePages( x, p1, p2 )
#define IMultiLanguage3_GetCharsetInfo( x, p1, p2 ) \
(x)->lpVtbl->GetCharsetInfo( x, p1, p2 )
#define IMultiLanguage3_IsConvertible( x, p1, p2 ) \
(x)->lpVtbl->IsConvertible( x, p1, p2 )
#define IMultiLanguage3_ConvertString( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ConvertString( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMultiLanguage3_ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringToUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage3_ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ConvertStringFromUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage3_ConvertStringReset( x ) \
(x)->lpVtbl->ConvertStringReset( x )
#define IMultiLanguage3_GetRfc1766FromLcid( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766FromLcid( x, p1, p2 )
#define IMultiLanguage3_GetLcidFromRfc1766( x, p1, p2 ) \
(x)->lpVtbl->GetLcidFromRfc1766( x, p1, p2 )
#define IMultiLanguage3_EnumRfc1766( x, p ) \
(x)->lpVtbl->EnumRfc1766( x, p )
#define IMultiLanguage3_GetRfc1766Info( x, p1, p2 ) \
(x)->lpVtbl->GetRfc1766Info( x, p1, p2 )
#define IMultiLanguage3_CreateConvertCharset( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CreateConvertCharset( x, p1, p2, p3, p4 )
#define IMultiLanguage3_ConvertStringInIStream( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ConvertStringInIStream( x, p1, p2, p3, p4, p5, p6, p7 )
#define IMultiLanguage3_ConvertStringToUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ConvertStringToUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMultiLanguage3_ConvertStringFromUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->ConvertStringFromUnicodeEx( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMultiLanguage3_DetectCodepageInIStream( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->DetectCodepageInIStream( x, p1, p2, p3, p4, p5 )
#define IMultiLanguage3_DetectInputCodepage( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->DetectInputCodepage( x, p1, p2, p3, p4, p5, p6 )
#define IMultiLanguage3_ValidateCodePage( x, p1, p2 ) \
(x)->lpVtbl->ValidateCodePage( x, p1, p2 )
#define IMultiLanguage3_GetCodePageDescription( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetCodePageDescription( x, p1, p2, p3, p4 )
#define IMultiLanguage3_IsCodePageInstallable( x, p ) \
(x)->lpVtbl->IsCodePageInstallable( x, p )
#define IMultiLanguage3_SetMimeDBSource( x, p ) \
(x)->lpVtbl->SetMimeDBSource( x, p )
#define IMultiLanguage3_GetNumberOfScripts( x, p ) \
(x)->lpVtbl->GetNumberOfScripts( x, p )
#define IMultiLanguage3_EnumScripts( x, p1, p2, p3 ) \
(x)->lpVtbl->EnumScripts( x, p1, p2, p3 )
#define IMultiLanguage3_ValidateCodePageEx( x, p1, p2, p3 ) \
(x)->lpVtbl->ValidateCodePageEx( x, p1, p2, p3 )
#define IMultiLanguage3_DetectOutboundCodePage( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->DetectOutboundCodePage( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IMultiLanguage3_DetectOutboundCodePageInIStream( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->DetectOutboundCodePageInIStream( x, p1, p2, p3, p4, p5, p6, p7 )
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __mlang_h__ */