Hi, My IDL / libmapi is a bit rusty, so would appreciate a review on the change below.
Essentially I'm updating the IDL for 0x6f to match the MS documentation (MS-OXOMSG 2.2.4.4). We don't appear to have an implementation for this yet. I'd prefer to be able to use SBinary_short for the HelpFile element, but I can't see how I could then manage the optional HelpFileName element. Any tricks / suggestions? Brad --- exchange.idl (revision 1296) +++ exchange.idl (working copy) @@ -871,7 +871,7 @@ op_MAPI_SetCollapseState = 0x6c, op_MAPI_GetTransportFolder = 0x6d, op_MAPI_Pending = 0x6e, - op_MAPI_RegisterOptions = 0x6f, + op_MAPI_OptionsData = 0x6f, op_MAPI_SyncConfigure = 0x70, op_MAPI_SyncImportMessageChange = 0x72, op_MAPI_SyncImportHierarchyChange = 0x73, @@ -2962,20 +2962,23 @@ /*************************/ /* EcDoRpc Function 0x6f */ - typedef [enum8bit,flag(NDR_NOALIGN)] enum { - OPTION_TYPE_RECIPIENT = 0x1, - OPTION_TYPE_MESSAGE = 0x2 - } OPTIONDATA_ulFlags; - typedef [flag(NDR_NOALIGN)] struct { - astring transport; - OPTIONDATA_ulFlags type; - } RegisterOptions_req; + astring AddressType; + boolean8 WantWin32; + } OptionsData_req; + typedef [nodiscriminant, flag(NDR_NOALIGN)] union { + [case(0x0)]; + [default] astring HelpFileName; + } HelpFileName; + typedef [flag(NDR_NOALIGN)] struct { - OPTIONDATA_ulFlags ulFlags; - DATA_BLOB data; - } RegisterOptions_repl; + uint8 reserved; + SBinary_short OptionsInfo; + uint16 HelpFileSize; + uint8 HelpFile[HelpFileSize]; + [switch_is(HelpFileSize)] HelpFileName HelpFileName; + } OptionsData_repl; /*************************/ /* EcDoRpc Function 0x70 */ @@ -3421,7 +3424,7 @@ [case(op_MAPI_GetCollapseState)] GetCollapseState_req mapi_GetCollapseState; [case(op_MAPI_SetCollapseState)] SetCollapseState_req mapi_SetCollapseState; [case(op_MAPI_GetTransportFolder)] GetTransportFolder_req mapi_GetTransportFolder; - [case(op_MAPI_RegisterOptions)] RegisterOptions_req mapi_RegisterOptions; + [case(op_MAPI_OptionsData)] OptionsData_req mapi_OptionsData; [case(op_MAPI_SyncConfigure)] SyncConfigure_req mapi_SyncConfigure; [case(op_MAPI_SyncImportMessageChange)] SyncImportMessageChange_req mapi_SyncImportMessageChange; [case(op_MAPI_SyncImportHierarchyChange)] SyncImportHierarchyChange_req mapi_SyncImportHierarchyChange; @@ -3536,7 +3539,7 @@ [case(op_MAPI_GetCollapseState)] GetCollapseState_repl mapi_GetCollapseState; [case(op_MAPI_SetCollapseState)] SetCollapseState_repl mapi_SetCollapseState; [case(op_MAPI_GetTransportFolder)] GetTransportFolder_repl mapi_GetTransportFolder; - [case(op_MAPI_RegisterOptions)] RegisterOptions_repl mapi_RegisterOptions; + [case(op_MAPI_OptionsData)] OptionsData_repl mapi_OptionsData; [case(op_MAPI_SyncConfigure)] SyncConfigure_repl mapi_SyncConfigure; [case(op_MAPI_SyncImportMessageChange)] SyncImportMessageChange_repl mapi_SyncImportMessageChange; [case(op_MAPI_SyncImportHierarchyChange)] SyncImportHierarchyChange_repl mapi_SyncImportHierarchyChange; _______________________________________________ devel mailing list devel@lists.openchange.org http://mailman.openchange.org/listinfo/devel