[2/2] qmgr: Add a stub implementation of IBackgroundCopyJob2.
Dan Hipschman
dsh at linux.ucla.edu
Tue Mar 18 20:31:02 CDT 2008
This adds a stub implementation for IBackgroundCopyJob2. The SetCredentials
method (for starters) of that interface is needed by the VC++ 2005 installer.
This patch needs make_makefiles run after applying.
---
dlls/qmgr/enum_files.c | 2 +-
dlls/qmgr/job.c | 150 +++++++++++++++++++++++++++++++++-----------
dlls/qmgr/qmgr.h | 10 ++-
dlls/qmgr/qmgr_local.idl | 5 +-
dlls/qmgrprxy/qmgrprxy.idl | 5 +-
include/bits1_5.idl | 88 ++++++++++++++++++++++++++
6 files changed, 217 insertions(+), 43 deletions(-)
create mode 100644 include/bits1_5.idl
diff --git a/dlls/qmgr/enum_files.c b/dlls/qmgr/enum_files.c
index 36afc33..a25d455 100644
--- a/dlls/qmgr/enum_files.c
+++ b/dlls/qmgr/enum_files.c
@@ -168,7 +168,7 @@ static const IEnumBackgroundCopyFilesVtbl BITS_IEnumBackgroundCopyFiles_Vtbl =
BITS_IEnumBackgroundCopyFiles_GetCount
};
-HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj, IBackgroundCopyJob* iCopyJob)
+HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj, BITS_IBackgroundCopyJob *iCopyJob)
{
EnumBackgroundCopyFilesImpl *This;
BackgroundCopyFileImpl *file;
diff --git a/dlls/qmgr/job.c b/dlls/qmgr/job.c
index e8cd839..af9bc8a 100644
--- a/dlls/qmgr/job.c
+++ b/dlls/qmgr/job.c
@@ -35,20 +35,21 @@ static void BackgroundCopyJobDestructor(BackgroundCopyJobImpl *This)
HeapFree(GetProcessHeap(), 0, This);
}
-static ULONG WINAPI BITS_IBackgroundCopyJob_AddRef(IBackgroundCopyJob* iface)
+static ULONG WINAPI BITS_IBackgroundCopyJob_AddRef(BITS_IBackgroundCopyJob *iface)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
return InterlockedIncrement(&This->ref);
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_QueryInterface(
- IBackgroundCopyJob* iface, REFIID riid, LPVOID *ppvObject)
+ BITS_IBackgroundCopyJob *iface, REFIID riid, LPVOID *ppvObject)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
TRACE("IID: %s\n", debugstr_guid(riid));
if (IsEqualGUID(riid, &IID_IUnknown)
- || IsEqualGUID(riid, &IID_IBackgroundCopyJob))
+ || IsEqualGUID(riid, &IID_IBackgroundCopyJob)
+ || IsEqualGUID(riid, &IID_IBackgroundCopyJob2))
{
*ppvObject = &This->lpVtbl;
BITS_IBackgroundCopyJob_AddRef(iface);
@@ -59,7 +60,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_QueryInterface(
return E_NOINTERFACE;
}
-static ULONG WINAPI BITS_IBackgroundCopyJob_Release(IBackgroundCopyJob* iface)
+static ULONG WINAPI BITS_IBackgroundCopyJob_Release(BITS_IBackgroundCopyJob *iface)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
ULONG ref = InterlockedDecrement(&This->ref);
@@ -73,7 +74,7 @@ static ULONG WINAPI BITS_IBackgroundCopyJob_Release(IBackgroundCopyJob* iface)
/*** IBackgroundCopyJob methods ***/
static HRESULT WINAPI BITS_IBackgroundCopyJob_AddFileSet(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG cFileCount,
BG_FILE_INFO *pFileSet)
{
@@ -89,7 +90,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_AddFileSet(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_AddFile(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPCWSTR RemoteUrl,
LPCWSTR LocalName)
{
@@ -118,7 +119,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_AddFile(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_EnumFiles(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
IEnumBackgroundCopyFiles **ppEnum)
{
TRACE("\n");
@@ -126,14 +127,14 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_EnumFiles(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_Suspend(
- IBackgroundCopyJob* iface)
+ BITS_IBackgroundCopyJob *iface)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_Resume(
- IBackgroundCopyJob* iface)
+ BITS_IBackgroundCopyJob *iface)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
HRESULT rv = S_OK;
@@ -160,14 +161,14 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_Resume(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_Cancel(
- IBackgroundCopyJob* iface)
+ BITS_IBackgroundCopyJob *iface)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_Complete(
- IBackgroundCopyJob* iface)
+ BITS_IBackgroundCopyJob *iface)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
HRESULT rv = S_OK;
@@ -209,7 +210,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_Complete(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetId(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
GUID *pVal)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
@@ -218,7 +219,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetId(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetType(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_TYPE *pVal)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
@@ -231,7 +232,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetType(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetProgress(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_PROGRESS *pVal)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
@@ -250,7 +251,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetProgress(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetTimes(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_TIMES *pVal)
{
FIXME("Not implemented\n");
@@ -258,7 +259,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetTimes(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetState(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_STATE *pVal)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
@@ -272,7 +273,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetState(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetError(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
IBackgroundCopyError **ppError)
{
FIXME("Not implemented\n");
@@ -280,7 +281,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetError(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetOwner(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPWSTR *pVal)
{
FIXME("Not implemented\n");
@@ -288,7 +289,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetOwner(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetDisplayName(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPCWSTR Val)
{
FIXME("Not implemented\n");
@@ -296,7 +297,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetDisplayName(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetDisplayName(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPWSTR *pVal)
{
BackgroundCopyJobImpl *This = (BackgroundCopyJobImpl *) iface;
@@ -314,7 +315,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetDisplayName(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetDescription(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPCWSTR Val)
{
FIXME("Not implemented\n");
@@ -322,7 +323,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetDescription(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetDescription(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
LPWSTR *pVal)
{
FIXME("Not implemented\n");
@@ -330,7 +331,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetDescription(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetPriority(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_PRIORITY Val)
{
FIXME("Not implemented\n");
@@ -338,7 +339,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetPriority(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetPriority(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_PRIORITY *pVal)
{
FIXME("Not implemented\n");
@@ -346,7 +347,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetPriority(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNotifyFlags(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG Val)
{
FIXME("Not implemented\n");
@@ -354,7 +355,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNotifyFlags(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNotifyFlags(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG *pVal)
{
FIXME("Not implemented\n");
@@ -362,7 +363,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNotifyFlags(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNotifyInterface(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
IUnknown *Val)
{
FIXME("Not implemented\n");
@@ -370,7 +371,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNotifyInterface(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNotifyInterface(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
IUnknown **pVal)
{
FIXME("Not implemented\n");
@@ -378,7 +379,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNotifyInterface(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetMinimumRetryDelay(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG Seconds)
{
FIXME("Not implemented\n");
@@ -386,7 +387,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetMinimumRetryDelay(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetMinimumRetryDelay(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG *Seconds)
{
FIXME("Not implemented\n");
@@ -394,7 +395,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetMinimumRetryDelay(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNoProgressTimeout(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG Seconds)
{
FIXME("Not implemented\n");
@@ -402,7 +403,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNoProgressTimeout(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNoProgressTimeout(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG *Seconds)
{
FIXME("Not implemented\n");
@@ -410,7 +411,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNoProgressTimeout(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetErrorCount(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
ULONG *Errors)
{
FIXME("Not implemented\n");
@@ -418,7 +419,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetErrorCount(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_SetProxySettings(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_PROXY_USAGE ProxyUsage,
const WCHAR *ProxyList,
const WCHAR *ProxyBypassList)
@@ -428,7 +429,7 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_SetProxySettings(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_GetProxySettings(
- IBackgroundCopyJob* iface,
+ BITS_IBackgroundCopyJob *iface,
BG_JOB_PROXY_USAGE *pProxyUsage,
LPWSTR *pProxyList,
LPWSTR *pProxyBypassList)
@@ -438,14 +439,81 @@ static HRESULT WINAPI BITS_IBackgroundCopyJob_GetProxySettings(
}
static HRESULT WINAPI BITS_IBackgroundCopyJob_TakeOwnership(
- IBackgroundCopyJob* iface)
+ BITS_IBackgroundCopyJob *iface)
{
FIXME("Not implemented\n");
return E_NOTIMPL;
}
+static HRESULT WINAPI BITS_IBackgroundCopyJob_SetNotifyCmdLine(
+ BITS_IBackgroundCopyJob *iface,
+ LPCWSTR prog,
+ LPCWSTR params)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_GetNotifyCmdLine(
+ BITS_IBackgroundCopyJob *iface,
+ LPWSTR prog,
+ LPWSTR params)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_GetReplyProgress(
+ BITS_IBackgroundCopyJob *iface,
+ BG_JOB_REPLY_PROGRESS *progress)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_GetReplyData(
+ BITS_IBackgroundCopyJob *iface,
+ byte **pBuffer,
+ UINT64 *pLength)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_SetReplyFileName(
+ BITS_IBackgroundCopyJob *iface,
+ LPCWSTR filename)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_GetReplyFileName(
+ BITS_IBackgroundCopyJob *iface,
+ LPWSTR *pFilename)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_SetCredentials(
+ BITS_IBackgroundCopyJob *iface,
+ BG_AUTH_CREDENTIALS *cred)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI BITS_IBackgroundCopyJob_RemoveCredentials(
+ BITS_IBackgroundCopyJob *iface,
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme)
+{
+ FIXME("Not implemented\n");
+ return E_NOTIMPL;
+}
-static const IBackgroundCopyJobVtbl BITS_IBackgroundCopyJob_Vtbl =
+static const IBackgroundCopyJob2Vtbl BITS_IBackgroundCopyJob_Vtbl =
{
BITS_IBackgroundCopyJob_QueryInterface,
BITS_IBackgroundCopyJob_AddRef,
@@ -482,6 +550,14 @@ static const IBackgroundCopyJobVtbl BITS_IBackgroundCopyJob_Vtbl =
BITS_IBackgroundCopyJob_SetProxySettings,
BITS_IBackgroundCopyJob_GetProxySettings,
BITS_IBackgroundCopyJob_TakeOwnership,
+ BITS_IBackgroundCopyJob_SetNotifyCmdLine,
+ BITS_IBackgroundCopyJob_GetNotifyCmdLine,
+ BITS_IBackgroundCopyJob_GetReplyProgress,
+ BITS_IBackgroundCopyJob_GetReplyData,
+ BITS_IBackgroundCopyJob_SetReplyFileName,
+ BITS_IBackgroundCopyJob_GetReplyFileName,
+ BITS_IBackgroundCopyJob_SetCredentials,
+ BITS_IBackgroundCopyJob_RemoveCredentials
};
HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type,
diff --git a/dlls/qmgr/qmgr.h b/dlls/qmgr/qmgr.h
index 9530b97..57a19ee 100644
--- a/dlls/qmgr/qmgr.h
+++ b/dlls/qmgr/qmgr.h
@@ -25,7 +25,7 @@
#include "objbase.h"
#define COBJMACROS
-#include "bits.h"
+#include "bits1_5.h"
#include <string.h>
#include "wine/list.h"
@@ -33,7 +33,7 @@
/* Background copy job vtbl and related data */
typedef struct
{
- const IBackgroundCopyJobVtbl *lpVtbl;
+ const IBackgroundCopyJob2Vtbl *lpVtbl;
LONG ref;
LPWSTR displayName;
BG_JOB_TYPE type;
@@ -93,6 +93,10 @@ typedef struct
const IClassFactoryVtbl *lpVtbl;
} ClassFactoryImpl;
+/* This makes it easier to upgrade to IBackgroundCopyJob3, IBackgroundCopyJob4,
+ and whatever else MS decides to tack on later. */
+typedef IBackgroundCopyJob2 BITS_IBackgroundCopyJob;
+
extern HANDLE stop_event;
extern ClassFactoryImpl BITS_ClassFactory;
extern BackgroundCopyManagerImpl globalMgr;
@@ -106,7 +110,7 @@ HRESULT BackgroundCopyFileConstructor(BackgroundCopyJobImpl *owner,
LPCWSTR remoteName, LPCWSTR localName,
LPVOID *ppObj);
HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj,
- IBackgroundCopyJob* copyJob);
+ BITS_IBackgroundCopyJob *copyJob);
DWORD WINAPI fileTransfer(void *param);
void processJob(BackgroundCopyJobImpl *job);
BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job);
diff --git a/dlls/qmgr/qmgr_local.idl b/dlls/qmgr/qmgr_local.idl
index f72325f..8e1341d 100644
--- a/dlls/qmgr/qmgr_local.idl
+++ b/dlls/qmgr/qmgr_local.idl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Google (Roy Shea)
+ * Copyright (C) 2007, 2008 Google (Roy Shea, Dan Hipschman)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,3 +17,6 @@
*/
#include "bits.idl"
+
+#define DO_NO_IMPORTS
+#include "bits1_5.idl"
diff --git a/dlls/qmgrprxy/qmgrprxy.idl b/dlls/qmgrprxy/qmgrprxy.idl
index 4b47b18..e1bdce1 100644
--- a/dlls/qmgrprxy/qmgrprxy.idl
+++ b/dlls/qmgrprxy/qmgrprxy.idl
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Google (Roy Shea)
+ * Copyright 2007, 2008 Google (Roy Shea, Dan Hipschman)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,3 +17,6 @@
*/
#include "bits.idl"
+
+#define DO_NO_IMPORTS
+#include "bits1_5.idl"
diff --git a/include/bits1_5.idl b/include/bits1_5.idl
new file mode 100644
index 0000000..0bb27ca
--- /dev/null
+++ b/include/bits1_5.idl
@@ -0,0 +1,88 @@
+/*
+ * Background Intelligent Transfer Service (BITS) 1.5 interface
+ *
+ * Copyright 2008 Google (Dan Hipschman)
+ *
+ * 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
+ *
+ */
+
+#ifndef DO_NO_IMPORTS
+import "bits.idl";
+#endif
+
+[
+ uuid(54b50739-686f-45eb-9dff-d6a9a0faa9af),
+ odl
+]
+interface IBackgroundCopyJob2 : IBackgroundCopyJob
+{
+ HRESULT SetNotifyCmdLine([unique] LPCWSTR prog, [unique] LPCWSTR params);
+ HRESULT GetNotifyCmdLine([out] LPWSTR prog, [out] LPWSTR params);
+
+ typedef struct _BG_JOB_REPLY_PROGRESS
+ {
+ UINT64 BytesTotal;
+ UINT64 BytesTransferred;
+ } BG_JOB_REPLY_PROGRESS;
+
+ HRESULT GetReplyProgress([in, out] BG_JOB_REPLY_PROGRESS *progress);
+ HRESULT GetReplyData([out, size_is( , (unsigned long) *pLength)] byte **pBuffer,
+ [in, out, unique] UINT64 *pLength);
+ HRESULT SetReplyFileName([unique] LPCWSTR filename);
+ HRESULT GetReplyFileName([out] LPWSTR *pFilename);
+
+ typedef enum
+ {
+ BG_AUTH_TARGET_SERVER = 1,
+ BG_AUTH_TARGET_PROXY
+ } BG_AUTH_TARGET;
+
+ typedef enum
+ {
+ BG_AUTH_SCHEME_BASIC = 1,
+ BG_AUTH_SCHEME_DIGEST,
+ BG_AUTH_SCHEME_NTLM,
+ BG_AUTH_SCHEME_NEGOTIATE,
+ BG_AUTH_SCHEME_PASSPORT
+ } BG_AUTH_SCHEME;
+
+ typedef struct
+ {
+ LPWSTR UserName;
+ LPWSTR Password;
+ } BG_BASIC_CREDENTIALS;
+ typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS;
+
+ typedef [switch_type(BG_AUTH_SCHEME)] union
+ {
+ [case(BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM,
+ BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT)]
+ BG_BASIC_CREDENTIALS Basic;
+ [default]
+ ;
+ } BG_AUTH_CREDENTIALS_UNION;
+
+ typedef struct
+ {
+ BG_AUTH_TARGET Target;
+ BG_AUTH_SCHEME Scheme;
+ [switch_is(Scheme)] BG_AUTH_CREDENTIALS_UNION Credentials;
+ } BG_AUTH_CREDENTIALS;
+ typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS;
+
+ HRESULT SetCredentials(BG_AUTH_CREDENTIALS *cred);
+ HRESULT RemoveCredentials(BG_AUTH_TARGET target, BG_AUTH_SCHEME scheme);
+}
More information about the wine-patches
mailing list