/** * xrdp: A Remote Desktop Protocol server. * * Copyright (C) Jay Sorg 2012-2014 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if !defined(_RAIL_H) #define _RAIL_H /* ORDER_TYPE_WINDOW WINDOW_ORDER_TYPE_WINDOW WINDOW_ORDER_ICON WINDOW_ORDER_CACHED_ICON WINDOW_ORDER_STATE_DELETED WINDOW_ORDER_STATE_NEW on WINDOW_ORDER_STATE_NEW off WINDOW_ORDER_TYPE_NOTIFY WINDOW_ORDER_STATE_DELETED WINDOW_ORDER_STATE_NEW on WINDOW_ORDER_STATE_NEW off WINDOW_ORDER_TYPE_DESKTOP WINDOW_ORDER_FIELD_DESKTOP_NONE on WINDOW_ORDER_FIELD_DESKTOP_NONE off */ /* Window Order Header Flags */ #define WINDOW_ORDER_TYPE_WINDOW 0x01000000 #define WINDOW_ORDER_TYPE_NOTIFY 0x02000000 #define WINDOW_ORDER_TYPE_DESKTOP 0x04000000 #define WINDOW_ORDER_STATE_NEW 0x10000000 #define WINDOW_ORDER_STATE_DELETED 0x20000000 #define WINDOW_ORDER_FIELD_OWNER 0x00000002 #define WINDOW_ORDER_FIELD_STYLE 0x00000008 #define WINDOW_ORDER_FIELD_SHOW 0x00000010 #define WINDOW_ORDER_FIELD_TITLE 0x00000004 #define WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET 0x00004000 #define WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE 0x00010000 #define WINDOW_ORDER_FIELD_RP_CONTENT 0x00020000 #define WINDOW_ORDER_FIELD_ROOT_PARENT 0x00040000 #define WINDOW_ORDER_FIELD_WND_OFFSET 0x00000800 #define WINDOW_ORDER_FIELD_WND_CLIENT_DELTA 0x00008000 #define WINDOW_ORDER_FIELD_WND_SIZE 0x00000400 #define WINDOW_ORDER_FIELD_WND_RECTS 0x00000100 #define WINDOW_ORDER_FIELD_VIS_OFFSET 0x00001000 #define WINDOW_ORDER_FIELD_VISIBILITY 0x00000200 #define WINDOW_ORDER_FIELD_ICON_BIG 0x00002000 #define WINDOW_ORDER_ICON 0x40000000 #define WINDOW_ORDER_CACHED_ICON 0x80000000 #define WINDOW_ORDER_FIELD_NOTIFY_VERSION 0x00000008 #define WINDOW_ORDER_FIELD_NOTIFY_TIP 0x00000001 #define WINDOW_ORDER_FIELD_NOTIFY_INFO_TIP 0x00000002 #define WINDOW_ORDER_FIELD_NOTIFY_STATE 0x00000004 #define WINDOW_ORDER_FIELD_DESKTOP_NONE 0x00000001 #define WINDOW_ORDER_FIELD_DESKTOP_HOOKED 0x00000002 #define WINDOW_ORDER_FIELD_DESKTOP_ARC_COMPLETED 0x00000004 #define WINDOW_ORDER_FIELD_DESKTOP_ARC_BEGAN 0x00000008 #define WINDOW_ORDER_FIELD_DESKTOP_ZORDER 0x00000010 #define WINDOW_ORDER_FIELD_DESKTOP_ACTIVE_WND 0x00000020 struct rail_icon_info { int bpp; int width; int height; int cmap_bytes; int mask_bytes; int data_bytes; char* mask; char* cmap; char* data; }; struct rail_window_rect { short left; short top; short right; short bottom; }; struct rail_notify_icon_infotip { int timeout; int flags; char* text; char* title; }; struct rail_window_state_order { int owner_window_id; int style; int extended_style; int show_state; char* title_info; int client_offset_x; int client_offset_y; int client_area_width; int client_area_height; int rp_content; int root_parent_handle; int window_offset_x; int window_offset_y; int window_client_delta_x; int window_client_delta_y; int window_width; int window_height; int num_window_rects; struct rail_window_rect* window_rects; int visible_offset_x; int visible_offset_y; int num_visibility_rects; struct rail_window_rect* visibility_rects; }; struct rail_notify_state_order { int version; char* tool_tip; struct rail_notify_icon_infotip infotip; int state; int icon_cache_entry; int icon_cache_id; struct rail_icon_info icon_info; }; struct rail_monitored_desktop_order { int active_window_id; int num_window_ids; int* window_ids; }; #endif