[PATCH 2/2] bits IDL: IDL file for BITS

Roy Shea roy at cs.hmc.edu
Wed Dec 5 20:22:40 CST 2007


---
 include/bits.idl |  414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 414 insertions(+), 0 deletions(-)
 create mode 100644 include/bits.idl

diff --git a/include/bits.idl b/include/bits.idl
new file mode 100644
index 0000000..63912ab
--- /dev/null
+++ b/include/bits.idl
@@ -0,0 +1,414 @@
+/*
+ * Background Intelligent Transfer Service (BITS) interface
+ *
+ * Copyright 2007 Google (Roy Shea)
+ *
+ * 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 "unknwn.idl";
+#endif
+
+cpp_quote("#include \"bitsmsg.h\"")
+cpp_quote("#define BG_SIZE_UNKNOWN (UINT64)(-1)")
+cpp_quote("#define BG_NOTIFY_JOB_TRANSFERRED 0x0001")
+cpp_quote("#define BG_NOTIFY_JOB_ERROR 0x0002")
+cpp_quote("#define BG_NOTIFY_DISABLE 0x0004")
+cpp_quote("#define BG_NOTIFY_JOB_MODIFICATION 0x0008")
+
+
+#define BG_ENUM_SIZEIS(maxcount) maxcount
+#define BG_ENUM_LENGTHIS(maxcount,lengthptr) lengthptr ? *lengthptr : maxcount
+
+[
+    uuid(01b7bd23-fb88-4a77-8490-5891d3e4653a),
+    odl
+]
+interface IBackgroundCopyFile : IUnknown
+{
+    typedef struct _BG_FILE_PROGRESS {
+        UINT64 BytesTotal;
+        UINT64 BytesTransferred;
+        BOOL Completed;
+    } BG_FILE_PROGRESS;
+
+    HRESULT GetRemoteName(
+            [out] LPWSTR *pVal
+    );
+
+    HRESULT GetLocalName(
+            [out] LPWSTR *pVal
+    );
+
+    HRESULT GetProgress(
+            [out] BG_FILE_PROGRESS *pVal
+    );
+}
+
+
+[
+    uuid(ca51e165-c365-424c-8d41-24aaa4ff3c40),
+    odl
+]
+interface IEnumBackgroundCopyFiles: IUnknown
+{
+    HRESULT Next(
+            [in] ULONG celt,
+            [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyFile **rgelt,
+            [in,out,unique] ULONG *pceltFetched
+    );
+
+    HRESULT Skip(
+            [in] ULONG celt
+    );
+
+    HRESULT Reset();
+
+    HRESULT Clone(
+            [out] IEnumBackgroundCopyFiles **ppenum
+    );
+
+    HRESULT GetCount(
+            [out] ULONG *puCount
+    );
+}
+
+
+[
+    uuid(19c613a0-fcb8-4f28-81ae-897c3d078f81),
+    odl
+]
+interface IBackgroundCopyError : IUnknown
+{
+    typedef enum {
+        BG_ERROR_CONTEXT_NONE = 0,
+        BG_ERROR_CONTEXT_UNKNOWN = 1,
+        BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,
+        BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION =3,
+        BG_ERROR_CONTEXT_LOCAL_FILE = 4,
+        BG_ERROR_CONTEXT_REMOTE_FILE = 5,
+        BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,
+        BG_ERROR_CONTEXT_REMOTE_APPLICATION =7,
+    } BG_ERROR_CONTEXT;
+
+    HRESULT GetError(
+            [out,ref] BG_ERROR_CONTEXT *pContext,
+            [out,ref] HRESULT *pCode
+    );
+
+    HRESULT GetFile(
+            [out] IBackgroundCopyFile **pVal
+    );
+
+    HRESULT GetErrorDescription(
+            [in] DWORD LanguageId,
+            [out,ref] LPWSTR *pErrorDescription
+    );
+
+    HRESULT GetErrorContextDescription(
+            [in] DWORD LanguageId,
+            [out,ref] LPWSTR *pContextDescription
+    );
+
+    HRESULT GetProtocol(
+            [out,ref] LPWSTR *pProtocol
+    );
+}
+
+
+
+[
+    uuid(37668d37-507e-4160-9316-26306d150b12),
+    odl
+]
+interface IBackgroundCopyJob : IUnknown
+{
+    typedef struct _BG_FILE_INFO {
+        LPWSTR RemoteName;
+        LPWSTR LocalName;
+    } BG_FILE_INFO;
+
+    typedef struct _BG_JOB_PROGRESS {
+        UINT64 BytesTotal;
+        UINT64 BytesTransferred;
+        ULONG FilesTotal;
+        ULONG FilesTransferred;
+    } BG_JOB_PROGRESS;
+
+    typedef struct _BG_JOB_TIMES {
+        FILETIME CreationTime;
+        FILETIME ModificationTime;
+        FILETIME TransferCompletionTime;
+    } BG_JOB_TIMES;
+
+    typedef enum {
+        BG_JOB_PRIORITY_FOREGROUND = 0,
+        BG_JOB_PRIORITY_HIGH = 1,
+        BG_JOB_PRIORITY_NORMAL = 2,
+        BG_JOB_PRIORITY_LOW = 3
+    } BG_JOB_PRIORITY;
+
+    typedef enum {
+        BG_JOB_STATE_QUEUED = 0,
+        BG_JOB_STATE_CONNECTING = 1,
+        BG_JOB_STATE_TRANSFERRING = 2,
+        BG_JOB_STATE_SUSPENDED = 3,
+        BG_JOB_STATE_ERROR = 4,
+        BG_JOB_STATE_TRANSIENT_ERROR = 5,
+        BG_JOB_STATE_TRANSFERRED = 6,
+        BG_JOB_STATE_ACKNOWLEDGED = 7,
+        BG_JOB_STATE_CANCELLED = 8
+    } BG_JOB_STATE;
+
+    typedef enum {
+       BG_JOB_TYPE_DOWNLOAD = 0,
+       BG_JOB_TYPE_UPLOAD = 1,
+       BG_JOB_TYPE_UPLOAD_REPLY = 2
+    } BG_JOB_TYPE;
+
+    typedef enum {
+        BG_JOB_PROXY_USAGE_PRECONFIG,
+        BG_JOB_PROXY_USAGE_NO_PROXY,
+        BG_JOB_PROXY_USAGE_OVERRIDE,
+        BG_JOB_PROXY_USAGE_AUTODETECT
+    } BG_JOB_PROXY_USAGE;
+
+
+    HRESULT AddFileSet(
+            [in] ULONG cFileCount,
+            [in,size_is(cFileCount)] BG_FILE_INFO *pFileSet
+    );
+
+    HRESULT AddFile(
+            [in] LPCWSTR RemoteUrl,
+            [in] LPCWSTR LocalName
+    );
+
+    HRESULT EnumFiles(
+            [out] IEnumBackgroundCopyFiles **pEnum
+    );
+
+    HRESULT Suspend();
+
+    HRESULT Resume();
+
+    HRESULT Cancel();
+
+    HRESULT Complete();
+
+    HRESULT GetId(
+            [out] GUID *pVal
+    );
+
+    HRESULT GetType(
+            [out] BG_JOB_TYPE *pVal
+    );
+
+    HRESULT GetProgress(
+            [out] BG_JOB_PROGRESS *pVal
+    );
+
+    HRESULT GetTimes(
+            [out] BG_JOB_TIMES *pVal
+    );
+
+    HRESULT GetState(
+            [out] BG_JOB_STATE *pVal
+    );
+
+    HRESULT GetError(
+            [out] IBackgroundCopyError **ppError
+    );
+
+    HRESULT GetOwner(
+            [out] LPWSTR *pVal
+    );
+
+    HRESULT SetDisplayName(
+            [in] LPCWSTR Val
+    );
+
+    HRESULT GetDisplayName(
+            [out] LPWSTR *pVal
+    );
+
+    HRESULT SetDescription(
+            [in] LPCWSTR Val
+    );
+
+    HRESULT GetDescription(
+            [out] LPWSTR *pVal
+    );
+
+    HRESULT SetPriority(
+            [in] BG_JOB_PRIORITY Val
+    );
+
+    HRESULT GetPriority(
+            [out] BG_JOB_PRIORITY *pVal
+    );
+
+    HRESULT SetNotifyFlags(
+            [in] ULONG Val
+    );
+
+    HRESULT GetNotifyFlags(
+            [out] ULONG *pVal
+    );
+
+    HRESULT SetNotifyInterface(
+            [in] IUnknown *Val
+    );
+
+    HRESULT GetNotifyInterface(
+            [out] IUnknown ** pVal
+    );
+
+    HRESULT SetMinimumRetryDelay(
+            [in] ULONG Seconds
+    );
+
+    HRESULT GetMinimumRetryDelay(
+            [out] ULONG *Seconds
+    );
+
+    HRESULT SetNoProgressTimeout(
+            [in] ULONG Seconds
+    );
+
+    HRESULT GetNoProgressTimeout(
+            [out] ULONG *Seconds
+    );
+
+    HRESULT GetErrorCount(
+            [out] ULONG *Errors
+    );
+
+    HRESULT SetProxySettings(
+            [in] BG_JOB_PROXY_USAGE ProxyUsage,
+            [in,string,unique] const WCHAR *ProxyList,
+            [in,string,unique] const WCHAR *ProxyBypassList
+    );
+
+    HRESULT GetProxySettings(
+            [out] BG_JOB_PROXY_USAGE *pProxyUsage,
+            [out] LPWSTR *pProxyList,
+            [out] LPWSTR *pProxyBypassList
+    );
+
+    HRESULT TakeOwnership();
+}
+
+[
+    uuid(1af4f612-3b71-466f-8f58-7b6f73ac57ad),
+    odl
+]
+interface IEnumBackgroundCopyJobs : IUnknown
+{
+    HRESULT Next(
+            [in] ULONG celt,
+            [out,size_is(BG_ENUM_SIZEIS(celt)),length_is(BG_ENUM_LENGTHIS(celt,pceltFetched))] IBackgroundCopyJob **rgelt,
+            [in,out,unique] ULONG *pceltFetched
+    );
+
+    HRESULT Skip(
+            [in] ULONG celt
+    );
+
+    HRESULT Reset();
+
+    HRESULT Clone(
+            [out] IEnumBackgroundCopyJobs **ppenum
+    );
+
+    HRESULT GetCount(
+            [out] ULONG *puCount
+    );
+}
+
+
+[
+    uuid(97ea99c7-0186-4ad4-8df9-c5b4e0ed6b22),
+    odl
+]
+interface IBackgroundCopyCallback : IUnknown
+{
+    HRESULT JobTransferred(
+            [in] IBackgroundCopyJob *pJob
+    );
+
+    HRESULT JobError(
+            [in] IBackgroundCopyJob *pJob,
+            [in] IBackgroundCopyError *pError
+    );
+
+    HRESULT JobModification(
+            [in] IBackgroundCopyJob *pJob,
+            [in] DWORD dwReserved
+    );
+}
+
+[
+    uuid(5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c),
+    odl
+]
+interface IBackgroundCopyManager : IUnknown
+{
+    cpp_quote("#define BG_JOB_ENUM_ALL_USERS 0x0001")
+
+    HRESULT CreateJob(
+            [in] LPCWSTR DisplayName,
+            [in] BG_JOB_TYPE Type,
+            [out] GUID *pJobId,
+            [out] IBackgroundCopyJob **ppJob
+    );
+
+    HRESULT GetJob(
+            [in] REFGUID jobID,
+            [out] IBackgroundCopyJob **ppJob
+    );
+
+    HRESULT EnumJobs(
+            [in] DWORD dwFlags,
+            [out] IEnumBackgroundCopyJobs **ppEnum
+    );
+    HRESULT GetErrorDescription(
+            [in] HRESULT hResult,
+            [in] DWORD LanguageId,
+            [out] LPWSTR *pErrorDescription);
+}
+
+
+[
+    uuid(1deeb74f-7915-4560-b558-918c83f176a6),
+    version(1.0)
+]
+library BackgroundCopyManager
+{
+    [
+        uuid(4991d34b-80a1-4291-83b6-3328366b9097),
+    ]
+    coclass BackgroundCopyManager
+    {
+        [default] interface IBackgroundCopyManager;
+    };
+
+    interface IBackgroundCopyCallback;
+}
+
+
+
-- 
1.5.3.1




More information about the wine-patches mailing list