?? install.h
字號(hào):
/* @(#)Copyright (C) H.Shirouzu 1998-2002 install.h Ver2.00 */
/* ========================================================================
Project Name : Installer for IPMSG32
Module Name : Main Header
Create : 1998-06-14(Sun)
Update : 2002-11-03(Sun)
Copyright : H.Shirouzu
Reference :
======================================================================== */
enum InstMode { SETUP_MODE, RESETUP_MODE, UNINSTALL_MODE };
struct InstallCfg {
InstMode mode;
int portNo;
BOOL startupLink;
BOOL programLink;
BOOL desktopLink;
BOOL delPubkey;
};
class TInstSheet : public TDlg
{
InstallCfg *cfg;
public:
TInstSheet(TWin *_parent, InstallCfg *_cfg);
virtual BOOL EvCreate(LPARAM lParam);
virtual BOOL EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
void Paste(void);
void GetData(void);
void PutData(void);
};
class TInstDlg : public TDlg
{
protected:
TSubClassCtl staticText;
TInstSheet *propertySheet;
InstallCfg cfg;
public:
TInstDlg(char *cmdLine);
virtual ~TInstDlg();
virtual BOOL EvCreate(LPARAM lParam);
virtual BOOL EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
#if 0
virtual BOOL EvNcDestroy(void);
virtual BOOL EventUser(UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif
BOOL Install(void);
BOOL UnInstall(void);
void ChangeMode(void);
BOOL TerminateIPMsg(void);
BOOL RemoveSameLink(const char *dir, char *remove_path=NULL);
};
class TInstApp : public TApp
{
public:
TInstApp(HINSTANCE _hI, LPSTR _cmdLine, int _nCmdShow);
virtual ~TInstApp();
void InitWindow(void);
};
class TBrowseDirDlg : public TSubClass
{
protected:
char *fileBuf;
BOOL dirtyFlg;
public:
TBrowseDirDlg(char *_fileBuf) { fileBuf = _fileBuf; }
virtual BOOL CreateByWnd(HWND _hWnd);
virtual BOOL EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
virtual BOOL SetFileBuf(LPARAM list);
BOOL IsDirty(void) { return dirtyFlg; };
};
class TInputDlg : public TDlg
{
protected:
char *dirBuf;
public:
TInputDlg(char *_dirBuf, TWin *_win) : TDlg(INPUT_DIALOG, _win) { dirBuf = _dirBuf; }
virtual BOOL EvCommand(WORD wNotifyCode, WORD wID, LPARAM hwndCtl);
};
#define IPMSG_CLASS "ipmsg_class"
#define IPMSG_NAME "IPMSG for Win32"
#define IPMSG_FULLNAME "IP Messenger for Win32"
#define IPMSG_STR "IPMsg"
#define HSTOOLS_STR "HSTools"
#ifdef ENGLISH
#define REGSTR_IPMSG IPMSG_STR "Eng"
#else
#define REGSTR_IPMSG IPMSG_STR
#endif
#define IPMSG_DEFAULT_PORT 0x0979
#define IPMSG_EXENAME "ipmsg.exe"
#define INSTALL_EXENAME "setup.exe"
#define README_NAME "readme.txt"
#define OPENLAB_NAME "openlab.txt"
#define UNINSTALL_CMDLINE "/r"
#define IPMSG_SHORTCUT_NAME IPMSG_NAME ".lnk"
#define UNC_PREFIX "\\\\"
#define MAX_WRAPPER_IPMSGSIZE 50000
#define RESOLVE_WRAPPER_IPMSG "org\\ipmsg.exe"
#define MAX_BUF 1024
#define REGSTR_SHELLFOLDERS REGSTR_PATH_EXPLORER "\\Shell Folders"
#define REGSTR_STARTUP "Startup"
#define REGSTR_DESKTOP "Desktop"
#define REGSTR_PROGRAMS "Programs"
#define REGSTR_PATH "Path"
#define REGSTR_PROGRAMFILES "ProgramFilesDir"
#ifdef ENGLISH
#define MKDIR_STR "CREATE"
#define RMDIR_STR "DELETE"
#else
#define MKDIR_STR "嶌惉"
#define RMDIR_STR "嶍彍"
#endif
#define INSTALL_STR "Install"
#define UNINSTALL_STR "UnInstall"
#ifdef ENGLISH
#define NOTNEWSHELL_MSGSTR "This setup is only run new shell.\r\n"
#define SETUPCOMPLETE_MSGSTR "Setup is completed.\r\n\r\nDo you want to start IPMSG?"
#define UNINSTCOMPLETE_MSGSTR "Uninstallation is completed.\r\n"
#define TERMINATE_MSGSTR "Do you permit to close IPMSG?"
#define NOTCREATEDIR_MSGSTR "Can't create directory"
#define NOTCREATEFILE_MSGSTR "Can't create file"
#define START_MSGSTR "Do you permit to start?"
#else
#define NOTNEWSHELL_MSGSTR "偙偺僙僢僩傾僢僾偼丄NewShell愱梡偱偡丅\r\nNT3.51偱偺僀儞僗僩乕儖偼庤摦偱峴偭偰偔偩偝偄丅"
#define SETUPCOMPLETE_MSGSTR "僙僢僩傾僢僾偼姰椆偟傑偟偨丅\r\n傾儞僀儞僗僩乕儖偼乽傾僾儕働乕僔儑儞偺捛壛偲嶍彍乿偐傜峴偭偰偔偩偝偄丅\r\n\r\n偙偺傑傑丄IP Messenger 傪婲摦偟傑偡偐丠"
#define UNINSTCOMPLETE_MSGSTR "傾儞僀儞僗僩乕儖偼姰椆偟傑偟偨丅\r\n僼傽僀儖嶍彍帺懱偼庤摦偱峴偭偰偔偩偝偄丅"
#define TERMINATE_MSGSTR "偁傜偐偠傔丄尰嵼婲摦偟偰偄傞\r\nIP Messenger 傪廔椆偝偣傞昁梫偑偁傝傑偡丅\r\n傛?zhèn)雮祩艂穫﹣H"
#define NOTCREATEDIR_MSGSTR "僨傿儗僋僩儕偑嶌傟傑偣傫"
#define NOTCREATEFILE_MSGSTR "僼傽僀儖傪僐僺乕偱偒傑偣傫"
#define START_MSGSTR "奐巒偟傑偡"
#endif
// function prototype
int strncmpi(const char *str1, const char *str2, int num);
BOOL CALLBACK TerminateIPMsgProc(HWND hWnd, LPARAM lParam);
BOOL SymLink(LPCSTR src, LPSTR dest, LPCSTR arg="");
BOOL ReadLink(LPCSTR src, LPSTR dest, LPSTR arg);
BOOL DeleteLink(LPCSTR path);
void BrowseDirDlg(TWin *parentWin, UINT editCtl, char *title);
int CALLBACK BrowseDirDlg_Proc(HWND hWnd, UINT uMsg, LPARAM lParam, LPARAM data);
BOOL GetParentDir(const char *srcfile, char *dir);
int MakePath(char *dest, const char *dir, const char *file);
UINT GetDriveTypeEx(const char *file);
// inline function
inline BOOL IsUncFile(const char *path) { return strnicmp(path, UNC_PREFIX, 2) == 0; }
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -