/*++

Copyright (c) 1992  Microsoft Corporation

Module Name:

    atsvc.idl

Abstract:

    This is the IDL file that describes the RPC interface for the (remotable)
    APIs that reside in the   schedule == scheduler == at == job   service.
    This consists of the following APIs:

        NetJobEnum
        NetJobAdd
        NetJobDel
        NetJobControl   -   BUGBUG      not implemented yet

    Also contains the RPC specific data structures for these APIs.

Author:

    Vladimir Z. Vulovic     (vladimv)       06 - November - 1992

Environment:

    User Mode - Win32 - MIDL

Revision History:

    06-Nov-1992     vladimv
        Created

--*/

//
// Interface Attributes
//

[
    uuid(1FF70682-0A51-30E8-076D-740BE8CEE98B),
    version(1.0),
#ifdef __midl
	ms_union,
#endif // __midl
    pointer_default(unique)
]


//
// Interface Keyword
//

interface atsvc


//
// Interface Body
//

{

import   "imports.idl";
#include <lmcons.h>

//
// BUGBUG - take this definition out when midl understands LPWSTR etc
//

#ifdef UNICODE
#define LPTSTR  wchar_t *
#endif


//
// ---------------------------------------------------------------//
//


typedef [handle] LPCWSTR ATSVC_HANDLE;


//
//  Schedule service data structures.
//

typedef struct _AT_ENUM_CONTAINER {
    DWORD EntriesRead;
    [size_is( EntriesRead)] LPAT_ENUM Buffer;
} AT_ENUM_CONTAINER, *PAT_ENUM_CONTAINER, *LPAT_ENUM_CONTAINER;


//
//  Schedule service API-s.
//

NET_API_STATUS
NetrJobAdd(
    [in,string,unique]      ATSVC_HANDLE            ServerName,
    [in]                    LPAT_INFO               pAtInfo,
    [out]                   LPDWORD                 pJobId
    );

NET_API_STATUS
NetrJobDel(
    [in,string,unique]      ATSVC_HANDLE            ServerName,
    [in]                    DWORD                   MinJobId,
    [in]                    DWORD                   MaxJobId
    );

NET_API_STATUS
NetrJobEnum(
    [in,string,unique]      ATSVC_HANDLE            ServerName,
    [in,out]                LPAT_ENUM_CONTAINER     pEnumContainer,
    [in]                    DWORD                   PreferedMaximumLength,
    [out]                   LPDWORD                 pTotalEntries,
    [in,out,unique]         LPDWORD                 pResumeHandle
    );

NET_API_STATUS
NetrJobGetInfo(
    [in,string,unique]      ATSVC_HANDLE            ServerName,
    [in]                    DWORD                   JobId,
    [out]                   LPAT_INFO *             ppAtInfo
    );
}