FreeRDP
wf_rail.c File Reference
#include <freerdp/config.h>
#include <winpr/crt.h>
#include <freerdp/log.h>
#include <freerdp/client/rail.h>
#include <winpr/tchar.h>
#include <winpr/print.h>
#include "wf_rail.h"

Macros

#define TAG   CLIENT_TAG("windows")
 
#define GET_X_LPARAM(lParam)   ((UINT16)(lParam & 0xFFFF))
 
#define GET_Y_LPARAM(lParam)   ((UINT16)((lParam >> 16) & 0xFFFF))
 
#define RAIL_DISABLED_WINDOW_STYLES
 
#define RAIL_DISABLED_EXTENDED_WINDOW_STYLES    (WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE | WS_EX_WINDOWEDGE)
 

Functions

static void PrintWindowStyles (UINT32 style)
 
static void PrintExtendedWindowStyles (UINT32 style)
 
static void PrintRailWindowState (const WINDOW_ORDER_INFO *orderInfo, const WINDOW_STATE_ORDER *windowState)
 
static void PrintRailIconInfo (const WINDOW_ORDER_INFO *orderInfo, const ICON_INFO *iconInfo)
 
LRESULT CALLBACK wf_RailWndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
static BOOL wf_rail_window_common (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const WINDOW_STATE_ORDER *windowState)
 
static BOOL wf_rail_window_delete (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo)
 
static BOOL wf_rail_window_icon (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const WINDOW_ICON_ORDER *windowIcon)
 
static BOOL wf_rail_window_cached_icon (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const WINDOW_CACHED_ICON_ORDER *windowCachedIcon)
 
static void wf_rail_notify_icon_common (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const NOTIFY_ICON_STATE_ORDER *notifyIconState)
 
static BOOL wf_rail_notify_icon_create (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const NOTIFY_ICON_STATE_ORDER *notifyIconState)
 
static BOOL wf_rail_notify_icon_update (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const NOTIFY_ICON_STATE_ORDER *notifyIconState)
 
static BOOL wf_rail_notify_icon_delete (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo)
 
static BOOL wf_rail_monitored_desktop (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo, const MONITORED_DESKTOP_ORDER *monitoredDesktop)
 
static BOOL wf_rail_non_monitored_desktop (rdpContext *context, const WINDOW_ORDER_INFO *orderInfo)
 
void wf_rail_register_update_callbacks (rdpUpdate *update)
 
static UINT wf_rail_server_execute_result (RailClientContext *context, const RAIL_EXEC_RESULT_ORDER *execResult)
 
static UINT wf_rail_server_system_param (RailClientContext *context, const RAIL_SYSPARAM_ORDER *sysparam)
 
static UINT wf_rail_server_handshake (RailClientContext *context, const RAIL_HANDSHAKE_ORDER *handshake)
 
static UINT wf_rail_server_handshake_ex (RailClientContext *context, const RAIL_HANDSHAKE_EX_ORDER *handshakeEx)
 
static UINT wf_rail_server_local_move_size (RailClientContext *context, const RAIL_LOCALMOVESIZE_ORDER *localMoveSize)
 
static UINT wf_rail_server_min_max_info (RailClientContext *context, const RAIL_MINMAXINFO_ORDER *minMaxInfo)
 
static UINT wf_rail_server_language_bar_info (RailClientContext *context, const RAIL_LANGBAR_INFO_ORDER *langBarInfo)
 
static UINT wf_rail_server_get_appid_response (RailClientContext *context, const RAIL_GET_APPID_RESP_ORDER *getAppIdResp)
 
void wf_rail_invalidate_region (wfContext *wfc, REGION16 *invalidRegion)
 
BOOL wf_rail_init (wfContext *wfc, RailClientContext *rail)
 
void wf_rail_uninit (wfContext *wfc, RailClientContext *rail)
 

Variables

static const WINDOW_STYLE WINDOW_STYLES []
 
static const WINDOW_STYLE EXTENDED_WINDOW_STYLES []
 

Macro Definition Documentation

◆ GET_X_LPARAM

#define GET_X_LPARAM (   lParam)    ((UINT16)(lParam & 0xFFFF))

◆ GET_Y_LPARAM

#define GET_Y_LPARAM (   lParam)    ((UINT16)((lParam >> 16) & 0xFFFF))

◆ RAIL_DISABLED_EXTENDED_WINDOW_STYLES

#define RAIL_DISABLED_EXTENDED_WINDOW_STYLES    (WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE | WS_EX_WINDOWEDGE)

◆ RAIL_DISABLED_WINDOW_STYLES

#define RAIL_DISABLED_WINDOW_STYLES
Value:
#define WS_CAPTION
Definition: include/freerdp/window.h:84
#define WS_MAXIMIZEBOX
Definition: include/freerdp/window.h:94
#define WS_OVERLAPPED
Definition: include/freerdp/window.h:97
#define WS_SYSMENU
Definition: include/freerdp/window.h:103
#define WS_BORDER
Definition: include/freerdp/window.h:83
#define WS_VSCROLL
Definition: include/freerdp/window.h:107
#define WS_DLGFRAME
Definition: include/freerdp/window.h:89
#define WS_MINIMIZEBOX
Definition: include/freerdp/window.h:96
#define WS_THICKFRAME
Definition: include/freerdp/window.h:105

◆ TAG

#define TAG   CLIENT_TAG("windows")

FreeRDP: A Remote Desktop Protocol Implementation

Copyright 2013-2014 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com

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.

Function Documentation

◆ PrintExtendedWindowStyles()

static void PrintExtendedWindowStyles ( UINT32  style)
static
Here is the caller graph for this function:

◆ PrintRailIconInfo()

static void PrintRailIconInfo ( const WINDOW_ORDER_INFO orderInfo,
const ICON_INFO iconInfo 
)
static
Here is the caller graph for this function:

◆ PrintRailWindowState()

static void PrintRailWindowState ( const WINDOW_ORDER_INFO orderInfo,
const WINDOW_STATE_ORDER windowState 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ PrintWindowStyles()

static void PrintWindowStyles ( UINT32  style)
static
Here is the caller graph for this function:

◆ wf_rail_init()

BOOL wf_rail_init ( wfContext *  wfc,
RailClientContext *  rail 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_invalidate_region()

void wf_rail_invalidate_region ( wfContext *  wfc,
REGION16 invalidRegion 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_monitored_desktop()

static BOOL wf_rail_monitored_desktop ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const MONITORED_DESKTOP_ORDER monitoredDesktop 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_non_monitored_desktop()

static BOOL wf_rail_non_monitored_desktop ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_notify_icon_common()

static void wf_rail_notify_icon_common ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const NOTIFY_ICON_STATE_ORDER notifyIconState 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_notify_icon_create()

static BOOL wf_rail_notify_icon_create ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const NOTIFY_ICON_STATE_ORDER notifyIconState 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_notify_icon_delete()

static BOOL wf_rail_notify_icon_delete ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_notify_icon_update()

static BOOL wf_rail_notify_icon_update ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const NOTIFY_ICON_STATE_ORDER notifyIconState 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_register_update_callbacks()

void wf_rail_register_update_callbacks ( rdpUpdate *  update)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_server_execute_result()

static UINT wf_rail_server_execute_result ( RailClientContext *  context,
const RAIL_EXEC_RESULT_ORDER execResult 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_server_get_appid_response()

static UINT wf_rail_server_get_appid_response ( RailClientContext *  context,
const RAIL_GET_APPID_RESP_ORDER getAppIdResp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the caller graph for this function:

◆ wf_rail_server_handshake()

static UINT wf_rail_server_handshake ( RailClientContext *  context,
const RAIL_HANDSHAKE_ORDER handshake 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_server_handshake_ex()

static UINT wf_rail_server_handshake_ex ( RailClientContext *  context,
const RAIL_HANDSHAKE_EX_ORDER handshakeEx 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_server_language_bar_info()

static UINT wf_rail_server_language_bar_info ( RailClientContext *  context,
const RAIL_LANGBAR_INFO_ORDER langBarInfo 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the caller graph for this function:

◆ wf_rail_server_local_move_size()

static UINT wf_rail_server_local_move_size ( RailClientContext *  context,
const RAIL_LOCALMOVESIZE_ORDER localMoveSize 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the caller graph for this function:

◆ wf_rail_server_min_max_info()

static UINT wf_rail_server_min_max_info ( RailClientContext *  context,
const RAIL_MINMAXINFO_ORDER minMaxInfo 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the caller graph for this function:

◆ wf_rail_server_system_param()

static UINT wf_rail_server_system_param ( RailClientContext *  context,
const RAIL_SYSPARAM_ORDER sysparam 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the caller graph for this function:

◆ wf_rail_uninit()

void wf_rail_uninit ( wfContext *  wfc,
RailClientContext *  rail 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_window_cached_icon()

static BOOL wf_rail_window_cached_icon ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const WINDOW_CACHED_ICON_ORDER windowCachedIcon 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_window_common()

static BOOL wf_rail_window_common ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const WINDOW_STATE_ORDER windowState 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_window_delete()

static BOOL wf_rail_window_delete ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_rail_window_icon()

static BOOL wf_rail_window_icon ( rdpContext *  context,
const WINDOW_ORDER_INFO orderInfo,
const WINDOW_ICON_ORDER windowIcon 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wf_RailWndProc()

LRESULT CALLBACK wf_RailWndProc ( HWND  hWnd,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)
Here is the caller graph for this function:

Variable Documentation

◆ EXTENDED_WINDOW_STYLES

const WINDOW_STYLE EXTENDED_WINDOW_STYLES[]
static
Initial value:
= {
{ WS_EX_ACCEPTFILES, "WS_EX_ACCEPTFILES", FALSE },
{ WS_EX_APPWINDOW, "WS_EX_APPWINDOW", FALSE },
{ WS_EX_CLIENTEDGE, "WS_EX_CLIENTEDGE", FALSE },
{ WS_EX_COMPOSITED, "WS_EX_COMPOSITED", FALSE },
{ WS_EX_CONTEXTHELP, "WS_EX_CONTEXTHELP", FALSE },
{ WS_EX_CONTROLPARENT, "WS_EX_CONTROLPARENT", FALSE },
{ WS_EX_DLGMODALFRAME, "WS_EX_DLGMODALFRAME", FALSE },
{ WS_EX_LAYERED, "WS_EX_LAYERED", FALSE },
{ WS_EX_LAYOUTRTL, "WS_EX_LAYOUTRTL", FALSE },
{ WS_EX_LEFT, "WS_EX_LEFT", FALSE },
{ WS_EX_LEFTSCROLLBAR, "WS_EX_LEFTSCROLLBAR", FALSE },
{ WS_EX_LTRREADING, "WS_EX_LTRREADING", FALSE },
{ WS_EX_MDICHILD, "WS_EX_MDICHILD", FALSE },
{ WS_EX_NOACTIVATE, "WS_EX_NOACTIVATE", FALSE },
{ WS_EX_NOINHERITLAYOUT, "WS_EX_NOINHERITLAYOUT", FALSE },
{ WS_EX_NOPARENTNOTIFY, "WS_EX_NOPARENTNOTIFY", FALSE },
{ WS_EX_OVERLAPPEDWINDOW, "WS_EX_OVERLAPPEDWINDOW", TRUE },
{ WS_EX_PALETTEWINDOW, "WS_EX_PALETTEWINDOW", TRUE },
{ WS_EX_RIGHT, "WS_EX_RIGHT", FALSE },
{ WS_EX_RIGHTSCROLLBAR, "WS_EX_RIGHTSCROLLBAR", FALSE },
{ WS_EX_RTLREADING, "WS_EX_RTLREADING", FALSE },
{ WS_EX_STATICEDGE, "WS_EX_STATICEDGE", FALSE },
{ WS_EX_TOOLWINDOW, "WS_EX_TOOLWINDOW", FALSE },
{ WS_EX_TOPMOST, "WS_EX_TOPMOST", FALSE },
{ WS_EX_TRANSPARENT, "WS_EX_TRANSPARENT", FALSE },
{ WS_EX_WINDOWEDGE, "WS_EX_WINDOWEDGE", FALSE }
}
#define WS_EX_LAYOUTRTL
Definition: include/freerdp/window.h:120
#define WS_EX_STATICEDGE
Definition: include/freerdp/window.h:133
#define WS_EX_COMPOSITED
Definition: include/freerdp/window.h:115
#define WS_EX_NOPARENTNOTIFY
Definition: include/freerdp/window.h:127
#define WS_EX_RIGHTSCROLLBAR
Definition: include/freerdp/window.h:131
#define WS_EX_ACCEPTFILES
Definition: include/freerdp/window.h:112
#define WS_EX_APPWINDOW
Definition: include/freerdp/window.h:113
#define WS_EX_CONTROLPARENT
Definition: include/freerdp/window.h:117
#define WS_EX_NOACTIVATE
Definition: include/freerdp/window.h:125
#define WS_EX_TOOLWINDOW
Definition: include/freerdp/window.h:134
#define WS_EX_DLGMODALFRAME
Definition: include/freerdp/window.h:118
#define WS_EX_PALETTEWINDOW
Definition: include/freerdp/window.h:129
#define WS_EX_MDICHILD
Definition: include/freerdp/window.h:124
#define WS_EX_TOPMOST
Definition: include/freerdp/window.h:135
#define WS_EX_WINDOWEDGE
Definition: include/freerdp/window.h:137
#define WS_EX_LAYERED
Definition: include/freerdp/window.h:119
#define WS_EX_LTRREADING
Definition: include/freerdp/window.h:123
#define WS_EX_TRANSPARENT
Definition: include/freerdp/window.h:136
#define WS_EX_CLIENTEDGE
Definition: include/freerdp/window.h:114
#define WS_EX_LEFTSCROLLBAR
Definition: include/freerdp/window.h:122
#define WS_EX_CONTEXTHELP
Definition: include/freerdp/window.h:116
#define WS_EX_OVERLAPPEDWINDOW
Definition: include/freerdp/window.h:128
#define WS_EX_RTLREADING
Definition: include/freerdp/window.h:132
#define WS_EX_LEFT
Definition: include/freerdp/window.h:121
#define WS_EX_NOINHERITLAYOUT
Definition: include/freerdp/window.h:126
#define WS_EX_RIGHT
Definition: include/freerdp/window.h:130

◆ WINDOW_STYLES

const WINDOW_STYLE WINDOW_STYLES[]
static
Initial value:
= { { WS_BORDER, "WS_BORDER", FALSE },
{ WS_CAPTION, "WS_CAPTION", FALSE },
{ WS_CHILD, "WS_CHILD", FALSE },
{ WS_CLIPCHILDREN, "WS_CLIPCHILDREN", FALSE },
{ WS_CLIPSIBLINGS, "WS_CLIPSIBLINGS", FALSE },
{ WS_DISABLED, "WS_DISABLED", FALSE },
{ WS_DLGFRAME, "WS_DLGFRAME", FALSE },
{ WS_GROUP, "WS_GROUP", FALSE },
{ WS_HSCROLL, "WS_HSCROLL", FALSE },
{ WS_ICONIC, "WS_ICONIC", FALSE },
{ WS_MAXIMIZE, "WS_MAXIMIZE", FALSE },
{ WS_MAXIMIZEBOX, "WS_MAXIMIZEBOX", FALSE },
{ WS_MINIMIZE, "WS_MINIMIZE", FALSE },
{ WS_MINIMIZEBOX, "WS_MINIMIZEBOX", FALSE },
{ WS_OVERLAPPED, "WS_OVERLAPPED", FALSE },
{ WS_OVERLAPPEDWINDOW, "WS_OVERLAPPEDWINDOW", TRUE },
{ WS_POPUP, "WS_POPUP", FALSE },
{ WS_POPUPWINDOW, "WS_POPUPWINDOW", TRUE },
{ WS_SIZEBOX, "WS_SIZEBOX", FALSE },
{ WS_SYSMENU, "WS_SYSMENU", FALSE },
{ WS_TABSTOP, "WS_TABSTOP", FALSE },
{ WS_THICKFRAME, "WS_THICKFRAME", FALSE },
{ WS_VISIBLE, "WS_VISIBLE", FALSE } }
#define WS_CHILD
Definition: include/freerdp/window.h:85
#define WS_OVERLAPPEDWINDOW
Definition: include/freerdp/window.h:98
#define WS_SIZEBOX
Definition: include/freerdp/window.h:102
#define WS_ICONIC
Definition: include/freerdp/window.h:92
#define WS_MAXIMIZE
Definition: include/freerdp/window.h:93
#define WS_TABSTOP
Definition: include/freerdp/window.h:104
#define WS_POPUP
Definition: include/freerdp/window.h:100
#define WS_GROUP
Definition: include/freerdp/window.h:90
#define WS_MINIMIZE
Definition: include/freerdp/window.h:95
#define WS_VISIBLE
Definition: include/freerdp/window.h:106
#define WS_DISABLED
Definition: include/freerdp/window.h:88
#define WS_CLIPSIBLINGS
Definition: include/freerdp/window.h:87
#define WS_HSCROLL
Definition: include/freerdp/window.h:91
#define WS_POPUPWINDOW
Definition: include/freerdp/window.h:101
#define WS_CLIPCHILDREN
Definition: include/freerdp/window.h:86