inkobj: Stub implementation of IInkCollector.
diff --git a/dlls/inkobj/Makefile.in b/dlls/inkobj/Makefile.in
index 932da81..0f12d18 100644
--- a/dlls/inkobj/Makefile.in
+++ b/dlls/inkobj/Makefile.in
@@ -3,9 +3,10 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = inkobj.dll
-IMPORTS   = kernel32
+IMPORTS   = ole32 kernel32
 
 C_SRCS = \
+	inkcollector.c \
 	inkobj.c
 
 @MAKE_DLL_RULES@
diff --git a/dlls/inkobj/inkcollector.c b/dlls/inkobj/inkcollector.c
new file mode 100644
index 0000000..0bc3280
--- /dev/null
+++ b/dlls/inkobj/inkcollector.c
@@ -0,0 +1,413 @@
+/* Copyright (C) 2007 C John Klehm
+ *
+ * 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
+ */
+
+#include "inkobj_internal.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(inkobj);
+
+
+typedef struct tagInkCollector
+{
+    IInkCollectorVtbl* lpVtbl;
+
+    ULONG refCount;
+} InkCollector;
+
+static HRESULT WINAPI InkCollector_QueryInterface(
+    IInkCollector* This, REFIID riid, void** ppvObject)
+{
+    FIXME("stub!\n");
+    return E_NOINTERFACE;
+}
+
+static ULONG WINAPI InkCollector_AddRef(
+    IInkCollector* This)
+{
+    FIXME("stub!\n");
+    return 0;
+}
+
+static ULONG WINAPI InkCollector_Release(
+    IInkCollector* This)
+{
+    FIXME("stub!\n");
+    return 0;
+}
+
+static HRESULT WINAPI InkCollector_GetTypeInfoCount(
+    IInkCollector* This, UINT* pctinfo)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_GetTypeInfo(
+    IInkCollector* This, UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_GetIDsOfNames(
+    IInkCollector* This, REFIID riid, LPOLESTR* rgszNames, UINT cNames,
+    LCID lcid, DISPID* rgDispId)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_Invoke(
+    IInkCollector* This, DISPID dispIdMember, REFIID riid, LCID lcid,
+    WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult,
+    EXCEPINFO* pExcepInfo, UINT* puArgErr)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_hWnd(
+    IInkCollector* This, long* CurrentWindow)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_hWnd(
+    IInkCollector* This, long CurrentWindow)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_Enabled(
+    IInkCollector* This, VARIANT_BOOL* Collecting)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_Enabled(
+    IInkCollector* This, VARIANT_BOOL Collecting)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_DefaultDrawingAttributes(
+    IInkCollector* This, IInkDrawingAttributes** CurrentAttributes)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_putref_DefaultDrawingAttributes(
+    IInkCollector* This, IInkDrawingAttributes* CurrentAttributes)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_Renderer(
+    IInkCollector* This, IInkRenderer** CurrentInkRenderer)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_putref_Renderer(
+    IInkCollector* This, IInkRenderer* CurrentInkRenderer)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_Ink(
+    IInkCollector* This, IInkDisp** Ink)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_putref_Ink(
+    IInkCollector* This, IInkDisp* Ink)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_AutoRedraw(
+    IInkCollector* This, VARIANT_BOOL* AutoRedraw)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_AutoRedraw(
+    IInkCollector* This, VARIANT_BOOL AutoRedraw)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_CollectingInk(
+    IInkCollector* This, VARIANT_BOOL* Collecting)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_CollectionMode(
+    IInkCollector* This, InkCollectionMode* Mode)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_CollectionMode(
+    IInkCollector* This, InkCollectionMode Mode)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_DynamicRendering(
+    IInkCollector* This, VARIANT_BOOL* Enabled)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_DynamicRendering(
+    IInkCollector* This, VARIANT_BOOL Enabled)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_DesiredPacketDescription(
+    IInkCollector* This, VARIANT* PacketGuids)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_DesiredPacketDescription(
+    IInkCollector* This, VARIANT PacketGuids)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_MouseIcon(
+    IInkCollector* This, IPictureDisp** MouseIcon)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_MouseIcon(
+    IInkCollector* This, IPictureDisp* MouseIcon)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_putref_MouseIcon(
+    IInkCollector* This, IPictureDisp* MouseIcon)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_MousePointer(
+    IInkCollector* This, InkMousePointer* MousePointer)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_MousePointer(
+    IInkCollector* This, InkMousePointer MousePointer)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_Cursors(
+    IInkCollector* This, IInkCursors** Cursors)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_MarginX(
+    IInkCollector* This, long* MarginX)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_MarginX(
+    IInkCollector* This, long MarginX)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_MarginY(
+    IInkCollector* This, long* MarginY)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_MarginY(
+    IInkCollector* This, long MarginY)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_Tablet(
+    IInkCollector* This, IInkTablet** SingleTablet)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_get_SupportHighContrastInk(
+    IInkCollector* This, VARIANT_BOOL* Support)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_put_SupportHighContrastInk(
+    IInkCollector* This, VARIANT_BOOL Support)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_SetGestureStatus(
+    IInkCollector* This, InkApplicationGesture Gesture, VARIANT_BOOL Listen)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_GetGestureStatus(
+    IInkCollector* This, InkApplicationGesture Gesture, VARIANT_BOOL* Listen)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_GetWindowInputRectangle(
+    IInkCollector* This, IInkRectangle** WindowInputRectangle)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_SetWindowInputRectangle(
+    IInkCollector* This, IInkRectangle* WindowInputRectangle)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_SetAllTabletsMode(
+    IInkCollector* This, VARIANT_BOOL UseMouseForInput)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_SetSingleTabletIntegratedMode(
+    IInkCollector* This, IInkTablet* Tablet)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_GetEventInterest(
+    IInkCollector* This, InkCollectorEventInterest EventId,
+    VARIANT_BOOL* Listen)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InkCollector_SetEventInterest(
+    IInkCollector* This, InkCollectorEventInterest EventId,
+    VARIANT_BOOL Listen)
+{
+    FIXME("stub!\n");
+    return E_NOTIMPL;
+}
+
+static const IInkCollectorVtbl InkCollectorVtbl =
+{
+    InkCollector_QueryInterface,
+    InkCollector_AddRef,
+    InkCollector_Release,
+    InkCollector_GetTypeInfoCount,
+    InkCollector_GetTypeInfo,
+    InkCollector_GetIDsOfNames,
+    InkCollector_Invoke,
+    InkCollector_get_hWnd,
+    InkCollector_put_hWnd,
+    InkCollector_get_Enabled,
+    InkCollector_put_Enabled,
+    InkCollector_get_DefaultDrawingAttributes,
+    InkCollector_putref_DefaultDrawingAttributes,
+    InkCollector_get_Renderer,
+    InkCollector_putref_Renderer,
+    InkCollector_get_Ink,
+    InkCollector_putref_Ink,
+    InkCollector_get_AutoRedraw,
+    InkCollector_put_AutoRedraw,
+    InkCollector_get_CollectingInk,
+    InkCollector_get_CollectionMode,
+    InkCollector_put_CollectionMode,
+    InkCollector_get_DynamicRendering,
+    InkCollector_put_DynamicRendering,
+    InkCollector_get_DesiredPacketDescription,
+    InkCollector_put_DesiredPacketDescription,
+    InkCollector_get_MouseIcon,
+    InkCollector_put_MouseIcon,
+    InkCollector_putref_MouseIcon,
+    InkCollector_get_MousePointer,
+    InkCollector_put_MousePointer,
+    InkCollector_get_Cursors,
+    InkCollector_get_MarginX,
+    InkCollector_put_MarginX,
+    InkCollector_get_MarginY,
+    InkCollector_put_MarginY,
+    InkCollector_get_Tablet,
+    InkCollector_get_SupportHighContrastInk,
+    InkCollector_put_SupportHighContrastInk,
+    InkCollector_SetGestureStatus,
+    InkCollector_GetGestureStatus,
+    InkCollector_GetWindowInputRectangle,
+    InkCollector_SetWindowInputRectangle,
+    InkCollector_SetAllTabletsMode,
+    InkCollector_SetSingleTabletIntegratedMode,
+    InkCollector_GetEventInterest,
+    InkCollector_SetEventInterest
+};
diff --git a/dlls/inkobj/inkobj_internal.h b/dlls/inkobj/inkobj_internal.h
index 6d0b359..cfd9b5b 100644
--- a/dlls/inkobj/inkobj_internal.h
+++ b/dlls/inkobj/inkobj_internal.h
@@ -23,6 +23,11 @@
 #include "winbase.h"
 #include "winerror.h"
 
+#define COBJMACROS
+#include "winuser.h"
+#include "ole2.h"
+#include "msinkaut.h"
+
 #include "wine/debug.h"
 
 extern LONG INKOBJ_refCount;
diff --git a/include/msinkaut.idl b/include/msinkaut.idl
index 03483e0..75f7686 100644
--- a/include/msinkaut.idl
+++ b/include/msinkaut.idl
@@ -15,6 +15,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+import "oaidl.idl";
 import "ocidl.idl";
 
 [