home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / tutsamp / remclien / remclien.h < prev    next >
C/C++ Source or Header  |  1997-08-05  |  7KB  |  205 lines

  1. /*+==========================================================================
  2.   File:      REMCLIEN.H
  3.  
  4.   Summary:   Main include file for the REMCLIEN executable. In addition to
  5.              class definitions, this REMCLIEN.H file contains definitions
  6.              of the application's menu, string, and other resource IDs.
  7.  
  8.              Based largely on the APTCLIEN.EXE source code, this include
  9.              file adds resource IDs for the set of menus for exercising
  10.              the several COM Components manipulated in this code sample
  11.              as a COM Client of those components housed in the APTSERVE
  12.              remote server.
  13.  
  14.              For a comprehensive tutorial code tour of REMCLIEN's
  15.              contents and offerings see the tutoorial REMCLIEN.HTM file.
  16.              For more specific technical details on the internal workings
  17.              see the comments dispersed throughout the REMCLIEN source code.
  18.  
  19.   Classes:   CMainWindow
  20.  
  21.   Functions: WinMain
  22.  
  23.   Origin:    12-28-96: atrent - Editor-inheritance from the APTCLIEN source.
  24.  
  25. ----------------------------------------------------------------------------
  26.   This file is part of the Microsoft COM Tutorial Code Samples.
  27.  
  28.   Copyright (C) Microsoft Corporation, 1997.  All rights reserved.
  29.  
  30.   This source code is intended only as a supplement to Microsoft
  31.   Development Tools and/or on-line documentation.  See these other
  32.   materials for detailed information regarding Microsoft code samples.
  33.  
  34.   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  35.   KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  36.   IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  37.   PARTICULAR PURPOSE.
  38. ==========================================================================+*/
  39.  
  40. #if !defined(REMCLIEN_H)
  41. #define REMCLIEN_H
  42.  
  43. #ifdef __cplusplus
  44.  
  45. extern CMsgLog* g_pMsgLog;
  46. extern COSERVERINFO g_ServerInfo;
  47.  
  48. /*C+C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C
  49.   Class:    CMainWindow
  50.  
  51.   Summary:  Class to encapsulate the application's main window, menu, and
  52.             message dispatching behavior.
  53.  
  54.   Methods:  CMainWindow
  55.               Constructor.
  56.             InitInstance
  57.               Creates a new instance of the main window.
  58. C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C-C*/
  59. class CMainWindow: public CVirWindow
  60. {
  61. public:
  62.   CMainWindow();
  63.   ~CMainWindow();
  64.   BOOL InitInstance(HINSTANCE, int);
  65.  
  66.   TCHAR m_szFileName[MAX_PATH];
  67.   CMsgBox*  m_pMsgBox;
  68.   CMsgLog*  m_pMsgLog;
  69.  
  70.   // A method for getting an interface on a COM object.
  71.   BOOL GetInterface(IUnknown* pObj, REFIID riid, PPVOID ppv);
  72.   // Some member variables to store pointers to Car-like COM Objects.
  73.   // We save pointers to each COM objects controlling IUnknown.
  74.   IUnknown* m_pCar;
  75.   IUnknown* m_pUtilityCar;
  76.   IUnknown* m_pCruiseCar;
  77.   IUnknown* m_pUtilityCruiseCar;
  78.  
  79. protected:
  80.   LRESULT WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
  81.  
  82. private:
  83.   LRESULT DoMenu(WPARAM wParam, LPARAM lParam);
  84.  
  85.   WORD m_wWidth;
  86.   WORD m_wHeight;
  87.   TCHAR m_szHelpFile[MAX_PATH];
  88.   TCHAR m_szFileTitle[MAX_PATH];
  89.   TEXTMETRIC m_tm;
  90.   OPENFILENAME m_ofnFile;
  91. };
  92.  
  93. /*C+C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C+++C
  94.   Class:    CDlgRemoteInfo
  95.  
  96.   Summary:  Class to encapsulate the Remote Info Dialog.
  97.  
  98.   Methods:  DialogProc
  99.               Dialog procedure
  100. C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C---C-C*/
  101. class CDlgRemoteInfo: public CVirDialog
  102. {
  103. public:
  104.   BOOL DialogProc(
  105.          HWND hWndDlg,
  106.          UINT uMsg,
  107.          WPARAM wParam,
  108.          LPARAM lParam);
  109. };
  110.  
  111. #endif // __cplusplus
  112.  
  113. // Window Class String Macros.
  114. #define MAIN_WINDOW_TITLE_STR       "REMCLIEN: Tutorial Code Sample"
  115. #define MAIN_WINDOW_CLASS_NAME_STR  "REMCLIENWindow"
  116. #define MAIN_WINDOW_CLASS_MENU_STR  "REMCLIENMenu"
  117.  
  118. // File Name String Macros.
  119. #define SERVER_TUTFILE_STR          "aptserve.htm"
  120. #define MARSHAL_TUTFILE_STR         "marshal.htm"
  121.  
  122. // OpenFile-related String Macros.
  123. #define OFN_DEFAULTFILES_STR "All Files (*.*)\0*.*\0"
  124. #define OFN_DEFAULTTITLE_STR "Open File"
  125.  
  126. // File Menu Command Identifiers.
  127. #define IDM_FILE_MACHINE            1000
  128. #define IDM_FILE_EXIT               1001
  129.  
  130. // Car Menu Command Identifiers.
  131. #define IDM_CAR_CREATE              1100
  132. #define IDM_CAR_RELEASE             1101
  133. #define IDM_CAR_SHIFT               1102
  134. #define IDM_CAR_CLUTCH              1103
  135. #define IDM_CAR_SPEED               1104
  136. #define IDM_CAR_STEER               1105
  137.  
  138. // UtilityCar Menu Command Identifiers.
  139. #define IDM_UCAR_CREATE             1200
  140. #define IDM_UCAR_RELEASE            1201
  141. #define IDM_UCAR_SHIFT              1202
  142. #define IDM_UCAR_CLUTCH             1203
  143. #define IDM_UCAR_SPEED              1204
  144. #define IDM_UCAR_STEER              1205
  145. #define IDM_UCAR_OFFROAD            1206
  146. #define IDM_UCAR_WINCH              1207
  147.  
  148. // CruiseCar Menu Command Identifiers.
  149. #define IDM_CCAR_CREATE             1300
  150. #define IDM_CCAR_RELEASE            1301
  151. #define IDM_CCAR_SHIFT              1302
  152. #define IDM_CCAR_CLUTCH             1303
  153. #define IDM_CCAR_SPEED              1304
  154. #define IDM_CCAR_STEER              1305
  155. #define IDM_CCAR_ENGAGE             1306
  156. #define IDM_CCAR_ADJUST             1307
  157.  
  158. // UtilityCruiseCar Menu Command Identifiers.
  159. #define IDM_UCRU_CREATE             1400
  160. #define IDM_UCRU_RELEASE            1401
  161. #define IDM_UCRU_SHIFT              1402
  162. #define IDM_UCRU_CLUTCH             1403
  163. #define IDM_UCRU_SPEED              1404
  164. #define IDM_UCRU_STEER              1405
  165. #define IDM_UCRU_ENGAGE             1406
  166. #define IDM_UCRU_ADJUST             1407
  167. #define IDM_UCRU_OFFROAD            1408
  168. #define IDM_UCRU_WINCH              1409
  169.  
  170. // Log Menu Command Identifiers.
  171. #define IDM_LOG_LOGCLEAR            1890
  172. #define IDM_LOG_LOGGING             1891
  173. #define IDM_LOG_COPYCLIP            1892
  174.  
  175. // Help Menu Command Identifiers.
  176. #define IDM_HELP_CONTENTS           1900
  177. #define IDM_HELP_TUTORIAL           1901
  178. #define IDM_HELP_TUTSERVER          1902
  179. #define IDM_HELP_TUTMARSHAL         1903
  180. #define IDM_HELP_READSOURCE         1904
  181. #define IDM_HELP_ABOUT              1905
  182.  
  183. // Error-related String Identifiers.
  184. #define IDS_COMINITFAILED           2000
  185. #define IDS_APPINITFAILED           2001
  186. #define IDS_OUTOFMEMORY             2002
  187. #define IDS_NOUNICODE               2003
  188. #define IDS_NODCOM                  2004
  189. #define IDS_NOSERVER                2005
  190.  
  191. #define IDS_ASSERT_FAIL             2200
  192.  
  193. // Notice-related String Identifiers.
  194. #define IDS_NOTIMPLEMENTED          2301
  195.  
  196. // Log Message String Identifiers.
  197. #define IDS_START_MESSAGE_LOG       2400
  198.  
  199. // Dialog IDs.
  200. #define IDD_REMOTE_INFO             2500
  201. #define IDC_STATIC_MACHINE          2501
  202. #define IDC_EDIT_MACHINE            2502
  203.  
  204. #endif
  205.