diff --git a/EXCLUDE/GLTSF/GLTSF.vcxproj b/EXCLUDE/GLTSF/GLTSF.vcxproj
index 374e16c12..bc2928c22 100644
--- a/EXCLUDE/GLTSF/GLTSF.vcxproj
+++ b/EXCLUDE/GLTSF/GLTSF.vcxproj
@@ -81,6 +81,7 @@
+
@@ -88,6 +89,7 @@
+
diff --git a/EXCLUDE/GLTSF/GLTSF.vcxproj.filters b/EXCLUDE/GLTSF/GLTSF.vcxproj.filters
index 04c10f6df..acab9f8e0 100644
--- a/EXCLUDE/GLTSF/GLTSF.vcxproj.filters
+++ b/EXCLUDE/GLTSF/GLTSF.vcxproj.filters
@@ -27,6 +27,9 @@
Header Files
+
+ Header Files
+
@@ -41,5 +44,8 @@
Source Files
+
+ Source Files
+
\ No newline at end of file
diff --git a/EXCLUDE/GLTSF/include/TSF.hpp b/EXCLUDE/GLTSF/include/TSF.hpp
new file mode 100644
index 000000000..5453b9acd
--- /dev/null
+++ b/EXCLUDE/GLTSF/include/TSF.hpp
@@ -0,0 +1,44 @@
+#ifndef TSF_HPP
+#define TSF_HPP
+
+#include
+
+class TSF
+{
+public:
+
+protected:
+ class UI_Sink : public ITfUIElementSink, public ITfInputProcessorProfileActivationSink
+ {
+ public:
+ UI_Sink();
+ ~UI_Sink();
+
+ // IUnknown
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
+ STDMETHODIMP_(ULONG) AddRef(void);
+ STDMETHODIMP_(ULONG) Release(void);
+
+ // ITfUIElementSink
+ STDMETHODIMP BeginUIElement(DWORD dwUIElementId, BOOL *pbShow);
+ STDMETHODIMP UpdateUIElement(DWORD dwUIElementId);
+ STDMETHODIMP EndUIElement(DWORD dwUIElementId);
+
+ // ITfInputProcessorProfileActivationSink
+ STDMETHODIMP OnActivated(DWORD dwProfileType, LANGID langid,
+ REFCLSID clsid, REFGUID catid,
+ REFGUID guidProfile, HKL hkl,
+ DWORD dwFlags);
+
+ // ITfCompartmentEventSink
+ STDMETHODIMP OnChange(REFGUID rguid);
+
+ private:
+ LONG my_Reference_Count;
+ };
+
+private:
+
+};
+
+#endif
diff --git a/EXCLUDE/GLTSF/src/TSF.cpp b/EXCLUDE/GLTSF/src/TSF.cpp
new file mode 100644
index 000000000..f21d968cd
--- /dev/null
+++ b/EXCLUDE/GLTSF/src/TSF.cpp
@@ -0,0 +1 @@
+#include "TSF.hpp"