CVS: seamlessrdp/ServerExe clipper.rc,1.3,1.4 main.cpp,1.2,1.3 resource.h,1.2,1.3
Peter Åstrand <[email protected]>
| Newsgroups | gmane.network.rdesktop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/rdesktop/seamlessrdp/ServerExe
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13454/ServerExe
Modified Files:
clipper.rc main.cpp resource.h
Log Message:
Should have UNIX LF linebreaks, when running CVS from UNIX.
Index: clipper.rc
===================================================================
RCS file: /cvsroot/rdesktop/seamlessrdp/ServerExe/clipper.rc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** clipper.rc 30 Jun 2005 12:53:07 -0000 1.3
--- clipper.rc 30 Jun 2005 14:14:56 -0000 1.4
***************
*** 1,106 ****
! // Microsoft Visual C++ generated resource script.
! //
! #include "resource.h"
!
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
!
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
!
! /////////////////////////////////////////////////////////////////////////////
! // German (Germany) resources
!
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
! #ifdef _WIN32
! LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
! #pragma code_page(1252)
! #endif //_WIN32
!
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
!
! 1 TEXTINCLUDE
! BEGIN
! "resource.h\0"
! END
!
! 2 TEXTINCLUDE
! BEGIN
! "#include ""afxres.h""\r\n"
! "\0"
! END
!
! 3 TEXTINCLUDE
! BEGIN
! "\r\n"
! "\0"
! END
!
! #endif // APSTUDIO_INVOKED
!
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
!
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_TRAY ICON "icon.ico"
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
!
! IDR_TRAY MENU
! BEGIN
! POPUP "&SeamlessRDP Shell"
! BEGIN
! MENUITEM "&About", ID_WMABOUT
! MENUITEM "&Exit", ID_WMEXIT
! END
! END
!
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
!
! IDD_ABOUT DIALOGEX 0, 0, 125, 81
! STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION |
! WS_SYSMENU
! CAPTION "About"
! FONT 8, "MS Sans Serif", 0, 0, 0x0
! BEGIN
! ICON IDI_TRAY,IDC_STATIC,50,4,21,20
! DEFPUSHBUTTON "OK",IDOK,33,56,50,14
! GROUPBOX "",IDC_STATIC,0,0,124,81
! CTEXT " 0.1",IDC_STATIC,18,41,82,8
! CTEXT "seamlessrdp",IDC_STATIC,19,27,82,8
! END
!
! #endif // German (Germany) resources
! /////////////////////////////////////////////////////////////////////////////
!
!
!
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
!
!
! /////////////////////////////////////////////////////////////////////////////
! #endif // not APSTUDIO_INVOKED
!
--- 1,106 ----
! // Microsoft Visual C++ generated resource script.
! //
! #include "resource.h"
!
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
!
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
!
! /////////////////////////////////////////////////////////////////////////////
! // German (Germany) resources
!
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
! #ifdef _WIN32
! LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
! #pragma code_page(1252)
! #endif //_WIN32
!
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
!
! 1 TEXTINCLUDE
! BEGIN
! "resource.h\0"
! END
!
! 2 TEXTINCLUDE
! BEGIN
! "#include ""afxres.h""\r\n"
! "\0"
! END
!
! 3 TEXTINCLUDE
! BEGIN
! "\r\n"
! "\0"
! END
!
! #endif // APSTUDIO_INVOKED
!
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
!
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_TRAY ICON "icon.ico"
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
!
! IDR_TRAY MENU
! BEGIN
! POPUP "&SeamlessRDP Shell"
! BEGIN
! MENUITEM "&About", ID_WMABOUT
! MENUITEM "&Exit", ID_WMEXIT
! END
! END
!
!
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
!
! IDD_ABOUT DIALOGEX 0, 0, 125, 81
! STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION |
! WS_SYSMENU
! CAPTION "About"
! FONT 8, "MS Sans Serif", 0, 0, 0x0
! BEGIN
! ICON IDI_TRAY,IDC_STATIC,50,4,21,20
! DEFPUSHBUTTON "OK",IDOK,33,56,50,14
! GROUPBOX "",IDC_STATIC,0,0,124,81
! CTEXT " 0.1",IDC_STATIC,18,41,82,8
! CTEXT "seamlessrdp",IDC_STATIC,19,27,82,8
! END
!
! #endif // German (Germany) resources
! /////////////////////////////////////////////////////////////////////////////
!
!
!
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
!
!
! /////////////////////////////////////////////////////////////////////////////
! #endif // not APSTUDIO_INVOKED
!
Index: main.cpp
===================================================================
RCS file: /cvsroot/rdesktop/seamlessrdp/ServerExe/main.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** main.cpp 30 Jun 2005 12:53:07 -0000 1.2
--- main.cpp 30 Jun 2005 14:14:56 -0000 1.3
***************
*** 1,317 ****
! //*********************************************************************************
! //
! //Title: SeamlessRDP Shell
! //
! //Author: Martin Wickett
! //
! //Date: 2004
! //
! //*********************************************************************************
!
! #include <windows.h>
!
! #include "resource.h"
! #include "hookdll/hook.h"
!
! //
! // some global data
! //
! HWND ghWnd;
! NOTIFYICONDATA nid;
! HINSTANCE hAppInstance;
!
! static const UINT WM_TRAY_NOTIFY = (WM_APP + 1000);
! static const char szAppName[] = "SeamlessRDP Shell";
!
! //
! // spawn a message box
! //
! void Message(const char* message)
! {
! MessageBox(GetDesktopWindow(),message,"SeamlessRDP Shell", MB_OK);
! }
!
! //
! // manage the tray icon
! //
! bool InitTrayIcon()
! {
! nid.cbSize = sizeof(NOTIFYICONDATA) ;
! nid.hWnd = ghWnd;
! nid.uID = 0 ;
! nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP ;
! nid.uCallbackMessage = WM_TRAY_NOTIFY;
! strcpy(nid.szTip,szAppName);
! nid.hIcon = ::LoadIcon(hAppInstance,MAKEINTRESOURCE(IDI_TRAY));
!
! if (Shell_NotifyIcon (NIM_ADD,&nid) != TRUE)
! {
! Message("Unable to create tray icon.");
! return false;
! }
!
! return true;
! }
!
! //
! // Remove tray icon
! //
! bool RemoveTrayIcon()
! {
! if (Shell_NotifyIcon (NIM_DELETE,&nid) != TRUE)
! {
! Message("Unable to remove tray icon.");
! return false;
! }
!
! return true;
!
! }
!
! //
! // manage the about dialog box
! //
! BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
! {
! if (uMsg == WM_COMMAND)
! {
! WORD wID = LOWORD(wParam);
! if (wID == IDOK) DestroyWindow(hwndDlg);
! }
!
! return 0;
! }
!
! void AboutDlg()
! {
! DialogBox(hAppInstance,MAKEINTRESOURCE(IDD_ABOUT),NULL,DialogProc);
! }
!
! //
! // manage the context menu
! //
! void DoContextMenu()
! {
! HMENU hMenu =LoadMenu(hAppInstance,MAKEINTRESOURCE(IDR_TRAY));
! if (hMenu == NULL)
! {
! Message("Unable to load menu ressource.");
! return;
! }
!
! HMENU hSubMenu = GetSubMenu(hMenu,0);
! if (hSubMenu == NULL)
! {
! Message("Unable to find popup mennu.");
! return;
! }
!
! // get the cursor position
! POINT pt;
! GetCursorPos (&pt) ;
!
! SetForegroundWindow(ghWnd);
! int cmd = TrackPopupMenu(hSubMenu,TPM_RETURNCMD|TPM_LEFTALIGN|TPM_RIGHTBUTTON,
! pt.x,pt.y,0,ghWnd,NULL);
! DeleteObject(hMenu);
!
! switch (cmd)
! {
! case ID_WMEXIT :
! {
! PostQuitMessage(0);
! break;
! }
! case ID_WMABOUT :
! {
! AboutDlg();
! break;
! }
! }
! }
!
! //
! // manage the main window
! //
! LONG WINAPI MainWndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
! {
! switch (uMsg)
! {
! case WM_DESTROY :
! {
! PostQuitMessage (0);
! return 0;
! }
! case WM_TRAY_NOTIFY :
! {
! if (lParam == WM_RBUTTONDOWN)
! DoContextMenu();
! return 0;
! }
! }
!
! return DefWindowProc (hWnd, uMsg, wParam, lParam);
! }
!
! //
! //Init window
! //
! bool InitWindow()
! {
! // register the frame class
! WNDCLASS wndclass;
! wndclass.style = 0;
! wndclass.lpfnWndProc = (WNDPROC)MainWndProc;
! wndclass.cbClsExtra = 0;
! wndclass.cbWndExtra = 0;
! wndclass.hInstance = hAppInstance;
! wndclass.hIcon = 0;
! wndclass.hCursor = LoadCursor (NULL,IDC_ARROW);
! wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
! wndclass.lpszMenuName = NULL;
! wndclass.lpszClassName = szAppName;
!
! if (!RegisterClass (&wndclass))
! {
! Message("Unable to register the window class.");
! return false;
! }
!
! // create the frame
! ghWnd = CreateWindow (szAppName, szAppName,
! WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
! CW_USEDEFAULT,
! CW_USEDEFAULT,
! 640,
! 480,
! NULL,
! NULL,
! hAppInstance,
! NULL);
!
! // make sure window was created
! if (!ghWnd)
! {
! Message("Unable to create the window.");
! return false;
! }
!
! return true;
! }
!
! //
! // init
! //
! bool Init(LPSTR lpCmdLine)
! {
! // try to load WTSWinClipper.dll
! if (!WTSWinClipper::Init())
! {
! Message("Application not installed correctly: Unable to init hookdll.dll.");
! return false;
! }
!
! // check number of instances
! if (WTSWinClipper::GetInstanceCount() == 1)
! {
! // hook in
! WTSWinClipper::SetCbtHook();
! return true;
! } else
! {
! // already hooked
! return false;
! }
! }
!
! //
! // our main loop
! //
! int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
! {
! hAppInstance = hInstance;
! if (!Init(lpCmdLine))
! {
! return 0;
! }
!
! // if we have been specified an app to launch, we will wait until the app has closed and use that for
! // our cue to exit
! if (strlen(lpCmdLine)> 0)
! {
! // Because we do not have a explorer.exe we need to make this application the replacement
! // shell. We do this by calling SystemParametersInfo. If we don't do this, we won't get the WH_SHELL notifications.
!
! // From MSDN:
! // Note that custom shell applications do not receive WH_SHELL messages. Therefore, any application that
! // registers itself as the default shell must call the SystemParametersInfo function with SPI_SETMINIMIZEDMETRICS
! // before it (or any other application) can receive WH_SHELL messages.
!
! MINIMIZEDMETRICS mmm;
! mmm.cbSize = sizeof( MINIMIZEDMETRICS);
! SystemParametersInfo(SPI_SETMINIMIZEDMETRICS ,sizeof( MINIMIZEDMETRICS),&mmm,0);
!
! //set the current directory to that of the requested app .exe location
! //tokenise lpCmdLine. first is the exe path. second (if exists) is the current directory to set.
! //SetCurrentDirectory ();
!
! //start process specified from command line arg.
! PROCESS_INFORMATION procInfo;
! STARTUPINFO startupInfo = {0};
! startupInfo.cb = sizeof(STARTUPINFO);
! char attr[] = "";
! LPTSTR process= lpCmdLine;
! DWORD dwExitCode;
!
! BOOL m_create = CreateProcess( NULL,process,NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &procInfo);
!
! if (m_create != false)
! {
! // A loop to watch the process.
! GetExitCodeProcess(procInfo.hProcess, &dwExitCode);
!
! while (dwExitCode == STILL_ACTIVE )
! {
! GetExitCodeProcess(procInfo.hProcess, &dwExitCode);
! Sleep(1000);
! }
!
! // Release handles
! CloseHandle(procInfo.hProcess);
! CloseHandle(procInfo.hThread);
! }
! else
! {
! // CreateProcess failed.
! Message("Unable to launch the requested application");
! }
! }
! else
! // we are launching without an app, therefore we will show the system tray app and wait for the user to close it
! {
! // create a dummy window to receive WM_QUIT message
! InitWindow();
!
! // create the tray icon
! InitTrayIcon();
!
! // just get and dispatch messages until we're killed
! MSG msg;
! while (GetMessage(&msg,0,0,0))
! {
! TranslateMessage(&msg);
! DispatchMessage(&msg);
! };
!
! // remove our tray icon
! RemoveTrayIcon();
! }
!
!
! // remove hook before saying goodbye
! WTSWinClipper::RemoveCbtHook();
!
! WTSWinClipper::Done();
!
! return 1;
! }
--- 1,317 ----
! //*********************************************************************************
! //
! //Title: SeamlessRDP Shell
! //
! //Author: Martin Wickett
! //
! //Date: 2004
! //
! //*********************************************************************************
!
! #include <windows.h>
!
! #include "resource.h"
! #include "hookdll/hook.h"
!
! //
! // some global data
! //
! HWND ghWnd;
! NOTIFYICONDATA nid;
! HINSTANCE hAppInstance;
!
! static const UINT WM_TRAY_NOTIFY = (WM_APP + 1000);
! static const char szAppName[] = "SeamlessRDP Shell";
!
! //
! // spawn a message box
! //
! void Message(const char* message)
! {
! MessageBox(GetDesktopWindow(),message,"SeamlessRDP Shell", MB_OK);
! }
!
! //
! // manage the tray icon
! //
! bool InitTrayIcon()
! {
! nid.cbSize = sizeof(NOTIFYICONDATA) ;
! nid.hWnd = ghWnd;
! nid.uID = 0 ;
! nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP ;
! nid.uCallbackMessage = WM_TRAY_NOTIFY;
! strcpy(nid.szTip,szAppName);
! nid.hIcon = ::LoadIcon(hAppInstance,MAKEINTRESOURCE(IDI_TRAY));
!
! if (Shell_NotifyIcon (NIM_ADD,&nid) != TRUE)
! {
! Message("Unable to create tray icon.");
! return false;
! }
!
! return true;
! }
!
! //
! // Remove tray icon
! //
! bool RemoveTrayIcon()
! {
! if (Shell_NotifyIcon (NIM_DELETE,&nid) != TRUE)
! {
! Message("Unable to remove tray icon.");
! return false;
! }
!
! return true;
!
! }
!
! //
! // manage the about dialog box
! //
! BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
! {
! if (uMsg == WM_COMMAND)
! {
! WORD wID = LOWORD(wParam);
! if (wID == IDOK) DestroyWindow(hwndDlg);
! }
!
! return 0;
! }
!
! void AboutDlg()
! {
! DialogBox(hAppInstance,MAKEINTRESOURCE(IDD_ABOUT),NULL,DialogProc);
! }
!
! //
! // manage the context menu
! //
! void DoContextMenu()
! {
! HMENU hMenu =LoadMenu(hAppInstance,MAKEINTRESOURCE(IDR_TRAY));
! if (hMenu == NULL)
! {
! Message("Unable to load menu ressource.");
! return;
! }
!
! HMENU hSubMenu = GetSubMenu(hMenu,0);
! if (hSubMenu == NULL)
! {
! Message("Unable to find popup mennu.");
! return;
! }
!
! // get the cursor position
! POINT pt;
! GetCursorPos (&pt) ;
!
! SetForegroundWindow(ghWnd);
! int cmd = TrackPopupMenu(hSubMenu,TPM_RETURNCMD|TPM_LEFTALIGN|TPM_RIGHTBUTTON,
! pt.x,pt.y,0,ghWnd,NULL);
! DeleteObject(hMenu);
!
! switch (cmd)
! {
! case ID_WMEXIT :
! {
! PostQuitMessage(0);
! break;
! }
! case ID_WMABOUT :
! {
! AboutDlg();
! break;
! }
! }
! }
!
! //
! // manage the main window
! //
! LONG WINAPI MainWndProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
! {
! switch (uMsg)
! {
! case WM_DESTROY :
! {
! PostQuitMessage (0);
! return 0;
! }
! case WM_TRAY_NOTIFY :
! {
! if (lParam == WM_RBUTTONDOWN)
! DoContextMenu();
! return 0;
! }
! }
!
! return DefWindowProc (hWnd, uMsg, wParam, lParam);
! }
!
! //
! //Init window
! //
! bool InitWindow()
! {
! // register the frame class
! WNDCLASS wndclass;
! wndclass.style = 0;
! wndclass.lpfnWndProc = (WNDPROC)MainWndProc;
! wndclass.cbClsExtra = 0;
! wndclass.cbWndExtra = 0;
! wndclass.hInstance = hAppInstance;
! wndclass.hIcon = 0;
! wndclass.hCursor = LoadCursor (NULL,IDC_ARROW);
! wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
! wndclass.lpszMenuName = NULL;
! wndclass.lpszClassName = szAppName;
!
! if (!RegisterClass (&wndclass))
! {
! Message("Unable to register the window class.");
! return false;
! }
!
! // create the frame
! ghWnd = CreateWindow (szAppName, szAppName,
! WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
! CW_USEDEFAULT,
! CW_USEDEFAULT,
! 640,
! 480,
! NULL,
! NULL,
! hAppInstance,
! NULL);
!
! // make sure window was created
! if (!ghWnd)
! {
! Message("Unable to create the window.");
! return false;
! }
!
! return true;
! }
!
! //
! // init
! //
! bool Init(LPSTR lpCmdLine)
! {
! // try to load WTSWinClipper.dll
! if (!WTSWinClipper::Init())
! {
! Message("Application not installed correctly: Unable to init hookdll.dll.");
! return false;
! }
!
! // check number of instances
! if (WTSWinClipper::GetInstanceCount() == 1)
! {
! // hook in
! WTSWinClipper::SetCbtHook();
! return true;
! } else
! {
! // already hooked
! return false;
! }
! }
!
! //
! // our main loop
! //
! int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
! {
! hAppInstance = hInstance;
! if (!Init(lpCmdLine))
! {
! return 0;
! }
!
! // if we have been specified an app to launch, we will wait until the app has closed and use that for
! // our cue to exit
! if (strlen(lpCmdLine)> 0)
! {
! // Because we do not have a explorer.exe we need to make this application the replacement
! // shell. We do this by calling SystemParametersInfo. If we don't do this, we won't get the WH_SHELL notifications.
!
! // From MSDN:
! // Note that custom shell applications do not receive WH_SHELL messages. Therefore, any application that
! // registers itself as the default shell must call the SystemParametersInfo function with SPI_SETMINIMIZEDMETRICS
! // before it (or any other application) can receive WH_SHELL messages.
!
! MINIMIZEDMETRICS mmm;
! mmm.cbSize = sizeof( MINIMIZEDMETRICS);
! SystemParametersInfo(SPI_SETMINIMIZEDMETRICS ,sizeof( MINIMIZEDMETRICS),&mmm,0);
!
! //set the current directory to that of the requested app .exe location
! //tokenise lpCmdLine. first is the exe path. second (if exists) is the current directory to set.
! //SetCurrentDirectory ();
!
! //start process specified from command line arg.
! PROCESS_INFORMATION procInfo;
! STARTUPINFO startupInfo = {0};
! startupInfo.cb = sizeof(STARTUPINFO);
! char attr[] = "";
! LPTSTR process= lpCmdLine;
! DWORD dwExitCode;
!
! BOOL m_create = CreateProcess( NULL,process,NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &procInfo);
!
! if (m_create != false)
! {
! // A loop to watch the process.
! GetExitCodeProcess(procInfo.hProcess, &dwExitCode);
!
! while (dwExitCode == STILL_ACTIVE )
! {
! GetExitCodeProcess(procInfo.hProcess, &dwExitCode);
! Sleep(1000);
! }
!
! // Release handles
! CloseHandle(procInfo.hProcess);
! CloseHandle(procInfo.hThread);
! }
! else
! {
! // CreateProcess failed.
! Message("Unable to launch the requested application");
! }
! }
! else
! // we are launching without an app, therefore we will show the system tray app and wait for the user to close it
! {
! // create a dummy window to receive WM_QUIT message
! InitWindow();
!
! // create the tray icon
! InitTrayIcon();
!
! // just get and dispatch messages until we're killed
! MSG msg;
! while (GetMessage(&msg,0,0,0))
! {
! TranslateMessage(&msg);
! DispatchMessage(&msg);
! };
!
! // remove our tray icon
! RemoveTrayIcon();
! }
!
!
! // remove hook before saying goodbye
! WTSWinClipper::RemoveCbtHook();
!
! WTSWinClipper::Done();
!
! return 1;
! }
Index: resource.h
===================================================================
RCS file: /cvsroot/rdesktop/seamlessrdp/ServerExe/resource.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** resource.h 30 Jun 2005 12:53:07 -0000 1.2
--- resource.h 30 Jun 2005 14:14:56 -0000 1.3
***************
*** 1,33 ****
! //*********************************************************************************
! //
! //Title: SeamlessRDP Shell
! //
! //Author: Martin Wickett
! //
! //Date: 2004
! //
! //*********************************************************************************
!
! //{{NO_DEPENDENCIES}}
! // Microsoft Developer Studio generated include file.
! // Used by clipper.rc
! //
! #define IDC_CURSOR1 101
! #define IDI_TRAY 102
! #define IDD_DIALOG1 103
! #define IDD_ABOUT 103
! #define IDR_TRAY 130
! #define ID_WMEXIT 40002
! #define ID_WMABOUT 40003
! #define ID_WMEXEC 50000
!
! // Next default values for new objects
! //
! #ifdef APSTUDIO_INVOKED
! #ifndef APSTUDIO_READONLY_SYMBOLS
! #define _APS_NEXT_RESOURCE_VALUE 105
! #define _APS_NEXT_COMMAND_VALUE 40004
! #define _APS_NEXT_CONTROL_VALUE 1000
! #define _APS_NEXT_SYMED_VALUE 101
! #endif
! #endif
--- 1,33 ----
! //*********************************************************************************
! //
! //Title: SeamlessRDP Shell
! //
! //Author: Martin Wickett
! //
! //Date: 2004
! //
! //*********************************************************************************
!
! //{{NO_DEPENDENCIES}}
! // Microsoft Developer Studio generated include file.
! // Used by clipper.rc
! //
! #define IDC_CURSOR1 101
! #define IDI_TRAY 102
! #define IDD_DIALOG1 103
! #define IDD_ABOUT 103
! #define IDR_TRAY 130
! #define ID_WMEXIT 40002
! #define ID_WMABOUT 40003
! #define ID_WMEXEC 50000
!
! // Next default values for new objects
! //
! #ifdef APSTUDIO_INVOKED
! #ifndef APSTUDIO_READONLY_SYMBOLS
! #define _APS_NEXT_RESOURCE_VALUE 105
! #define _APS_NEXT_COMMAND_VALUE 40004
! #define _APS_NEXT_CONTROL_VALUE 1000
! #define _APS_NEXT_SYMED_VALUE 101
! #endif
! #endif
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click