void update_read_notify_icon_infotip(STREAM* s, NOTIFY_ICON_INFOTIP* notify_icon_infotip) { stream_read_uint32(s, notify_icon_infotip->timeout); /* timeout (4 bytes) */ stream_read_uint32(s, notify_icon_infotip->flags); /* infoFlags (4 bytes) */ rail_read_unicode_string(s, ¬ify_icon_infotip->text); /* infoTipText */ rail_read_unicode_string(s, ¬ify_icon_infotip->title); /* title */ }
BOOL update_read_notify_icon_infotip(wStream* s, NOTIFY_ICON_INFOTIP* notify_icon_infotip) { if(stream_get_left(s) < 8) return FALSE; stream_read_UINT32(s, notify_icon_infotip->timeout); /* timeout (4 bytes) */ stream_read_UINT32(s, notify_icon_infotip->flags); /* infoFlags (4 bytes) */ return rail_read_unicode_string(s, ¬ify_icon_infotip->text) && /* infoTipText */ rail_read_unicode_string(s, ¬ify_icon_infotip->title); /* title */ }
BOOL update_read_notify_icon_infotip(wStream* s, NOTIFY_ICON_INFOTIP* notifyIconInfoTip) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT32(s, notifyIconInfoTip->timeout); /* timeout (4 bytes) */ Stream_Read_UINT32(s, notifyIconInfoTip->flags); /* infoFlags (4 bytes) */ return rail_read_unicode_string(s, ¬ifyIconInfoTip->text) && /* infoTipText */ rail_read_unicode_string(s, ¬ifyIconInfoTip->title); /* title */ }
BOOL update_read_notification_icon_state_order(wStream* s, WINDOW_ORDER_INFO* orderInfo, NOTIFY_ICON_STATE_ORDER* notify_icon_state) { if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_VERSION) { if(stream_get_left(s) < 4) return FALSE; stream_read_UINT32(s, notify_icon_state->version); /* version (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_TIP) { if(!rail_read_unicode_string(s, ¬ify_icon_state->toolTip)) /* toolTip (UNICODE_STRING) */ return FALSE; } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_INFO_TIP) { if(!update_read_notify_icon_infotip(s, ¬ify_icon_state->infoTip)) /* infoTip (NOTIFY_ICON_INFOTIP) */ return FALSE; } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_STATE) { if(stream_get_left(s) < 4) return FALSE; stream_read_UINT32(s, notify_icon_state->state); /* state (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_ICON) { if(!update_read_icon_info(s, ¬ify_icon_state->icon)) /* icon (ICON_INFO) */ return FALSE; } if (orderInfo->fieldFlags & WINDOW_ORDER_CACHED_ICON) { if(!update_read_cached_icon_info(s, ¬ify_icon_state->cachedIcon)) /* cachedIcon (CACHED_ICON_INFO) */ return FALSE; } return TRUE; }
void rail_read_server_exec_result_order(STREAM* s, RAIL_EXEC_RESULT_ORDER* exec_result) { stream_read_uint16(s, exec_result->flags); /* flags (2 bytes) */ stream_read_uint16(s, exec_result->execResult); /* execResult (2 bytes) */ stream_read_uint32(s, exec_result->rawResult); /* rawResult (4 bytes) */ stream_seek_uint16(s); /* padding (2 bytes) */ rail_read_unicode_string(s, &exec_result->exeOrFile); /* exeOrFile */ }
BOOL rail_read_server_exec_result_order(wStream* s, RAIL_EXEC_RESULT_ORDER* exec_result) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT16(s, exec_result->flags); /* flags (2 bytes) */ Stream_Read_UINT16(s, exec_result->execResult); /* execResult (2 bytes) */ Stream_Read_UINT32(s, exec_result->rawResult); /* rawResult (4 bytes) */ Stream_Seek_UINT16(s); /* padding (2 bytes) */ return rail_read_unicode_string(s, &exec_result->exeOrFile); /* exeOrFile */ }
void update_read_notification_icon_state_order(STREAM* s, WINDOW_ORDER_INFO* orderInfo, NOTIFY_ICON_STATE_ORDER* notify_icon_state) { if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_VERSION) stream_read_uint32(s, notify_icon_state->version); /* version (4 bytes) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_TIP) rail_read_unicode_string(s, ¬ify_icon_state->toolTip); /* toolTip (UNICODE_STRING) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_INFO_TIP) update_read_notify_icon_infotip(s, ¬ify_icon_state->infoTip); /* infoTip (NOTIFY_ICON_INFOTIP) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_NOTIFY_STATE) stream_read_uint32(s, notify_icon_state->state); /* state (4 bytes) */ if (orderInfo->fieldFlags & WINDOW_ORDER_ICON) update_read_icon_info(s, ¬ify_icon_state->icon); /* icon (ICON_INFO) */ if (orderInfo->fieldFlags & WINDOW_ORDER_CACHED_ICON) update_read_cached_icon_info(s, ¬ify_icon_state->cachedIcon); /* cachedIcon (CACHED_ICON_INFO) */ }
BOOL update_read_window_state_order(wStream* s, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* windowState) { int i; int size; if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_OWNER) { if (Stream_GetRemainingLength(s) < 4) return FALSE; Stream_Read_UINT32(s, windowState->ownerWindowId); /* ownerWindowId (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_STYLE) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT32(s, windowState->style); /* style (4 bytes) */ Stream_Read_UINT32(s, windowState->extendedStyle); /* extendedStyle (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_SHOW) { if (Stream_GetRemainingLength(s) < 1) return FALSE; Stream_Read_UINT8(s, windowState->showState); /* showState (1 byte) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_TITLE) { if (!rail_read_unicode_string(s, &windowState->titleInfo)) /* titleInfo */ return FALSE; } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET) { if (Stream_GetRemainingLength(s) < 4) return FALSE; Stream_Read_UINT32(s, windowState->clientOffsetX); /* clientOffsetX (4 bytes) */ Stream_Read_UINT32(s, windowState->clientOffsetY); /* clientOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE) { if (Stream_GetRemainingLength(s) < 4) return FALSE; Stream_Read_UINT32(s, windowState->clientAreaWidth); /* clientAreaWidth (4 bytes) */ Stream_Read_UINT32(s, windowState->clientAreaHeight); /* clientAreaHeight (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_RP_CONTENT) { if (Stream_GetRemainingLength(s) < 1) return FALSE; Stream_Read_UINT8(s, windowState->RPContent); /* RPContent (1 byte) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_ROOT_PARENT) { if (Stream_GetRemainingLength(s) < 4) return FALSE; Stream_Read_UINT32(s, windowState->rootParentHandle);/* rootParentHandle (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_OFFSET) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT32(s, windowState->windowOffsetX); /* windowOffsetX (4 bytes) */ Stream_Read_UINT32(s, windowState->windowOffsetY); /* windowOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_CLIENT_DELTA) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT32(s, windowState->windowClientDeltaX); /* windowClientDeltaX (4 bytes) */ Stream_Read_UINT32(s, windowState->windowClientDeltaY); /* windowClientDeltaY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_SIZE) { if (Stream_GetRemainingLength(s) < 8) return FALSE; Stream_Read_UINT32(s, windowState->windowWidth); /* windowWidth (4 bytes) */ Stream_Read_UINT32(s, windowState->windowHeight); /* windowHeight (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_RECTS) { if (Stream_GetRemainingLength(s) < 2) return FALSE; Stream_Read_UINT16(s, windowState->numWindowRects); /* numWindowRects (2 bytes) */ size = sizeof(RECTANGLE_16) * windowState->numWindowRects; windowState->windowRects = (RECTANGLE_16*) malloc(size); if (Stream_GetRemainingLength(s) < 8 * windowState->numWindowRects) return FALSE; /* windowRects */ for (i = 0; i < (int) windowState->numWindowRects; i++) { Stream_Read_UINT16(s, windowState->windowRects[i].left); /* left (2 bytes) */ Stream_Read_UINT16(s, windowState->windowRects[i].top); /* top (2 bytes) */ Stream_Read_UINT16(s, windowState->windowRects[i].right); /* right (2 bytes) */ Stream_Read_UINT16(s, windowState->windowRects[i].bottom); /* bottom (2 bytes) */ } } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_VIS_OFFSET) { if (Stream_GetRemainingLength(s) < 4) return FALSE; Stream_Read_UINT32(s, windowState->visibleOffsetX); /* visibleOffsetX (4 bytes) */ Stream_Read_UINT32(s, windowState->visibleOffsetY); /* visibleOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_VISIBILITY) { if (Stream_GetRemainingLength(s) < 2) return FALSE; Stream_Read_UINT16(s, windowState->numVisibilityRects); /* numVisibilityRects (2 bytes) */ size = sizeof(RECTANGLE_16) * windowState->numVisibilityRects; windowState->visibilityRects = (RECTANGLE_16*) malloc(size); if (Stream_GetRemainingLength(s) < windowState->numVisibilityRects * 8) return FALSE; /* visibilityRects */ for (i = 0; i < (int) windowState->numVisibilityRects; i++) { Stream_Read_UINT16(s, windowState->visibilityRects[i].left); /* left (2 bytes) */ Stream_Read_UINT16(s, windowState->visibilityRects[i].top); /* top (2 bytes) */ Stream_Read_UINT16(s, windowState->visibilityRects[i].right); /* right (2 bytes) */ Stream_Read_UINT16(s, windowState->visibilityRects[i].bottom); /* bottom (2 bytes) */ } } return TRUE; }
void update_read_window_state_order(STREAM* s, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state) { int i; int size; if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_OWNER) stream_read_uint32(s, window_state->ownerWindowId); /* ownerWindowId (4 bytes) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_STYLE) { stream_read_uint32(s, window_state->style); /* style (4 bytes) */ stream_read_uint32(s, window_state->extendedStyle); /* extendedStyle (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_SHOW) stream_read_uint8(s, window_state->showState); /* showState (1 byte) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_TITLE) rail_read_unicode_string(s, &window_state->titleInfo); /* titleInfo */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET) { stream_read_uint32(s, window_state->clientOffsetX); /* clientOffsetX (4 bytes) */ stream_read_uint32(s, window_state->clientOffsetY); /* clientOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE) { stream_read_uint32(s, window_state->clientAreaWidth); /* clientAreaWidth (4 bytes) */ stream_read_uint32(s, window_state->clientAreaHeight); /* clientAreaHeight (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_RP_CONTENT) stream_read_uint8(s, window_state->RPContent); /* RPContent (1 byte) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_ROOT_PARENT) stream_read_uint32(s, window_state->rootParentHandle);/* rootParentHandle (4 bytes) */ if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_OFFSET) { stream_read_uint32(s, window_state->windowOffsetX); /* windowOffsetX (4 bytes) */ stream_read_uint32(s, window_state->windowOffsetY); /* windowOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_CLIENT_DELTA) { stream_read_uint32(s, window_state->windowClientDeltaX); /* windowClientDeltaX (4 bytes) */ stream_read_uint32(s, window_state->windowClientDeltaY); /* windowClientDeltaY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_SIZE) { stream_read_uint32(s, window_state->windowWidth); /* windowWidth (4 bytes) */ stream_read_uint32(s, window_state->windowHeight); /* windowHeight (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_WND_RECTS) { stream_read_uint16(s, window_state->numWindowRects); /* numWindowRects (2 bytes) */ size = sizeof(RECTANGLE_16) * window_state->numWindowRects; window_state->windowRects = (RECTANGLE_16*) xmalloc(size); /* windowRects */ for (i = 0; i < window_state->numWindowRects; i++) { rail_read_rectangle_16(s, &window_state->windowRects[i]); } } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_VIS_OFFSET) { stream_read_uint32(s, window_state->visibleOffsetX); /* visibleOffsetX (4 bytes) */ stream_read_uint32(s, window_state->visibleOffsetY); /* visibleOffsetY (4 bytes) */ } if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_VISIBILITY) { stream_read_uint16(s, window_state->numVisibilityRects); /* numVisibilityRects (2 bytes) */ size = sizeof(RECTANGLE_16) * window_state->numVisibilityRects; window_state->visibilityRects = (RECTANGLE_16*) xmalloc(size); /* visibilityRects */ for (i = 0; i < window_state->numVisibilityRects; i++) { rail_read_rectangle_16(s, &window_state->visibilityRects[i]); } } }