diff --git a/dlls/secur32/thunks.h b/dlls/secur32/thunks.h
new file mode 100644
index 0000000..f68e9a3
--- /dev/null
+++ b/dlls/secur32/thunks.h
@@ -0,0 +1,74 @@
+/* Copyright (C) 2004 Juan Lang
+ *
+ * This file defines thunks between wide char and multibyte functions for
+ * SSPs that only provide one or the other.
+ *
+ * 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
+ */
+
+#ifndef __SECUR32_THUNKS_H__
+#define __SECUR32_THUNKS_H__
+
+/* Prototypes for functions that thunk between wide char and multibyte versions,
+ * for SSPs that only provide one or the other.
+ */
+SECURITY_STATUS SEC_ENTRY thunk_AcquireCredentialsHandleA(
+ SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse,
+ PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
+ PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_AcquireCredentialsHandleW(
+ SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse,
+ PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
+ PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_InitializeSecurityContextA(
+ PCredHandle phCredential, PCtxtHandle phContext,
+ SEC_CHAR *pszTargetName, unsigned long fContextReq,
+ unsigned long Reserved1, unsigned long TargetDataRep, PSecBufferDesc pInput,
+ unsigned long Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
+ unsigned long *pfContextAttr, PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_InitializeSecurityContextW(
+ PCredHandle phCredential, PCtxtHandle phContext,
+ SEC_WCHAR *pszTargetName, unsigned long fContextReq,
+ unsigned long Reserved1, unsigned long TargetDataRep, PSecBufferDesc pInput,
+ unsigned long Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
+ unsigned long *pfContextAttr, PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_ImportSecurityContextA(
+ SEC_CHAR *pszPackage, PSecBuffer pPackedContext, void *Token,
+ PCtxtHandle phContext);
+SECURITY_STATUS SEC_ENTRY thunk_ImportSecurityContextW(
+ SEC_WCHAR *pszPackage, PSecBuffer pPackedContext, void *Token,
+ PCtxtHandle phContext);
+SECURITY_STATUS SEC_ENTRY thunk_AddCredentialsA(PCredHandle hCredentials,
+ SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, unsigned long fCredentialUse,
+ void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
+ PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_AddCredentialsW(PCredHandle hCredentials,
+ SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, unsigned long fCredentialUse,
+ void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
+ PTimeStamp ptsExpiry);
+SECURITY_STATUS SEC_ENTRY thunk_QueryCredentialsAttributesA(
+ PCredHandle phCredential, unsigned long ulAttribute, void *pBuffer);
+SECURITY_STATUS SEC_ENTRY thunk_QueryCredentialsAttributesW(
+ PCredHandle phCredential, unsigned long ulAttribute, void *pBuffer);
+SECURITY_STATUS SEC_ENTRY thunk_QueryContextAttributesA(
+ PCtxtHandle phContext, unsigned long ulAttribute, void *pBuffer);
+SECURITY_STATUS SEC_ENTRY thunk_QueryContextAttributesW(
+ PCtxtHandle phContext, unsigned long ulAttribute, void *pBuffer);
+SECURITY_STATUS SEC_ENTRY thunk_SetContextAttributesA(PCtxtHandle phContext,
+ unsigned long ulAttribute, void *pBuffer, unsigned long cbBuffer);
+SECURITY_STATUS SEC_ENTRY thunk_SetContextAttributesW(PCtxtHandle phContext,
+ unsigned long ulAttribute, void *pBuffer, unsigned long cbBuffer);
+
+#endif /* ndef __SECUR32_THUNKS_H__ */
