uint16_t libmapiserver_RopWriteStream_size(struct EcDoRpc_MAPI_REPL *);
uint16_t libmapiserver_RopGetStreamSize_size(struct EcDoRpc_MAPI_REPL *);
uint16_t libmapiserver_RopGetPropertyIdsFromNames_size(struct EcDoRpc_MAPI_REPL *);
-int libmapiserver_push_property(TALLOC_CTX *, struct smb_iconv_convenience *, uint32_t, const void *, DATA_BLOB *, uint8_t, uint8_t);
+int libmapiserver_push_property(TALLOC_CTX *, struct smb_iconv_convenience *, uint32_t, const void *, DATA_BLOB *, uint8_t, uint8_t, uint8_t);
struct SRow *libmapiserver_ROP_request_to_properties(TALLOC_CTX *, void *, uint8_t);
/* definitions from libmapiserver_oxcstor.c */
const void *value,
DATA_BLOB *blob,
uint8_t layout,
- uint8_t flagged)
+ uint8_t flagged,
+ uint8_t untyped)
{
struct ndr_push *ndr;
ndr->offset = blob->length;
}
- /* Step 1. Is the property flagged */
+ /* Step 1. Is the property typed */
+ if (untyped) {
+ ndr_push_uint16(ndr, NDR_SCALARS, property & 0xFFFF);
+ }
+
+ /* Step 2. Is the property flagged */
if (flagged) {
switch (property & 0xFFFF) {
case PT_ERROR:
break;
}
} else {
- /* Step 2. Set the layout */
+ /* Step 3. Set the layout */
if (layout) {
switch (property & 0xFFFF) {
case PT_ERROR:
}
}
- /* Step 2. Push property data if supported */
+ /* Step 3. Push property data if supported */
switch (property & 0xFFFF) {
case PT_I2:
ndr_push_uint16(ndr, NDR_SCALARS, *(uint16_t *) value);
break;
}
end:
- /* Step 3. Steal ndr context */
+ /* Step 4. Steal ndr context */
blob->data = ndr->data;
talloc_steal(mem_ctx, blob->data);
blob->length = ndr->offset;