From db0b392dc2b411cd4add70a20d1e64de838abde3 Mon Sep 17 00:00:00 2001
From: Jacek Caban <jacek@codeweavers.com>
Date: Sun, 14 Oct 2007 19:13:21 +0200
Subject: [PATCH] include: Added dimm.idl.

---
 .gitignore          |   1 +
 dlls/uuid/uuid.c    |   1 +
 include/Makefile.in |   1 +
 include/dimm.idl    | 588 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 591 insertions(+)
 create mode 100644 include/dimm.idl

diff --git a/.gitignore b/.gitignore
index e8ca17fe8c2..90e166eb2c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -548,6 +548,7 @@ include/config.h
 include/control.h
 include/d3d10.h
 include/ddstream.h
+include/dimm.h
 include/dispex.h
 include/docobj.h
 include/downloadmgr.h
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c
index b70f78a82d4..e1aeaf4f1f6 100644
--- a/dlls/uuid/uuid.c
+++ b/dlls/uuid/uuid.c
@@ -68,6 +68,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 #include "htiframe.h"
 #include "urlhist.h"
 #include "hlguids.h"
+#include "dimm.h"
 
 /* FIXME: cguids declares GUIDs but does not define their values */
 
diff --git a/include/Makefile.in b/include/Makefile.in
index de8b86aa07c..9ac664f6b16 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -13,6 +13,7 @@ IDL_H_SRCS = \
 	control.idl \
 	d3d10.idl \
 	ddstream.idl \
+	dimm.idl \
 	dispex.idl \
 	docobj.idl \
 	downloadmgr.idl \
diff --git a/include/dimm.idl b/include/dimm.idl
new file mode 100644
index 00000000000..528c0c518e4
--- /dev/null
+++ b/include/dimm.idl
@@ -0,0 +1,588 @@
+/*
+ * Copyright 2007 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+
+cpp_quote("#include <imm.h>")
+
+cpp_quote("#if 0")
+
+typedef WORD LANGID;
+
+typedef struct {
+    LPSTR lpReading;
+    LPSTR lpWord;
+} REGISTERWORDA;
+
+typedef struct {
+    LPWSTR lpReading;
+    LPWSTR lpWord;
+} REGISTERWORDW;
+
+#define LF_FACESIZE         32
+
+typedef struct {
+    LONG lfHeight;
+    LONG lfWidth;
+    LONG lfEscapement;
+    LONG lfOrientation;
+    LONG lfWeight;
+    BYTE lfItalic;
+    BYTE lfUnderline;
+    BYTE lfStrikeOut;
+    BYTE lfCharSet;
+    BYTE lfOutPrecision;
+    BYTE lfClipPrecision;
+    BYTE lfQuality;
+    BYTE lfPitchAndFamily;
+    CHAR lfFaceName[LF_FACESIZE];
+} LOGFONTA;
+
+typedef struct {
+    LONG  lfHeight;
+    LONG  lfWidth;
+    LONG  lfEscapement;
+    LONG  lfOrientation;
+    LONG  lfWeight;
+    BYTE  lfItalic;
+    BYTE  lfUnderline;
+    BYTE  lfStrikeOut;
+    BYTE  lfCharSet;
+    BYTE  lfOutPrecision;
+    BYTE  lfClipPrecision;
+    BYTE  lfQuality;
+    BYTE  lfPitchAndFamily;
+    WCHAR lfFaceName[LF_FACESIZE];
+} LOGFONTW;
+
+typedef DWORD HIMC;
+typedef DWORD HIMCC;
+
+typedef struct {
+    DWORD dwIndex;
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT  rcArea;
+} CANDIDATEFORM;
+
+typedef struct {
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT  rcArea;
+} COMPOSITIONFORM;
+
+typedef struct {
+    DWORD dwSize;
+    DWORD dwStyle;
+    DWORD dwCount;
+    DWORD dwSelection;
+    DWORD dwPageStart;
+    DWORD dwPageSize;
+    DWORD dwOffset[1];
+} CANDIDATELIST;
+
+#define STYLE_DESCRIPTION_SIZE  32
+
+typedef struct {
+    DWORD dwStyle;
+    CHAR  szDescription[STYLE_DESCRIPTION_SIZE];
+} STYLEBUFA;
+
+typedef struct {
+    DWORD dwStyle;
+    WCHAR szDescription[STYLE_DESCRIPTION_SIZE];
+} STYLEBUFW;
+
+typedef WORD ATOM;
+
+#define IMEMENUITEM_STRING_SIZE 80
+
+typedef struct {
+    UINT    cbSize;
+    UINT    fType;
+    UINT    fState;
+    UINT    wID;
+    HBITMAP hbmpChecked;
+    HBITMAP hbmpUnchecked;
+    DWORD   dwItemData;
+    CHAR    szString[IMEMENUITEM_STRING_SIZE];
+    HBITMAP hbmpItem;
+} IMEMENUITEMINFOA;
+
+typedef struct {
+    UINT    cbSize;
+    UINT    fType;
+    UINT    fState;
+    UINT    wID;
+    HBITMAP hbmpChecked;
+    HBITMAP hbmpUnchecked;
+    DWORD   dwItemData;
+    WCHAR   szString[IMEMENUITEM_STRING_SIZE];
+    HBITMAP hbmpItem;
+} IMEMENUITEMINFOW;
+
+cpp_quote("#endif")
+
+[
+    object,
+    uuid(08c03412-f96b-11d0-a475-00aa006bcc59),
+    pointer_default(unique)
+]
+interface IEnumRegisterWordA : IUnknown
+{
+    HRESULT Clone(
+            [out] IEnumRegisterWordA **ppEnum);
+
+    HRESULT Next(
+            [in]  ULONG ulCount,
+            [out] REGISTERWORDA *rgRegisterword,
+            [out] ULONG *pcFetched);
+
+    HRESULT Reset();
+
+    HRESULT Skip(
+            [in]  ULONG ulCount);
+}
+
+[
+    object,
+    uuid(4955dd31-b159-11d0-8fcf-00aa006bcc59),
+    pointer_default(unique)
+]
+interface IEnumRegisterWordW : IUnknown
+{
+    HRESULT Clone(
+            [out] IEnumRegisterWordW **ppEnum);
+
+    HRESULT Next(
+            [in]  ULONG ulCount,
+            [out] REGISTERWORDW *rgRegisterword,
+            [out] ULONG *pcFetched);
+
+    HRESULT Reset();
+
+    HRESULT Skip(
+            [in]  ULONG ulCount);
+}
+
+[
+    object,
+    uuid(09b5eab0-f997-11d1-93d4-0060b067b86e),
+    pointer_default(unique)
+]
+interface IEnumInputContext : IUnknown
+{
+    HRESULT Clone(
+            [out] IEnumInputContext **ppEnum);
+
+    HRESULT Next(
+            [in]  ULONG ulCount,
+            [out] HIMC *rgInputContext,
+            [out] ULONG *pcFetched);
+
+    HRESULT Reset();
+
+    HRESULT Skip(
+            [in]  ULONG ulCount);
+}
+
+[
+    object,
+    uuid(08c0e040-62d1-11d1-9326-0060b067b86e),
+    pointer_default(unique)
+]
+interface IActiveIMMApp : IUnknown
+{
+    HRESULT AssociateContext(
+            [in]  HWND hWnd,
+            [in]  HIMC hIME,
+            [out] HIMC *phPrev);
+
+    HRESULT ConfigureIMEA(
+            [in]  HKL hKL,
+            [in]  HWND hwnd,
+            [in]  DWORD dwMode,
+            [in]  REGISTERWORDA *pData);
+
+    HRESULT ConfigureIMEW(
+            [in]  HKL hKL,
+            [in]  HWND hWnd,
+            [in]  DWORD dwMode,
+            [in]  REGISTERWORDW *pData);
+
+    HRESULT CreateContext(
+            [out] HIMC *phIMC);
+
+    HRESULT DestroyContext(
+            [in]  HIMC hIME);
+
+    HRESULT EnumRegisterWordA(
+            [in]  HKL hKL,
+            [in]  LPSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPSTR szRegister,
+            [in]  LPVOID pData,
+            [out] IEnumRegisterWordA **pEnum);
+
+    HRESULT EnumRegisterWordW(
+            [in]  HKL hKL,
+            [in]  LPWSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPWSTR szRegister,
+            [in]  LPVOID pData,
+            [out] IEnumRegisterWordW **pEnum);
+
+    HRESULT EscapeA(
+            [in]  HKL hKL,
+            [in]  HIMC hIMC,
+            [in]  UINT uEscape,
+            [in, out] LPVOID pData,
+            [out] LRESULT *plResult);
+
+    HRESULT EscapeW(
+            [in]  HKL hKL,
+            [in]  HIMC hIMC,
+            [in]  UINT uEscape,
+            [in, out] LPVOID pData,
+            [out] LRESULT *plResult);
+
+    HRESULT GetCandidateListA(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  UINT uBufLen,
+            [out] CANDIDATELIST *pCandList,
+            [out] UINT *puCopied);
+
+    HRESULT GetCandidateListW(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  UINT uBufLen,
+            [out] CANDIDATELIST *pCandList,
+            [out] UINT *puCopied);
+
+    HRESULT GetCandidateListCountA(
+            [in]  HIMC hIMC,
+            [out] DWORD *pdwListSize,
+            [out] DWORD *pdwBufLen);
+
+    HRESULT GetCandidateListCountW(
+            [in]  HIMC hIMC,
+            [out] DWORD *pdwListSize,
+            [out] DWORD *pdwBufLen);
+
+    HRESULT GetCandidateWindow(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [out] CANDIDATEFORM *pCandidate);
+
+    HRESULT GetCompositionFontA(
+            [in]  HIMC hIMC,
+            [out] LOGFONTA *plf);
+
+    HRESULT GetCompositionFontW(
+            [in]  HIMC hIMC,
+            [out] LOGFONTW *plf);
+
+    HRESULT GetCompositionStringA(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  DWORD dwBufLen,
+            [out] LONG *plCopied,
+            [out] LPVOID pBuf);
+
+    HRESULT GetCompositionStringW(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  DWORD dwBufLen,
+            [out] LONG *plCopied,
+            [out] LPVOID pBuf);
+
+    HRESULT GetCompositionWindow(
+            [in]  HIMC hIMC,
+            [out] COMPOSITIONFORM *pCompForm);
+
+    HRESULT GetContext(
+            [in]  HWND hwnd,
+            [out] HIMC *phIMC);
+
+    HRESULT GetConversionListA(
+            [in]  HKL hKL,
+            [in]  HIMC hIMC,
+            [in]  LPSTR pSrc,
+            [in]  UINT uBufLen,
+            [in]  UINT uFlag,
+            [out] CANDIDATELIST *pDst,
+            [out] UINT *puCopied);
+
+    HRESULT GetConversionListW(
+            [in]  HKL hKL,
+            [in]  HIMC hIMC,
+            [in]  LPWSTR pSrc,
+            [in]  UINT uBufLen,
+            [in]  UINT uFlag,
+            [out] CANDIDATELIST *pDst,
+            [out] UINT *puCopied);
+
+    HRESULT GetConversionStatus(
+            [in] HIMC hIMC,
+            [out] DWORD *pfdwConversion,
+            [out] DWORD *pfdwSentence);
+
+    HRESULT GetDefaultIMEWnd(
+            [in] HWND hWnd,
+            [out] HWND *phDefWnd);
+
+    HRESULT GetDescriptionA(
+            [in]  HKL hKL,
+            [in]  UINT uBufLen,
+            [out] LPSTR szDescription,
+            [out] UINT *puCopied);
+
+    HRESULT GetDescriptionW(
+            [in]  HKL hKL,
+            [in]  UINT uBufLen,
+            [out] LPWSTR szDescription,
+            [out] UINT *puCopied);
+
+    HRESULT GetGuideLineA(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  DWORD dwBufLen,
+            [out] LPSTR pBuf,
+            [out] DWORD *pdwResult);
+
+    HRESULT GetGuideLineW(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  DWORD dwBufLen,
+            [out] LPWSTR pBuf,
+            [out] DWORD *pdwResult);
+
+    HRESULT GetIMEFileNameA(
+            [in]  HKL hKL,
+            [in]  UINT uBufLen,
+            [out] LPSTR szFileName,
+            [out] UINT *puCopied);
+
+    HRESULT GetIMEFileNameW(
+            [in]  HKL hKL,
+            [in]  UINT uBufLen,
+            [out] LPWSTR szFileName,
+            [out] UINT *puCopied);
+
+    HRESULT GetOpenStatus(
+            [in]  HIMC hIMC);
+
+    HRESULT GetProperty(
+            [in]  HKL hKL,
+            [in]  DWORD fdwIndex,
+            [out] DWORD *pdwProperty);
+
+    HRESULT GetRegisterWordStyleA(
+            [in]  HKL hKL,
+            [in]  UINT nItem,
+            [out] STYLEBUFA *pStyleBuf,
+            [out] UINT *puCopied);
+
+    HRESULT GetRegisterWordStyleW(
+            [in]  HKL hKL,
+            [in]  UINT nItem,
+            [out] STYLEBUFW *pStyleBuf,
+            [out] UINT *puCopied);
+
+    HRESULT GetStatusWindowPos(
+            [in]  HIMC hIMC,
+            [out] POINT *pptPos);
+
+    HRESULT GetVirtualKey(
+            [in]  HWND hWnd,
+            [out] UINT *puVirtualKey);
+
+    HRESULT InstallIMEA(
+            [in]  LPSTR szIMEFileName,
+            [in]  LPSTR szLayoutText,
+            [out] HKL *phKL);
+
+    HRESULT InstallIMEW(
+            [in]  LPWSTR szIMEFileName,
+            [in]  LPWSTR szLayoutText,
+            [out] HKL *phKL);
+
+    HRESULT IsIME(
+            [in]  HKL hKL);
+
+    HRESULT IsUIMessageA(
+            [in]  HWND hWndIME,
+            [in]  UINT msg,
+            [in]  WPARAM wParam,
+            [in]  LPARAM lParam);
+
+    HRESULT IsUIMessageW(
+            [in]  HWND hWndIME,
+            [in]  UINT msg,
+            [in]  WPARAM wParam,
+            [in]  LPARAM lParam);
+
+    HRESULT NotifyIME(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwAction,
+            [in]  DWORD dwIndex,
+            [in]  DWORD dwValue);
+
+    HRESULT RegisterWordA(
+            [in]  HKL hKL,
+            [in]  LPSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPSTR szRegister);
+
+    HRESULT RegisterWordW(
+            [in]  HKL hKL,
+            [in]  LPWSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPWSTR szRegister);
+
+    HRESULT ReleaseContext(
+            [in]  HWND hWnd,
+            [in]  HIMC hIMC);
+
+    HRESULT SetCandidateWindow(
+            [in]  HIMC hIMC,
+            [in]  CANDIDATEFORM *pCandidate);
+
+    HRESULT SetCompositionFontA(
+            [in]  HIMC hIMC,
+            [in]  LOGFONTA *plf);
+
+    HRESULT SetCompositionFontW(
+            [in]  HIMC hIMC,
+            [in]  LOGFONTW *plf);
+
+    HRESULT SetCompositionStringA(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  LPVOID pComp,
+            [in]  DWORD dwCompLen,
+            [in]  LPVOID pRead,
+            [in]  DWORD dwReadLen);
+
+    HRESULT SetCompositionStringW(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwIndex,
+            [in]  LPVOID pComp,
+            [in]  DWORD dwCompLen,
+            [in]  LPVOID pRead,
+            [in]  DWORD dwReadLen);
+
+    HRESULT SetCompositionWindow(
+            [in]  HIMC hIMC,
+            [in]  COMPOSITIONFORM *pCompForm);
+
+    HRESULT SetConversionStatus(
+            [in]  HIMC hIMC,
+            [in]  DWORD fdwConversion,
+            [in]  DWORD fdwSentence);
+
+    HRESULT SetOpenStatus(
+            [in]  HIMC hIMC,
+            [in]  BOOL fOpen);
+
+    HRESULT SetStatusWindowPos(
+            [in]  HIMC hIMC,
+            [in]  POINT *pptPos);
+
+    HRESULT SimulateHotKey(
+            [in]  HWND hwnd,
+            [in]  DWORD dwHotKeyID);
+
+    HRESULT UnregisterWordA(
+            [in]  HKL hKL,
+            [in]  LPSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPSTR szUnregister);
+
+    HRESULT UnregisterWordW(
+            [in]  HKL hKL,
+            [in]  LPWSTR szReading,
+            [in]  DWORD dwStyle,
+            [in]  LPWSTR szUnregister);
+
+    HRESULT Activate(
+            [in]  BOOL fRestoreLayout);
+
+    HRESULT Deactivate();
+
+    HRESULT OnDefWindowProc(
+            [in]  HWND hWnd,
+            [in]  UINT Msg,
+            [in]  WPARAM wParam,
+            [in]  LPARAM lParam,
+            [out] LRESULT *plResult);
+
+    HRESULT FilterClientWindows(
+            [in]  ATOM *aaClassList,
+            [in]  UINT uSize);
+
+    HRESULT GetCodePageA(
+            [in]  HKL hKL,
+            [out] UINT *uCodePage);
+
+    HRESULT GetLangId(
+            [in]  HKL hKL,
+            [out] LANGID *plid);
+
+    HRESULT AssociateContextEx(
+            [in]  HWND hWnd,
+            [in]  HIMC hIMC,
+            [in]  DWORD dwFlags);
+
+    HRESULT DisableIME(
+            [in]  DWORD idThread);
+
+    HRESULT GetImeMenuItemsA(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwFlags,
+            [in]  DWORD dwType,
+            [in]  IMEMENUITEMINFOA *pImeParentMenu,
+            [out] IMEMENUITEMINFOA *pImeMenu,
+            [in]  DWORD dwSize,
+            [out] DWORD *pdwResult);
+
+    HRESULT GetImeMenuItemsW(
+            [in]  HIMC hIMC,
+            [in]  DWORD dwFlags,
+            [in]  DWORD dwType,
+            [in]  IMEMENUITEMINFOW *pImeParentMenu,
+            [out] IMEMENUITEMINFOW *pImeMenu,
+            [in]  DWORD dwSize,
+            [out] DWORD *pdwResult);
+
+    HRESULT EnumInputContext(
+            [in]  DWORD idThread,
+            [out] IEnumInputContext **ppEnum);
+}
+
+[
+    uuid(4955dd33-b159-11d0-8fcf-00aa006bcc59)
+]
+coclass CActiveIMM
+{
+    [default] interface IActiveIMMApp;
+    /* interface IActiveIMMIME; */
+    /* interface IActiveIMMRegistrar; */
+    /* interface IActiveIMMMessagePumpOwner; */
+}
-- 
GitLab