home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sysmgmt / setup / infinst / infinst.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  3KB  |  108 lines

  1.  
  2. /******************************************************************************\
  3. *       This is a part of the Microsoft Source Code Samples. 
  4. *       Copyright (C) 1995-1997 Microsoft Corporation.
  5. *       All rights reserved. 
  6. *       This source code is only intended as a supplement to 
  7. *       Microsoft Development Tools and/or WinHelp documentation.
  8. *       See these sources for detailed information regarding the 
  9. *       Microsoft samples programs.
  10. \******************************************************************************/
  11.  
  12. //
  13. // commands
  14. //
  15. #define ID_INSTALL     100
  16.  
  17. //
  18. // icons
  19. //
  20. #define EXE_ICON        300
  21.  
  22. //
  23. // typedefs
  24. //
  25. typedef struct tagINSTALLINFO
  26. {
  27.     HINSTANCE hInst;        // current instance
  28.     int iWelcome;
  29.     int iLicense;
  30.     int iInstall_Type;
  31.     int iCustom_Options1;
  32.     int iCustom_Options2;
  33.     int iCustom_Options3;
  34.     int iCustom_Options4;
  35.     int iInstall;
  36.     char pszUserName[MAX_PATH];
  37.     char pszCompany[MAX_PATH];
  38.     char pszProductIdString[MAX_PATH];
  39.     char pszEmailAddress[MAX_PATH];
  40.     char pszDestPath[MAX_PATH];
  41. } INSTALLINFO;
  42.  
  43. //
  44. // globals
  45. //
  46. extern INSTALLINFO setupInfo;   // a structure containing the review information
  47. extern HWND hwndEdit;           // handle to the main MLE
  48. extern TCHAR lpReview[MAX_BUF]; // Buffer for the review
  49. extern BOOL bCreated;           // Keep us minimized once we are created
  50. extern BOOL bUninstallCommand;  // Is it an uninstall
  51.  
  52. //
  53. // Function prototypes
  54. //
  55.  
  56. long APIENTRY MainWndProc(HWND, UINT, UINT, LONG);
  57. BOOL InitApplication(HANDLE);
  58. BOOL InitInstance(HANDLE, int);
  59. void RuntimeRegistration(INSTALLINFO*);
  60.  
  61. //
  62. // simple win32 registry api wrappers
  63. //
  64. BOOL RegisterString(LPSTR pszKey, LPSTR pszValue, LPSTR pszData);
  65. BOOL GetRegString(LPSTR pszKey, LPSTR pszValue, LPSTR pszData);
  66.  
  67. //
  68. // Context for data needed in my callback routine
  69. // This needs to include the context for the default callback
  70. // since my callback calls the default
  71. //
  72.  
  73. typedef struct tagMY_INSTALL_DATA{
  74.  
  75.    // TODO: Add other data here that you want to have 
  76.    //       available to your callback function.
  77.    //       For example, you may keep a counter that indicates
  78.    //       your bill board if you are doing your own progress dialog
  79.  
  80.    PVOID pDefaultContext;
  81.  
  82. } MY_INSTALL_DATA;
  83.  
  84. //
  85. // call back routine for setup api uses for
  86. // progress and error messages
  87. //
  88. LRESULT WINAPI MyQueueCallback (
  89.     IN MY_INSTALL_DATA* pMyInstallData,
  90.     IN UINT Notification,
  91.     IN UINT Param1,
  92.     IN UINT Param2
  93.     );
  94.  
  95. //
  96. // Product Registry keys
  97. // set by exe and not inf since these are runtime 
  98. // values.  All registry information that is not determined at 
  99. // runtime is in the inf file
  100. //
  101. #define USER_NAME_KEY       TEXT("UserName")
  102. #define COMPANY_KEY         TEXT("CompanyName")
  103. #define PRODUCT_ID_KEY      TEXT("ProductId")
  104. #define EMAIL_KEY           TEXT("EmailAddress")
  105.  
  106. #define UNINSTALL_KEY       TEXT("SoftWare\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MyProduct")
  107. #define MYPRODUCT_KEY       TEXT("Software\\MyCompany\\MyProduct\\UserInfo\\")
  108.