WINDS.IDL
[ 
    uuid(DDFFFE60-36D0-11CE-9F2D-00AA00510E3B), 
    version(1.6), 
    pointer_default(unique) 
] 
 
#define MAX_ALIAS_SIZE      16+1 
#define MAX_STRING_SIZE     32+1 
#define MAX_PHONE_SIZE      12+1 
#define MAX_COMMENT_SIZE    79+1 
#define MAX_PASSWORD_SIZE   MAX_ALIAS_SIZE 
 
interface WINDSREM 
{ 
    long RemoteIsServerRunning 
            (); 
    long RemoteGetAllAccounts 
            ([out] long *                                               pPipeNumber); 
    long RemoteFinishUpload                                              
            ([in, string] unsigned char *                               szCookie); 
    long RemoteGetContainerProps                                         
            ([in] unsigned long                                         dwContainerID, 
             [out] unsigned long *                                      pdwContentCount); 
    long RemoteGetContainerRecipients                                    
            ([in] unsigned long                                         dwFlags, 
             [in] unsigned long                                         dwContainerID,  
             [out] long *                                               pPipeNumber); 
    long RemoteGetPublicFoldersList                                      
            ([in] short                                                 nFlags, 
             [out] long *                                               pPipeNumber); 
    long RemoteGetPublicFolderMessages                                   
            ([in] short                                                 nFlags, 
             [in] unsigned long                                         dwFolderID, 
             [out] long *                                               pPipeNumber); 
                                                                         
    // ANSI Remote server calls 
    long RemoteChangePasswordA                                           
            ([in] unsigned char *                                       szMailbox, 
             [in, string] unsigned char *                               szOldPassword, 
             [in, string] unsigned char *                               szNewPassword); 
    long RemoteLogonMailBoxA                                             
            ([in, string] unsigned char *                               szMailbox, 
             [in, string] unsigned char *                               szPassword, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szFullName, 
             [out] unsigned long *                                      pdwMailboxID); 
    long RemoteLogonMailBoxAndSetNotifA 
            ([in, string] unsigned char *                               szMailbox, 
             [in, string] unsigned char *                               szPassword, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szFullName, 
             [out] unsigned long *                                      pdwMailboxID, 
             [in, string] unsigned char *                               szComputerName, 
             [in] unsigned long                                         ulNotifMask, 
             [out] unsigned long *                                      pulConnectionID); 
    long RemoteTerminateNotifA 
            ([in, string] unsigned char *                               szComputerName, 
             [in] unsigned long                                         ulConnectionID); 
    long RemoteValidateNotifA 
            ([in, string] unsigned char *                               szComputerName, 
             [in, string] unsigned char *                               szMailboxName, 
             [in] unsigned long                                         ulNotifMask, 
             [out] unsigned long *                                      pulConnectionID); 
    long RemoteOpenMsgUploadPipeA 
            ([in, string] unsigned char *                               szSenderMailbox, 
             [out] long *                                               pPipeNumber, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szCookie); 
    long RemoteSendMsgToAccountA 
            ([in, string] unsigned char *                               szRecipAccount, 
             [in, string] unsigned char *                               szHeaderInfo, 
             [in, string] unsigned char *                               szCookie); 
    long RemoteOpenMsgDownloadPipeA                                      
            ([in, string] unsigned char *                               szMailbox, 
             [out] unsigned long *                                      pPipeNumber); 
    long RemoteOpenHeaderDownloadPipeA                                   
            ([in, string] unsigned char *                               szMailbox, 
             [out] long *                                               pPipeNumber); 
    long RemoteCheckNewMailA                                             
            ([in, string] unsigned char *                               szMailbox, 
             [out] unsigned long *                                      pulPending); 
    long RemoteOpenOneMsgDownloadPipeA                                   
            ([in, string] unsigned char *                               szMailbox, 
             [out] long *                                               pPipeNumber); 
    long RemoteGetRecipientPropsA  
            ([in] unsigned long                                         dwObjID, 
             [out] unsigned long *                                      pdwUserType, 
             [out, string, size_is(MAX_ALIAS_SIZE)] unsigned char *     szMailboxName, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szFullName, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szJobTitle, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szOffice, 
             [out, string, size_is(MAX_PHONE_SIZE)] unsigned char *     szPhone, 
             [out, string, size_is(MAX_PHONE_SIZE)] unsigned char *     szAltPhone, 
             [out, string, size_is(MAX_PHONE_SIZE)] unsigned char *     szFax, 
             [out, string, size_is(MAX_COMMENT_SIZE)] unsigned char *   szComments, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szCompany, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szDepartment, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szManagerName, 
             [out, string, size_is(MAX_ALIAS_SIZE)] unsigned char *     szManagerAlias, 
             [out] unsigned long *                                      pdwManagerID); 
    long RemoteGetDistListPropsA 
            ([in] unsigned long                                         dwObjID, 
             [out, string, size_is(MAX_ALIAS_SIZE)] unsigned char *     szDLAlias, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szDLFullName, 
             [out] unsigned long *                                      pdwContentCount, 
             [out, string, size_is(MAX_ALIAS_SIZE)] unsigned char *     szOwnerAlias, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szOwnerName, 
             [out, string, size_is(MAX_COMMENT_SIZE)] unsigned char *   szComments); 
 
    // UNICODE Remote server calls 
    long RemoteChangePasswordW 
            ([in] wchar_t *                                             szMailbox, 
             [in, string] wchar_t *                                     szOldPassword, 
             [in, string] wchar_t *                                     szNewPassword); 
    long RemoteLogonMailBoxW 
            ([in, string] wchar_t *                                     szMailbox, 
             [in, string] wchar_t *                                     szPassword, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szFullName, 
             [out] unsigned long *                                      pdwMailboxID); 
    long RemoteLogonMailBoxAndSetNotifW 
            ([in, string] wchar_t *                                     szMailbox, 
             [in, string] wchar_t *                                     szPassword, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szFullName, 
             [out] unsigned long *                                      pdwMailboxID, 
             [in, string] wchar_t *                                     szComputerName, 
             [in] unsigned long                                         ulNotifMask, 
             [out] unsigned long *                                      pulConnectionID); 
    long RemoteTerminateNotifW 
            ([in, string] wchar_t *                                     szComputerName, 
             [in] unsigned long                                         ulConnectionID); 
    long RemoteValidateNotifW 
            ([in, string] wchar_t *                                     szComputerName, 
             [in, string] wchar_t *                                     szMailboxName, 
             [in] unsigned long                                         ulNotifMask, 
             [out] unsigned long *                                      pulConnectionID); 
    long RemoteOpenMsgUploadPipeW 
            ([in, string] wchar_t *                                     szSenderMailbox, 
             [out] long *                                               pPipeNumber, 
             [out, string, size_is(MAX_STRING_SIZE)] unsigned char *    szCookie); 
    long RemoteSendMsgToAccountW 
            ([in, string] wchar_t *                                     szRecipAccount, 
             [in, string] wchar_t *                                     szHeaderInfo, 
             [in, string] wchar_t *                                     szCookie); 
    long RemoteOpenMsgDownloadPipeW 
            ([in, string] wchar_t *                                     szMailbox, 
             [out] unsigned long *                                      pPipeNumber); 
    long RemoteOpenHeaderDownloadPipeW 
            ([in, string] wchar_t *                                     szMailbox, 
             [out] long *                                               pPipeNumber); 
    long RemoteCheckNewMailW 
            ([in, string] wchar_t *                                     szMailbox, 
             [out] unsigned long *                                      pulPending); 
    long RemoteOpenOneMsgDownloadPipeW 
            ([in, string] wchar_t *                                     szMailbox, 
             [out] long *                                               pPipeNumber); 
    long RemoteGetRecipientPropsW 
            ([in] unsigned long                                         dwObjID, 
             [out] unsigned long *                                      pdwUserType, 
             [out, string, size_is(MAX_ALIAS_SIZE)] wchar_t *           szMailboxName, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szFullName, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szJobTitle, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szOffice, 
             [out, string, size_is(MAX_PHONE_SIZE)] wchar_t *           szPhone, 
             [out, string, size_is(MAX_PHONE_SIZE)] wchar_t *           szAltPhone, 
             [out, string, size_is(MAX_PHONE_SIZE)] wchar_t *           szFax, 
             [out, string, size_is(MAX_COMMENT_SIZE)] wchar_t *         szComments, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szCompany, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szDepartment, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szManagerName, 
             [out, string, size_is(MAX_ALIAS_SIZE)] wchar_t *           szManagerAlias, 
             [out] unsigned long *                                      pdwManagerID); 
    long RemoteGetDistListPropsW 
            ([in] unsigned long                                         dwObjID, 
             [out, string, size_is(MAX_ALIAS_SIZE)] wchar_t *           szDLAlias, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szDLFullName, 
             [out] unsigned long *                                      pdwContentCount, 
             [out, string, size_is(MAX_ALIAS_SIZE)] wchar_t *           szOwnerAlias, 
             [out, string, size_is(MAX_STRING_SIZE)] wchar_t *          szOwnerName, 
             [out, string, size_is(MAX_COMMENT_SIZE)] wchar_t *         szComments); 
}