Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
syncapp.c
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 5k
Category:
Windows Kernel
Development Platform:
Visual C++
- #include "syncapp.h"
- #ifndef WIN32
- #include <w32sys.h> // for IsPEFormat definition
- #endif
- static TCHAR const g_szAppName [] = TEXT("SYNCAPP") ;
- static TCHAR const c_szDLL[] = TEXT("SYNCUI.DLL");
- #ifdef UNICODE
- # define BRIEFCASE_CREATE_ENTRY "Briefcase_CreateW"
- #else
- # define BRIEFCASE_CREATE_ENTRY "Briefcase_Create"
- #endif
- static CHAR const c_szFunction[] = BRIEFCASE_CREATE_ENTRY; // Lib entry point (never UNICODE)
- static HINSTANCE hInst;
- static HICON g_hIcon;
- static HINSTANCE g_hModule;
- static RUNDLLPROC g_lpfnCommand;
- static HWND g_hwndStub;
- static TCHAR s_szRunDLL32[] = TEXT("SYNCAPP.EXE ");
- static BOOL ParseCommand(void)
- {
- // Load the library and get the procedure address
- // Note that we try to get a module handle first, so we don't need
- // to pass full file names around
- //
- g_hModule = GetModuleHandle(c_szDLL);
- if (g_hModule)
- {
- TCHAR szName[MAXPATHLEN];
- GetModuleFileName(g_hModule, szName, ARRAYSIZE(szName));
- LoadLibrary(szName);
- }
- else
- {
- g_hModule = LoadLibrary(c_szDLL);
- if ((UINT_PTR)g_hModule <= 32)
- {
- return(FALSE);
- }
- }
- g_lpfnCommand = (RUNDLLPROC)GetProcAddress(g_hModule, c_szFunction);
- if (!g_lpfnCommand)
- {
- FreeLibrary(g_hModule);
- return(FALSE);
- }
- return(TRUE);
- }
- LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
- {
- switch(iMessage)
- {
- case WM_CREATE:
- g_hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_DEFAULT));
- break;
- case WM_DESTROY:
- break;
- default:
- return DefWindowProc(hWnd, iMessage, wParam, lParam) ;
- break;
- }
- return 0L;
- }
- static BOOL InitStubWindow(HINSTANCE hInst, HINSTANCE hPrevInstance)
- {
- WNDCLASS wndclass;
- if (!hPrevInstance)
- {
- wndclass.style = 0 ;
- wndclass.lpfnWndProc = (WNDPROC)WndProc ;
- wndclass.cbClsExtra = 0 ;
- wndclass.cbWndExtra = 0 ;
- wndclass.hInstance = hInst ;
- wndclass.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_DEFAULT)) ;
- wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
- wndclass.hbrBackground = GetStockObject (WHITE_BRUSH) ;
- wndclass.lpszMenuName = NULL ;
- wndclass.lpszClassName = g_szAppName ;
- if (!RegisterClass(&wndclass))
- {
- return(FALSE);
- }
- }
- g_hwndStub = CreateWindow(g_szAppName, TEXT(""), 0,
- 0, 0, 0, 0, NULL, NULL, hInst, NULL);
- return(g_hwndStub != NULL);
- }
- static void CleanUp(void)
- {
- DestroyWindow(g_hwndStub);
- FreeLibrary(g_hModule);
- }
- int WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszWinMainCmdLine, int nCmdShow)
- {
- LPTSTR lpszCmdLine;
- hInst = hInstance;
- //
- // The command line passed to WinMain is always ANSI, so for UNICODE
- // builds we need to ask for the command line in UNICODE
- //
- #ifdef UNICODE
- //
- // Since the command line returned from GetCommandLine includes
- // argv[0], but the one passed to Winmain does not, we have
- // to strip argv[0] in order to be equivalent
- //
- lpszCmdLine = GetCommandLine();
- //
- // Skip past program name (first token in command line).
- // Check for and handle quoted program name.
- //
- if ( *lpszCmdLine == '"' )
- {
- //
- // Scan, and skip over, subsequent characters until
- // another double-quote or a null is encountered.
- //
- while ( *++lpszCmdLine && (*lpszCmdLine
- != '"') );
- //
- // If we stopped on a double-quote (usual case), skip
- // over it.
- //
- if ( *lpszCmdLine == '"' )
- lpszCmdLine++;
- }
- else
- {
- while (*lpszCmdLine > ' ')
- lpszCmdLine++;
- }
- //
- // Skip past any white space preceeding the second token.
- //
- while (*lpszCmdLine && (*lpszCmdLine <= ' '))
- {
- lpszCmdLine++;
- }
- #else
- lpszCmdLine = lpszWinMainCmdLine;
- #endif
- // turn off critical error stuff
- SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS);
- if (!ParseCommand())
- {
- goto Error0;
- }
- if (!InitStubWindow(hInstance, hPrevInstance))
- {
- goto Error1;
- }
- (*g_lpfnCommand)(g_hwndStub, hInstance, lpszCmdLine, nCmdShow);
- Error1:
- CleanUp();
- Error0:
- return(FALSE);
- }