windows-nt/Source/XPSP1/NT/ds/netapi/svcdlls/msgsvc/idl/msgsvc.idl
2020-09-26 16:20:57 +08:00

135 lines
2.7 KiB
Plaintext

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
msgsvc.idl
Abstract:
This is the IDL file that describes the RPC interface for the
remotable NetMessage API that reside in the messenger service.
NOTE: NetMessageBufferSend is in the workstation interface.
Author:
Dan Lafferty (danl) 28-May-1991
Environment:
User Mode -Win32
Revision History:
28-May-1991 danl
Created
--*/
//
// Interface Attributes
//
[
uuid(17FDD703-1827-4E34-79D4-24A55C53BB37),
version(1.0),
#ifdef __midl
ms_union,
#endif // __midl
pointer_default(unique)
]
//
// Interface Keyword
//
interface msgsvc
//
// Interface Body
//
{
import "imports.idl";
#include <lmcons.h>
//
// Define handle types
//
typedef [handle] LPWSTR MSGSVC_HANDLE;
//
// Data Structures Used for Enumeration
//
typedef struct _MSG_INFO_0_CONTAINER {
DWORD EntriesRead;
[size_is(EntriesRead)] LPMSG_INFO_0 Buffer;
} MSG_INFO_0_CONTAINER, *PMSG_INFO_0_CONTAINER, *LPMSG_INFO_0_CONTAINER;
typedef struct _MSG_INFO_1_CONTAINER {
DWORD EntriesRead;
[size_is(EntriesRead)] LPMSG_INFO_1 Buffer;
} MSG_INFO_1_CONTAINER, *PMSG_INFO_1_CONTAINER, *LPMSG_INFO_1_CONTAINER;
typedef struct _MSG_ENUM_STRUCT {
DWORD Level;
[switch_is(Level)] union _MSG_ENUM_UNION {
[case(0)] LPMSG_INFO_0_CONTAINER Level0;
[case(1)] LPMSG_INFO_1_CONTAINER Level1;
} MsgInfo;
} MSG_ENUM_STRUCT, *PMSG_ENUM_STRUCT, *LPMSG_ENUM_STRUCT;
//
// Data Structures Used for GetInfo
// (this would also be used for SetInfo if there was one.)
//
typedef [switch_type(DWORD)] union _MSG_INFO {
[case(0)] LPMSG_INFO_0 MsgInfo0;
[case(1)] LPMSG_INFO_1 MsgInfo1;
} MSG_INFO, *PMSG_INFO, *LPMSG_INFO;
//
// Function Prototypes
//
NET_API_STATUS NET_API_FUNCTION
NetrMessageNameAdd (
[in,string,unique] MSGSVC_HANDLE ServerName,
[in,string] LPWSTR MsgName
);
NET_API_STATUS NET_API_FUNCTION
NetrMessageNameEnum (
[in,string,unique] MSGSVC_HANDLE ServerName,
[in,out] LPMSG_ENUM_STRUCT InfoStruct,
[in] DWORD PrefMaxLen,
[out] LPDWORD TotalEntries,
[in,out,unique] LPDWORD ResumeHandle
);
NET_API_STATUS NET_API_FUNCTION
NetrMessageNameGetInfo (
[in,string,unique] MSGSVC_HANDLE ServerName,
[in,string] LPWSTR MsgName,
[in] DWORD Level,
[out, switch_is(Level)] LPMSG_INFO InfoStruct
);
NET_API_STATUS NET_API_FUNCTION
NetrMessageNameDel (
[in,string,unique] MSGSVC_HANDLE ServerName,
[in,string] LPWSTR MsgName
);
}