/*++ 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 // // 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 ); }