home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / mlang.idl < prev    next >
Text File  |  1998-04-25  |  21KB  |  503 lines

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright 1992 - 1998 Microsoft Corporation.
  5. //
  6. //  File: mlang.idl
  7. //
  8. //  Contents: IMultiLanguage interface definition
  9. //
  10. //
  11. //--------------------------------------------------------------------------
  12.  
  13. cpp_quote("//=--------------------------------------------------------------------------=")
  14. cpp_quote("// MLang.h                                                                    ")
  15. cpp_quote("//=--------------------------------------------------------------------------=")
  16. cpp_quote("// (C) Copyright 1995 - 1998 Microsoft Corporation.  All Rights Reserved.       ")
  17. cpp_quote("//                                                                            ")
  18. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF        ")
  19. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO        ")
  20. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A             ")
  21. cpp_quote("// PARTICULAR PURPOSE.                                                        ")
  22. cpp_quote("//=--------------------------------------------------------------------------=")
  23. cpp_quote("                                                                              ")
  24. cpp_quote("#pragma comment(lib,\"uuid.lib\")                                             ")
  25. cpp_quote("                                                                              ")
  26. cpp_quote("//----------------------------------------------------------------------------")
  27. cpp_quote("// IMultiLanguage Interfaces.                                                 ")
  28. cpp_quote("                                                                              ")
  29.  
  30. #ifndef DO_NO_IMPORTS
  31. import "unknwn.idl";
  32. #endif
  33.  
  34. [
  35.     uuid(275c23e0-3747-11d0-9fea-00aa003f8646),
  36.     helpstring("MultiLanguage Object Model"),
  37.     lcid(0x0000),
  38.     version(0.2)
  39. ]
  40. library MultiLanguage
  41. {
  42.     importlib("stdole2.tlb");
  43.  
  44.     typedef enum tagMLSTR_FLAGS
  45.     {
  46.         MLSTR_READ                  = 1,
  47.         MLSTR_WRITE                 = 2
  48.     } MLSTR_FLAGS;
  49.  
  50.     [
  51.         uuid(D24ACD21-BA72-11D0-B188-00AA0038C969),
  52.         helpstring("IMLangStringBufW Interface"),
  53.         pointer_default(unique)
  54.     ]
  55.     interface IMLangStringBufW : IUnknown
  56.     {
  57.         [helpstring("method GetStatus")] HRESULT GetStatus([out] long* plFlags, [out] long* pcchBuf);
  58.         [helpstring("method LockBuf")] HRESULT LockBuf([in] long cchOffset, [in] long cchMaxLock, [out, size_is(,*pcchBuf)] WCHAR** ppszBuf, [out] long* pcchBuf);
  59.         [helpstring("method UnlockBuf")] HRESULT UnlockBuf([in, size_is(cchWrite - cchOffset)] const WCHAR* pszBuf, [in] long cchOffset, [in] long cchWrite);
  60.         [helpstring("method Insert")] HRESULT Insert([in] long cchOffset, [in] long cchMaxInsert, [out] long* pcchActual);
  61.         [helpstring("method Delete")] HRESULT Delete([in] long cchOffset, [in] long cchDelete);
  62.     };
  63.  
  64.     [
  65.         uuid(D24ACD23-BA72-11D0-B188-00AA0038C969),
  66.         helpstring("IMLangStringBufA Interface"),
  67.         pointer_default(unique)
  68.     ]
  69.     interface IMLangStringBufA : IUnknown
  70.     {
  71.         [helpstring("method GetStatus")] HRESULT GetStatus([out] long* plFlags, [out] long* pcchBuf);
  72.         [helpstring("method LockBuf")] HRESULT LockBuf([in] long cchOffset, [in] long cchMaxLock, [out, size_is(,*pcchBuf)] CHAR** ppszBuf, [out] long* pcchBuf);
  73.         [helpstring("method UnlockBuf")] HRESULT UnlockBuf([in, size_is(cchWrite - cchOffset)] const CHAR* pszBuf, [in] long cchOffset, [in] long cchWrite);
  74.         [helpstring("method Insert")] HRESULT Insert([in] long cchOffset, [in] long cchMaxInsert, [out] long* pcchActual);
  75.         [helpstring("method Delete")] HRESULT Delete([in] long cchOffset, [in] long cchDelete);
  76.     };
  77.  
  78.     [
  79.         uuid(C04D65CE-B70D-11D0-B188-00AA0038C969),
  80.         helpstring("IMLangString Interface"),
  81.         pointer_default(unique)
  82.     ]
  83.     interface IMLangString : IUnknown
  84.     {
  85.         [helpstring("method Sync")] HRESULT Sync([in] BOOL fNoAccess);
  86.         [helpstring("method GetLength")] HRESULT GetLength([out, retval] long* plLen);
  87.         [helpstring("method SetMLStr")] HRESULT SetMLStr([in] long lDestPos, [in] long lDestLen, [in] IUnknown* pSrcMLStr, [in] long lSrcPos, [in] long lSrcLen);
  88.         [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);
  89.     };
  90.  
  91.     [
  92.         uuid(C04D65D0-B70D-11D0-B188-00AA0038C969),
  93.         helpstring("IMLangStringWStr Interface"),
  94.         pointer_default(unique)
  95.     ]
  96.     interface IMLangStringWStr : IMLangString
  97.     {
  98.         [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);
  99.         [helpstring("method SetStrBufW")] HRESULT SetStrBufW([in] long lDestPos, [in] long lDestLen, [in] IMLangStringBufW* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  100.         [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);
  101.         [helpstring("method GetStrBufW")] HRESULT GetStrBufW([in] long lSrcPos, [in] long lSrcMaxLen, [out] IMLangStringBufW** ppDestBuf, [out] long* plDestLen);
  102.         [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);
  103.         [helpstring("method UnlockWStr")] HRESULT UnlockWStr([in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [out] long* pcchActual, [out] long* plActualLen);
  104.         [helpstring("method SetLocale")] HRESULT SetLocale([in] long lDestPos, [in] long lDestLen, [in] LCID locale);
  105.         [helpstring("method GetLocale")] HRESULT GetLocale([in] long lSrcPos, [in] long lSrcMaxLen, [out] LCID* plocale, [out] long* plLocalePos, [out] long* plLocaleLen);
  106.     };
  107.  
  108.     [
  109.         uuid(C04D65D2-B70D-11D0-B188-00AA0038C969),
  110.         helpstring("IMLangStringAStr Interface"),
  111.         pointer_default(unique)
  112.     ]
  113.     interface IMLangStringAStr : IMLangString
  114.     {
  115.         [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);
  116.         [helpstring("method SetStrBufA")] HRESULT SetStrBufA([in] long lDestPos, [in] long lDestLen, [in] UINT uCodePage, [in] IMLangStringBufA* pSrcBuf, [out] long* pcchActual, [out] long* plActualLen);
  117.         [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);
  118.         [helpstring("method GetStrBufA")] HRESULT GetStrBufA([in] long lSrcPos, [in] long lSrcMaxLen, [out] UINT* puDestCodePage, [out] IMLangStringBufA** ppDestBuf, [out] long* plDestLen);
  119.         [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,
  120.  [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.         [helpstring("method SetLocale")] HRESULT SetLocale([in] long lDestPos, [in] long lDestLen, [in] LCID locale);
  123.         [helpstring("method GetLocale")] HRESULT GetLocale([in] long lSrcPos, [in] long lSrcMaxLen, [out] LCID* plocale, [out] long* plLocalePos, [out] long* plLocaleLen);
  124.     };
  125.  
  126.     [
  127.         uuid(C04D65CF-B70D-11D0-B188-00AA0038C969),
  128.         helpstring("MLangString Class")
  129.     ]
  130.     coclass CMLangString
  131.     {
  132.         [default] interface IMLangString;
  133.         interface IMLangStringWStr;
  134.         interface IMLangStringAStr;
  135.     };
  136.  
  137.     [
  138.         uuid(F5BE2EE1-BFD7-11D0-B188-00AA0038C969),
  139.         helpstring("IMLangLineBreakConsole Interface"),
  140.         pointer_default(unique)
  141.     ]
  142.     interface IMLangLineBreakConsole : IUnknown
  143.     {
  144.         [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);
  145.         [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);
  146.         [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);
  147.     };
  148.  
  149.     [
  150.       object,
  151.       uuid(275c23e3-3747-11d0-9fea-00aa003f8646),
  152.       pointer_default(unique)
  153.     ]
  154.     interface IEnumCodePage : IUnknown
  155.     {
  156.         const USHORT MAX_MIMECP_NAME    = 64;
  157.         const USHORT MAX_MIMECSET_NAME  = 50;
  158.         const USHORT MAX_MIMEFACE_NAME  = 32;
  159.  
  160.         typedef enum tagMIMECONTF
  161.         {
  162.             MIMECONTF_MAILNEWS          = 0x00000001,
  163.             MIMECONTF_BROWSER           = 0x00000002,
  164.             MIMECONTF_MINIMAL           = 0x00000004,
  165.             MIMECONTF_SAVABLE_MAILNEWS  = 0x00000100,
  166.             MIMECONTF_SAVABLE_BROWSER   = 0x00000200,
  167.             MIMECONTF_PRIVCONVERTER     = 0x00010000,
  168.             MIMECONTF_VALID             = 0x00020000
  169.         } MIMECONTF;
  170.  
  171.         typedef struct tagMIMECPINFO
  172.         {
  173.             DWORD   dwFlags;
  174.             UINT    uiCodePage;
  175.             UINT    uiFamilyCodePage;
  176.             WCHAR   wszDescription[MAX_MIMECP_NAME];
  177.             WCHAR   wszWebCharset[MAX_MIMECSET_NAME];
  178.             WCHAR   wszHeaderCharset[MAX_MIMECSET_NAME];
  179.             WCHAR   wszBodyCharset[MAX_MIMECSET_NAME];
  180.             WCHAR   wszFixedWidthFont[MAX_MIMEFACE_NAME];
  181.             WCHAR   wszProportionalFont[MAX_MIMEFACE_NAME];
  182.             BYTE    bGDICharset;
  183.         } MIMECPINFO, *PMIMECPINFO;
  184.  
  185.         typedef struct tagMIMECSETINFO
  186.         {
  187.             UINT    uiCodePage;
  188.             UINT    uiInternetEncoding;
  189.             WCHAR   wszCharset[MAX_MIMECSET_NAME];
  190.         } MIMECSETINFO, *PMIMECSETINFO;
  191.  
  192.         typedef [unique] IEnumCodePage *LPENUMCODEPAGE;
  193.  
  194.         HRESULT Clone
  195.         (
  196.             [out] IEnumCodePage **ppEnum
  197.         );
  198.  
  199.         HRESULT Next
  200.         (
  201.             [in]  ULONG         celt,
  202.             [out] PMIMECPINFO   rgelt,
  203.             [out] ULONG         *pceltFetched
  204.         );
  205.  
  206.         HRESULT Reset();
  207.  
  208.         HRESULT Skip
  209.         (
  210.             [in]  ULONG         celt
  211.         );
  212.     };
  213.  
  214.     [
  215.       object,
  216.       uuid(3dc39d1d-c030-11d0-b81b-00c04fc9b31f),
  217.       pointer_default(unique)
  218.     ]
  219.     interface IEnumRfc1766 : IUnknown
  220.     {
  221.         const USHORT MAX_RFC1766_NAME   = 6;
  222.         const USHORT MAX_LOCALE_NAME    = 32;
  223.  
  224.         typedef struct tagRFC1766INFO
  225.         {
  226.             LCID    lcid;
  227.             WCHAR   wszRfc1766[MAX_RFC1766_NAME];
  228.             WCHAR   wszLocaleName[MAX_LOCALE_NAME];
  229.         } RFC1766INFO, *PRFC1766INFO;
  230.  
  231.         typedef [unique] IEnumRfc1766 *LPENUMRFC1766;
  232.  
  233.         HRESULT Clone
  234.         (
  235.             [out] IEnumRfc1766 **ppEnum
  236.         );
  237.  
  238.         HRESULT Next
  239.         (
  240.             [in]  ULONG         celt,
  241.             [out] PRFC1766INFO  rgelt,
  242.             [out] ULONG         *pceltFetched
  243.         );
  244.  
  245.         HRESULT Reset();
  246.  
  247.         HRESULT Skip
  248.         (
  249.             [in]  ULONG         celt
  250.         );
  251.     };
  252.  
  253.     [
  254.       object,
  255.       uuid(d66d6f98-cdaa-11d0-b822-00c04fc9b31f),
  256.       pointer_default(unique)
  257.     ]
  258.     interface IMLangConvertCharset : IUnknown
  259.     {
  260.         typedef enum tagMLCONVCHARF
  261.         {
  262.             MLCONVCHARF_AUTODETECT      = 1,
  263.             MLCONVCHARF_ENTITIZE        = 2
  264.         } MLCONVCHAR;
  265.  
  266.         typedef [unique] IMLangConvertCharset *LPMLANGCONVERTCHARSET;
  267.  
  268.         HRESULT Initialize
  269.         (
  270.             [in]  UINT  uiSrcCodePage,
  271.             [in]  UINT  uiDstCodePage,
  272.             [in]  DWORD dwProperty
  273.         );
  274.  
  275.         HRESULT GetSourceCodePage
  276.         (
  277.             [out] UINT  *puiSrcCodePage
  278.         );
  279.  
  280.         HRESULT GetDestinationCodePage
  281.         (
  282.             [out] UINT  *puiDstCodePage
  283.         );
  284.  
  285.         HRESULT GetProperty
  286.         (
  287.             [out] DWORD *pdwProperty
  288.         );
  289.  
  290.         HRESULT DoConversion
  291.         (
  292.             [in]  BYTE          *pSrcStr,
  293.             [in,out]  UINT      *pcSrcSize,
  294.             [in]  BYTE          *pDstStr,
  295.             [in,out]  UINT      *pcDstSize
  296.         );
  297.  
  298.         HRESULT DoConversionToUnicode
  299.         (
  300.             [in]  CHAR          *pSrcStr,
  301.             [in,out]  UINT      *pcSrcSize,
  302.             [in]  WCHAR         *pDstStr,
  303.             [in,out]  UINT      *pcDstSize
  304.         );
  305.  
  306.         HRESULT DoConversionFromUnicode
  307.         (
  308.             [in]  WCHAR         *pSrcStr,
  309.             [in,out]  UINT      *pcSrcSize,
  310.             [in]  CHAR          *pDstStr,
  311.             [in,out]  UINT      *pcDstSize
  312.         );
  313.  
  314.     };
  315.  
  316.     [
  317.       uuid(d66d6f99-cdaa-11d0-b822-00c04fc9b31f),
  318.     ]
  319.     coclass CMLangConvertCharset
  320.     {
  321.         [default] interface IMLangConvertCharset;
  322.     };
  323.  
  324.     [
  325.       object,
  326.       uuid(275c23e1-3747-11d0-9fea-00aa003f8646),
  327.       pointer_default(unique)
  328.     ]
  329.     interface IMultiLanguage : IUnknown
  330.     {
  331.         typedef [unique] IMultiLanguage *LPMULTILANGUAGE;
  332.  
  333.         HRESULT GetNumberOfCodePageInfo
  334.         (
  335.             [out] UINT          *pcCodePage
  336.         );
  337.  
  338.         HRESULT GetCodePageInfo
  339.         (
  340.             [in]  UINT          uiCodePage,
  341.             [out] PMIMECPINFO   pCodePageInfo
  342.         );
  343.  
  344.         HRESULT GetFamilyCodePage
  345.         (
  346.             [in]  UINT          uiCodePage,
  347.             [out] UINT          *puiFamilyCodePage
  348.         );
  349.  
  350.         HRESULT EnumCodePages
  351.         (
  352.             [in]  DWORD         grfFlags,
  353.             [out] IEnumCodePage **ppEnumCodePage
  354.         );
  355.  
  356.         HRESULT GetCharsetInfo
  357.         (
  358.             [in]  BSTR          Charset,
  359.             [out] PMIMECSETINFO pCharsetInfo
  360.         );
  361.  
  362.         HRESULT IsConvertible
  363.         (
  364.             [in]  DWORD         dwSrcEncoding,
  365.             [in]  DWORD         dwDstEncoding
  366.         );
  367.  
  368.         HRESULT ConvertString
  369.         (
  370.             [in,out]  DWORD     *pdwMode,
  371.             [in]  DWORD         dwSrcEncoding,
  372.             [in]  DWORD         dwDstEncoding,
  373.             [in]  BYTE          *pSrcStr,
  374.             [in,out]  UINT      *pcSrcSize,
  375.             [in]  BYTE          *pDstStr,
  376.             [in,out]  UINT      *pcDstSize
  377.         );
  378.  
  379.         HRESULT ConvertStringToUnicode
  380.         (
  381.             [in,out]  DWORD     *pdwMode,
  382.             [in]  DWORD         dwEncoding,
  383.             [in]  CHAR          *pSrcStr,
  384.             [in,out]  UINT      *pcSrcSize,
  385.             [in]  WCHAR         *pDstStr,
  386.             [in,out]  UINT      *pcDstSize
  387.         );
  388.  
  389.         HRESULT ConvertStringFromUnicode
  390.         (
  391.             [in,out]  DWORD     *pdwMode,
  392.             [in]  DWORD         dwEncoding,
  393.             [in]  WCHAR         *pSrcStr,
  394.             [in,out]  UINT      *pcSrcSize,
  395.             [in]  CHAR          *pDstStr,
  396.             [in,out]  UINT      *pcDstSize
  397.         );
  398.  
  399.         HRESULT ConvertStringReset();
  400.  
  401.         HRESULT GetRfc1766FromLcid
  402.         (
  403.             [in]  LCID          Locale,
  404.             [out] BSTR          *pbstrRfc1766
  405.         );
  406.  
  407.         HRESULT GetLcidFromRfc1766
  408.         (
  409.             [out] LCID          *pLocale,
  410.             [in]  BSTR          bstrRfc1766
  411.         );
  412.  
  413.         HRESULT EnumRfc1766
  414.         (
  415.             [out] IEnumRfc1766 **ppEnumRfc1766
  416.         );
  417.  
  418.         HRESULT GetRfc1766Info
  419.         (
  420.             [in]  LCID          Locale,
  421.             [out] PRFC1766INFO  pRfc1766Info
  422.         );
  423.  
  424.         HRESULT CreateConvertCharset
  425.         (
  426.             [in]  UINT          uiSrcCodePage,
  427.             [in]  UINT          uiDstCodePage,
  428.             [in]  DWORD         dwProperty,
  429.             [out] IMLangConvertCharset **ppMLangConvertCharset
  430.         );
  431.  
  432.     };
  433.  
  434.     [
  435.         uuid(359F3443-BD4A-11D0-B188-00AA0038C969),
  436.         helpstring("IMLangCodePages Interface"),
  437.         pointer_default(unique)
  438.     ]
  439.     interface IMLangCodePages : IUnknown
  440.     {
  441.         typedef [unique] IMLangCodePages* PMLANGCODEPAGES;
  442.  
  443.         [helpstring("method GetCharCodePages")] HRESULT GetCharCodePages([in] WCHAR chSrc, [out] DWORD* pdwCodePages);
  444.         [helpstring("method GetStrCodePages")] HRESULT GetStrCodePages([in, size_is(cchSrc)] const WCHAR* pszSrc, [in] long cchSrc, [in] DWORD dwPriorityCodePages, [out] DWORD* pdwCodePages, [out] long* pcchCodePages);
  445.         [helpstring("method CodePageToCodePages")] HRESULT CodePageToCodePages([in] UINT uCodePage, [out] DWORD* pdwCodePages);
  446.         [helpstring("method CodePagesToCodePage")] HRESULT CodePagesToCodePage([in] DWORD dwCodePages, [in] UINT uDefaultCodePage, [out] UINT* puCodePage);
  447.     };
  448.  
  449.     [
  450.         uuid(359F3441-BD4A-11D0-B188-00AA0038C969),
  451.         helpstring("IMLangFontLink Interface"),
  452.         pointer_default(unique)
  453.     ]
  454.     interface IMLangFontLink : IMLangCodePages
  455.     {
  456.         typedef [unique] IMLangFontLink* PMLANGFONTLINK;
  457.  
  458.         [helpstring("method GetFontCodePages")] HRESULT GetFontCodePages([in] HDC hDC, [in] HFONT hFont, [out] DWORD* pdwCodePages);
  459.         [helpstring("method MapFont")] HRESULT MapFont([in] HDC hDC, [in] DWORD dwCodePages, [in] HFONT hSrcFont, [out] HFONT* phDestFont);
  460.         [helpstring("method ReleaseFont")] HRESULT ReleaseFont([in] HFONT hFont);
  461.         [helpstring("method ResetFontMapping")] HRESULT ResetFontMapping();
  462.     };
  463.  
  464.     [
  465.       uuid(275c23e2-3747-11d0-9fea-00aa003f8646),
  466.     ]
  467.     coclass CMultiLanguage
  468.     {
  469.         [default] interface IMultiLanguage;
  470.         interface IMLangCodePages;
  471.         interface IMLangFontLink;
  472.         interface IMLangLineBreakConsole;
  473.     };
  474.  
  475. }
  476.  
  477.  
  478. cpp_quote("#ifndef _MLANG_H_API_DEF_                                                     ")
  479. cpp_quote("#define _MLANG_H_API_DEF_                                                     ")
  480. cpp_quote("                                                                              ")
  481. cpp_quote("// APIs prototypes                                                            ")
  482. cpp_quote("STDAPI LcidToRfc1766A(LCID Locale, LPSTR pszRfc1766, int iMaxLength);         ")
  483. cpp_quote("STDAPI LcidToRfc1766W(LCID Locale, LPWSTR pszRfc1766, int nChar);             ")
  484. cpp_quote("#ifdef UNICODE                                                                ")
  485. cpp_quote("#define LcidToRfc1766        LcidToRfc1766W                                   ")
  486. cpp_quote("#else                                                                         ")
  487. cpp_quote("#define LcidToRfc1766        LcidToRfc1766A                                   ")
  488. cpp_quote("#endif                                                                        ")
  489. cpp_quote("STDAPI Rfc1766ToLcidA(LCID *pLocale, LPCSTR pszRfc1766);                      ")
  490. cpp_quote("STDAPI Rfc1766ToLcidW(LCID *pLocale, LPCWSTR pszRfc1766);                     ")
  491. cpp_quote("#ifdef UNICODE                                                                ")
  492. cpp_quote("#define Rfc1766ToLcid        Rfc1766ToLcidW                                   ")
  493. cpp_quote("#else                                                                         ")
  494. cpp_quote("#define Rfc1766ToLcid        Rfc1766ToLcidA                                   ")
  495. cpp_quote("#endif                                                                        ")
  496. cpp_quote("                                                                              ")
  497. cpp_quote("STDAPI IsConvertINetStringAvailable(DWORD dwSrcEncoding, DWORD dwDstEncoding);")
  498. cpp_quote("STDAPI ConvertINetString(LPDWORD lpdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, LPCSTR lpSrcStr, LPINT lpnSrcSize, LPSTR lpDstStr, LPINT lpnDstSize);   ")
  499. cpp_quote("STDAPI ConvertINetMultiByteToUnicode(LPDWORD lpdwMode, DWORD dwEncoding, LPCSTR lpSrcStr, LPINT lpnMultiCharCount, LPWSTR lpDstStr, LPINT lpnWideCharCount); ")
  500. cpp_quote("STDAPI ConvertINetUnicodeToMultiByte(LPDWORD lpdwMode, DWORD dwEncoding, LPCWSTR lpSrcStr, LPINT lpnWideCharCount, LPSTR lpDstStr, LPINT lpnMultiCharCount); ")
  501. cpp_quote("                                                                              ")
  502. cpp_quote("#endif // _MLANG_H_API_DEF_                                                   ")
  503.