bits1_5.idl revision 930b5f872e89407f445d4000d4e4aaecaa6a0998
b711a01730152421a900e5f4e237cfb848c9c4fdvboxsync/*
b711a01730152421a900e5f4e237cfb848c9c4fdvboxsync * Background Intelligent Transfer Service (BITS) 1.5 interface
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync *
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * Copyright 2008 Google (Dan Hipschman)
2f14f4556ae74ad40719bc9690534693abb71868vboxsync *
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * This library is free software; you can redistribute it and/or
1612ddf488e6d1a459dc02cd7078215985f87081vboxsync * modify it under the terms of the GNU Lesser General Public
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * License as published by the Free Software Foundation; either
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * version 2.1 of the License, or (at your option) any later version.
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync *
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * This library is distributed in the hope that it will be useful,
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * Lesser General Public License for more details.
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync *
94872a0e88ab4f38c786fcf617ddeb4b63a76957vboxsync * You should have received a copy of the GNU Lesser General Public
78a072e1b56619e3230735ae073668311232ec94vboxsync * License along with this library; if not, write to the Free Software
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync *
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync */
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync/*
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * a choice of LGPL license versions is made available with the language indicating
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync * of the LGPL is applied is otherwise unspecified.
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync */
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync#ifndef DO_NO_IMPORTS
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsyncimport "bits.idl";
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync#endif
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync[
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync uuid(54b50739-686f-45eb-9dff-d6a9a0faa9af),
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync odl
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsync]
5142b6456c5cec38e0ee291e235201d4ac73f10bvboxsyncinterface IBackgroundCopyJob2 : IBackgroundCopyJob
78a072e1b56619e3230735ae073668311232ec94vboxsync{
78a072e1b56619e3230735ae073668311232ec94vboxsync HRESULT SetNotifyCmdLine([unique] LPCWSTR prog, [unique] LPCWSTR params);
78a072e1b56619e3230735ae073668311232ec94vboxsync HRESULT GetNotifyCmdLine([out] LPWSTR *prog, [out] LPWSTR *params);
78a072e1b56619e3230735ae073668311232ec94vboxsync
cc260ed3418d1fd2771d0395f818f76808b60238vboxsync typedef struct _BG_JOB_REPLY_PROGRESS
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync UINT64 BytesTotal;
78a072e1b56619e3230735ae073668311232ec94vboxsync UINT64 BytesTransferred;
78a072e1b56619e3230735ae073668311232ec94vboxsync } BG_JOB_REPLY_PROGRESS;
94c538a65fbdfa1ea06f4fe0a65599c1ab0fed58vboxsync
94c538a65fbdfa1ea06f4fe0a65599c1ab0fed58vboxsync HRESULT GetReplyProgress([in, out] BG_JOB_REPLY_PROGRESS *progress);
d0318084c32279bf313f47358242cd61ada858d6vboxsync HRESULT GetReplyData([out, size_is( , (unsigned long) *pLength)] byte **pBuffer,
94c538a65fbdfa1ea06f4fe0a65599c1ab0fed58vboxsync [in, out, unique] UINT64 *pLength);
d5d45608052fd506e4114bf112df6efae7fcd8a7vboxsync HRESULT SetReplyFileName([unique] LPCWSTR filename);
d5d45608052fd506e4114bf112df6efae7fcd8a7vboxsync HRESULT GetReplyFileName([out] LPWSTR *pFilename);
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync typedef enum
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_TARGET_SERVER = 1,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_TARGET_PROXY
78a072e1b56619e3230735ae073668311232ec94vboxsync } BG_AUTH_TARGET;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync typedef enum
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_BASIC = 1,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_DIGEST,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_NTLM,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_NEGOTIATE,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_PASSPORT
78a072e1b56619e3230735ae073668311232ec94vboxsync } BG_AUTH_SCHEME;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync typedef struct
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync LPWSTR UserName;
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync LPWSTR Password;
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync } BG_BASIC_CREDENTIALS;
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS;
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync typedef [switch_type(BG_AUTH_SCHEME)] union
2d86fd6bcfe35a4bb83bb8a4fe68090693cdce95vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync [case(BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM,
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT)]
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_BASIC_CREDENTIALS Basic;
78a072e1b56619e3230735ae073668311232ec94vboxsync [default]
78a072e1b56619e3230735ae073668311232ec94vboxsync ;
78a072e1b56619e3230735ae073668311232ec94vboxsync } BG_AUTH_CREDENTIALS_UNION;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync typedef struct
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_TARGET Target;
78a072e1b56619e3230735ae073668311232ec94vboxsync BG_AUTH_SCHEME Scheme;
78a072e1b56619e3230735ae073668311232ec94vboxsync [switch_is(Scheme)] BG_AUTH_CREDENTIALS_UNION Credentials;
78a072e1b56619e3230735ae073668311232ec94vboxsync } BG_AUTH_CREDENTIALS;
78a072e1b56619e3230735ae073668311232ec94vboxsync typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync HRESULT SetCredentials(BG_AUTH_CREDENTIALS *cred);
78a072e1b56619e3230735ae073668311232ec94vboxsync HRESULT RemoveCredentials(BG_AUTH_TARGET target, BG_AUTH_SCHEME scheme);
78a072e1b56619e3230735ae073668311232ec94vboxsync}
78a072e1b56619e3230735ae073668311232ec94vboxsync