diff --git a/include/.cvsignore b/include/.cvsignore
index aca0479b074714e64a8839ff62f59becc53ad44d..cb44926b6019a79c3838b4901d8d9712c52904a2 100644
--- a/include/.cvsignore
+++ b/include/.cvsignore
@@ -21,6 +21,7 @@ oleidl.h
 propidl.h
 pstore.h
 richole.h
+sensevts.h
 servprov.h
 shldisp.h
 shobjidl.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 9d45e4dcf100c8119f04bff18a3536b7a2684315..44612e29efc987f61005d7520b8b7616e4e0054d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -26,6 +26,7 @@ IDL_SRCS = \
 	propidl.idl \
 	pstore.idl \
 	richole.idl \
+	sensevts.idl \
 	servprov.idl \
 	shldisp.idl \
 	shobjidl.idl \
diff --git a/include/sensevts.idl b/include/sensevts.idl
new file mode 100644
index 0000000000000000000000000000000000000000..573020eb84f2621eb3024cf293aacd276089fc4a
--- /dev/null
+++ b/include/sensevts.idl
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2005 Mike McCormack
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+import "oaidl.idl";
+
+typedef struct SENS_QOCINFO
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+    DWORD dwOutSpeed;
+    DWORD dwInSpeed;
+} SENS_QOCINFO, *LPSENS_QOCINFO;
+
+[
+  object,
+  pointer_default(unique)
+]
+interface ISensNetwork : IDispatch
+{
+    HRESULT ConnectionMade(
+        [in] BSTR bstrConnection,
+        [in] ULONG ulType,
+        [in] LPSENS_QOCINFO lpQOCInfo );
+    HRESULT ConnectionMadeNoQOCInfo(
+        [in] BSTR bstrConnection,
+        [in] ULONG ulType );
+    HRESULT ConnectionLost(
+        [in] BSTR bstrConnection,
+        [in] ULONG ulType );
+    HRESULT DestinationReachable(
+        [in] BSTR bstrDestination,
+        [in] BSTR bstrConnection,
+        [in] ULONG ulType,
+        [in] LPSENS_QOCINFO lpQOCInfo );
+    HRESULT DestinationReachableNoQOCInfo(
+        [in] BSTR bstrDestination,
+        [in] BSTR bstrConnection,
+        [in] ULONG ulType );
+}
+
+[
+  object,
+  pointer_default(unique)
+]
+interface ISensOnNow : IDispatch
+{
+    HRESULT OnAcPower( void );
+    HRESULT OnBatteryPower(
+        [in] DWORD dwBatteryLifePercent );
+    HRESULT BatteryLow(
+        [in] DWORD dwBatteryLifePercent );
+}
+
+[
+  object,
+  pointer_default(unique)
+]
+interface ISensLogon : IDispatch
+{
+    HRESULT Logon(
+        [in] BSTR bstrUserName );
+    HRESULT Logoff(
+        [in] BSTR bstrUserName );
+    HRESULT StartShell(
+        [in] BSTR bstrUserName );
+    HRESULT DisplayLock(
+        [in] BSTR bstrUserName );
+    HRESULT DisplayUnlock(
+        [in] BSTR bstrUserName );
+    HRESULT StartScreenSaver(
+        [in] BSTR bstrUserName );
+    HRESULT StopScreenSaver(
+        [in] BSTR bstrUserName );
+}
+
+[
+  object,
+  pointer_default(unique)
+]
+interface ISensLogon2 : IDispatch
+{
+    HRESULT Logon(
+        [in] BSTR bstrUserName,
+        [in] DWORD dwSessionId );
+    HRESULT Logoff(
+        [in] BSTR bstrUserName,
+        [in] DWORD dwSessionId );
+    HRESULT SessionDisconnect(
+        [in] BSTR bstrUserName,
+        [in] DWORD dwSessionId );
+    HRESULT SessionReconnect(
+        [in] BSTR bstrUserName,
+        [in] DWORD dwSessionId );
+    HRESULT PostShell(
+        [in] BSTR bstrUserName,
+        [in] DWORD dwSessionId );
+}