/*++

Copyright (c) 1997 Microsoft Corporation. All rights reserved.

MODULE NAME:

    davrpc.idl

ABSTRACT:

    DavClient to DAV Service RPC interface definition for the web client 
    service.

CREATED:

    03/30/99    Andy Herron [AndyHe]
    
    01/23/00    Rohan Kumar [RohanK]

REVISION HISTORY:

--*/

[   
uuid(c8cb7687-e6d3-11d2-a958-00c04f682e16),
version(1.0),
pointer_default(unique)
] 

interface davclntrpc
{

import "wtypes.idl";

//
// The RPC Function interface.
//

DWORD
DavrCreateConnection(
    [in, string, unique] wchar_t *LocalName,
    [in, string] wchar_t *RemoteName,
    [in] DWORD Type,
    [in, string, unique] wchar_t *Password,
    [in, string, unique] wchar_t *UserName
    );

DWORD
DavrDoesServerDoDav(
   [in, string, ref] wchar_t *ServerName,
   [in, out, ref] boolean *DoesDav
   );

DWORD
DavrIsValidShare(
   [in, string, ref] wchar_t *ServerName,
   [in, string, ref] wchar_t *ShareName,
   [in, out, ref] boolean *ValidShare
   );

DWORD
DavrEnumNetUses(
   [in, out, ref] DWORD *Index,
   [in, out, string, ref] wchar_t *LocalName,
   [in, out, string, ref] wchar_t *RemoteName,
   [in, out, ref] boolean *Done
   );

DWORD
DavrEnumShares(
   [in, out, ref] DWORD *Index,
   [in, string, ref] wchar_t *ServerName,
   [in, out, string, ref] wchar_t *RemoteName,
   [in, out, ref] boolean *Done
   );

DWORD
DavrEnumServers(
   [in, out, ref] DWORD *Index,
   [in, out, ref] DWORD *ServerNameMaxLen,
   [in, out, string, ref] wchar_t *RemoteName,
   [in, out, ref] boolean *Done
   );

DWORD
DavrGetConnection(
   [in, string, ref] wchar_t *LocalName,
   [in, out, string, ref] wchar_t *RemoteName,
   [in, out, ref] DWORD *BufferSize,
   [in, out, ref] boolean *Connected
   );

DWORD
DavrDeleteConnection(
    [in, string, ref] wchar_t *ConnectionName,
    [in] DWORD UseForce
    );

DWORD
DavrGetUser(
    [in, out, ref] DWORD *UserNameLength,
    [in, string, ref] wchar_t *ConnectionName,
    [in, out, string, ref] wchar_t *UserName
    );

DWORD
DavrConnectionExist(
    [in, string, ref] wchar_t *ConnectionName
    );

DWORD
DavrWinlogonLogonEvent(
   void
   );

DWORD
DavrWinlogonLogoffEvent(
   void
   );


DWORD
DavrGetDiskSpaceUsage(
   [out, size_is(Size), length_is(*pLength), ref]   wchar_t  *lptzLocation,
   [in] long Size,
   [out, ref] long *pLength,
   [in, out, ref] ULARGE_INTEGER   *lpMaxSpace,
   [in, out, ref] ULARGE_INTEGER   *lpUsedSpace
   );

DWORD
DavrFreeUsedDiskSpace(
    [in ] DWORD   dwPercent
    );
}

