XTVC50Helpers.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:24k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTVC50Helpers.h : Visual C++ 5.0 helpers
  2. //
  3. // This file is a part of the XTREME CONTROLS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTVC50HELPERS_H__)
  22. #define __XTVC50HELPERS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. // ---------------------------------------------------------------------
  28. // Summary:
  29. //     The CXTListViewHelper class is a helper class that provides
  30. //     helper functions for finding selected items for the MFC
  31. //     CListView class.
  32. // See Also:
  33. //     GetFirstSelectedItemPosition, GetNextSelectedItem
  34. // ---------------------------------------------------------------------
  35. class _XTP_EXT_CLASS CXTListViewHelper : public CListView
  36. {
  37. public:
  38. // ------------------------------------------------------------------------
  39. // Summary:
  40. //     Gets the position of the first selected item in the list view
  41. //     control.
  42. // Returns:
  43. //     A POSITION value that can be used for iteration or object
  44. //     pointer retrieval; NULL if no items are selected.
  45. // Example:
  46. //     The following example demonstrates how to use GetFirstSelectedItemPosition.
  47. // <code>
  48. // CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
  49. // ASSERT(pListCtrl != NULL);
  50. //
  51. // POSITION pos = pList->GetFirstSelectedItemPosition();
  52. // if (pos == NULL)
  53. //     TRACE0("No items were selected!\n");
  54. // else
  55. // {
  56. //     while (pos)
  57. //     {
  58. //         int nItem = pList->GetNextSelectedItem(pos);
  59. //         TRACE1("Item %d was selected!\n", nItem);
  60. //         // you could do your own processing on nItem here
  61. //     }
  62. // }
  63. // </code>
  64. // See Also:
  65. //     GetNextSelectedItem
  66. // ------------------------------------------------------------------------
  67. POSITION GetFirstSelectedItemPosition() const;
  68. // ---------------------------------------------------------------------------------------------
  69. // Summary:
  70. //     Gets the index of the list item identified by pos, then sets pos
  71. //     to the POSITION value.
  72. // Parameters:
  73. //     pos -  A reference to a POSITION value returned by a previous
  74. //            call to GetNextSelectedItem or GetFirstSelectedItemPosition.
  75. //            The value is updated to the next position by this call.
  76. // Returns:
  77. //     The index of the list item identified by <i>pos</i>.
  78. // Remarks:
  79. //     You can use GetNextSelectedItem in a forward iteration loop
  80. //     if you establish the initial position with a call to GetFirstSelectedItemPosition.
  81. //
  82. // You must ensure that your POSITION value is valid. If it is
  83. //     invalid, then the Debug version of the Microsoft Foundation Class
  84. //     Library asserts.
  85. // Example:
  86. //     The following example demonstrates how to use GetNextSelectedItem.
  87. // <code>
  88. // CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
  89. // ASSERT(pListCtrl != NULL);
  90. //
  91. // POSITION pos = pList->GetFirstSelectedItemPosition();
  92. // if (pos == NULL)
  93. //     TRACE0("No items were selected!\n");
  94. // else
  95. // {
  96. //     while (pos)
  97. //     {
  98. //         int nItem = pList->GetNextSelectedItem(pos);
  99. //         TRACE1("Item %d was selected!\n", nItem);
  100. //         // you could do your own processing on nItem here
  101. //     }
  102. // }
  103. // </code>
  104. // See Also:
  105. //     GetFirstSelectedItemPosition
  106. // ---------------------------------------------------------------------------------------------
  107. int GetNextSelectedItem(POSITION& pos) const;
  108. };
  109. //{{AFX_CODEJOCK_PRIVATE
  110. #if (_MSC_VER >= 1200) // Using Visual C++ 6.0 or later.
  111. //}}AFX_CODEJOCK_PRIVATE
  112. // ---------------------------------------------------------------------
  113. // Summary:
  114. //     Helper macro used for compatibility with Visual C++ 5.0, Visual C++ 6.0
  115. //     and later should use CString.
  116. // ---------------------------------------------------------------------
  117. #define CXTStringHelper CString
  118. // ---------------------------------------------------------------------
  119. // Summary:
  120. //     Helper macro used for compatibility with Visual C++ 5.0, Visual C++ 6.0
  121. //     and later should use CHeaderCtrl.
  122. // ---------------------------------------------------------------------
  123. #define CXTHeaderCtrlHelper CHeaderCtrl
  124. // ---------------------------------------------------------------------
  125. // Summary:
  126. //     Helper macro used for compatibility with Visual C++ 5.0, Visual C++ 6.0
  127. //     and later should use CListCtrl.
  128. // ---------------------------------------------------------------------
  129. #define CXTListCtrlHelper CListCtrl
  130. //{{AFX_CODEJOCK_PRIVATE
  131. #else  // Using Visual C++ 5.0
  132. // ------------------------------------------------------------------------
  133. // Summary:
  134. //     The CXTHeaderCtrlHelper class is a helper class that is used
  135. //     with Visual C++ 5.0 to provide compatibility with later versions
  136. //     of Visual C++. For Visual C++ 6.0 and later CXTHeaderCtrlHelper
  137. //     is defined as CHeaderCtrl.
  138. // ------------------------------------------------------------------------
  139. class _XTP_EXT_CLASS CXTHeaderCtrlHelper : public CHeaderCtrl
  140. {
  141. protected:
  142. // ----------------------------------------------------------------
  143. // Summary:
  144. //     Retrieves a count of the items in a header control.
  145. // Returns:
  146. //     Number of header control items if successful; otherwise -1.
  147. // ----------------------------------------------------------------
  148. virtual int GetItemCount() const;
  149. // ---------------------------------------------------------------------------
  150. // Summary:
  151. //     Retrieves the left-to-right order of items in a header control.
  152. // Parameters:
  153. //     piArray -  A pointer to the address of a buffer that receives the index
  154. //                values of the items in the header control, in the order in
  155. //                which they appear from left to right.
  156. //     iCount -   A pointer to the address of a buffer that receives the index
  157. //                values of the items in the header control, in the order in
  158. //                which they appear from left to right.
  159. // Returns:
  160. //     Nonzero if successful; otherwise 0.
  161. // Remarks:
  162. //     This member function implements the behavior of the Win32 message
  163. //     HDM_GETORDERARRAY, as described in the Platform SDK. It is
  164. //     provided to support header item ordering.
  165. // Example:
  166. //     The following example demonstrates how to use GetOrderArray.
  167. // <code>
  168. // // The pointer to my header control.
  169. // extern CHeaderCtrl* pmyHeaderCtrl;
  170. //
  171. // // Reverse the order of the items in the header control.
  172. // // (i.e. make the first item the last one, the last item
  173. // // the first one, and so on ...).
  174. // int   nCount = pmyHeaderCtrl->GetItemCount();
  175. // LPINT pnOrder = (LPINT) malloc(nCount*sizeof(int));
  176. // ASSERT(pnOrder != NULL);
  177. //
  178. // pmyHeaderCtrl->GetOrderArray(pnOrder, nCount);
  179. //
  180. // int i, j, nTemp;
  181. // for (i = 0, j = nCount-1;i < j;i++, j--)
  182. // {
  183. //     nTemp = pnOrder[i];
  184. //     pnOrder[i] = pnOrder[j];
  185. //     pnOrder[j] = nTemp;
  186. // }
  187. //
  188. // pmyHeaderCtrl->SetOrderArray(nCount, pnOrder);
  189. // free(pnOrder);
  190. // </code>
  191. // ---------------------------------------------------------------------------
  192. virtual BOOL GetOrderArray(LPINT piArray, int iCount = -1);
  193. // -----------------------------------------------------------------------
  194. // Summary:
  195. //     Retrieves the bounding rectangle for a given item in a header control.
  196. // Parameters:
  197. //     nIndex -  The zero-based index of the header control item.
  198. //     lpRect -  A pointer to the address of aRECT structure that receives the bounding rectangle information.
  199. // Returns:
  200. //     Nonzero if successful; otherwise 0.
  201. // Remarks:
  202. //     This member function implements the behavior of the Win32 message
  203. //     HDM_GETITEMRECT, as described in the Platform SDK.
  204. // -----------------------------------------------------------------------
  205. virtual BOOL GetItemRect(int nIndex, LPRECT lpRect) const;
  206. };
  207. // ----------------------------------------------------------------------
  208. // Summary:
  209. //     The CXTListCtrlHelper class is a helper class that is used
  210. //     with Visual C++ 5.0 to provide compatibility with later versions
  211. //     of Visual C++. For Visual C++ 6.0 and later CXTListCtrlHelper
  212. //     is defined as CListCtrl.
  213. // ----------------------------------------------------------------------
  214. class _XTP_EXT_CLASS CXTListCtrlHelper : public CListCtrl
  215. {
  216. public:
  217. // ------------------------------------------------------------------------
  218. // Summary:
  219. //     Gets the position of the first selected item in the list view
  220. //     control.
  221. // Returns:
  222. //     A POSITION value that can be used for iteration or object
  223. //     pointer retrieval; NULL if no items are selected.
  224. // Example:
  225. //     The following example demonstrates how to use GetFirstSelectedItemPosition.
  226. // <code>
  227. //     CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
  228. // ASSERT(pListCtrl != NULL);
  229. //
  230. // POSITION pos = pList->GetFirstSelectedItemPosition();
  231. // if (pos == NULL)
  232. // TRACE0("No items were selected!\n");
  233. // else
  234. // {
  235. //     while (pos)
  236. //     {
  237. //         int nItem = pList->GetNextSelectedItem(pos);
  238. //         TRACE1("Item %d was selected!\n", nItem);
  239. //         // you could do your own processing on nItem here
  240. //     }
  241. // }
  242. // </code>
  243. // See Also:
  244. //     GetNextSelectedItem
  245. // ------------------------------------------------------------------------
  246. POSITION GetFirstSelectedItemPosition() const;
  247. // ---------------------------------------------------------------------------------------------
  248. // Summary:
  249. //     Gets the index of the list item identified by pos, then sets pos
  250. //     to the POSITION value.
  251. // Parameters:
  252. //     pos -  A reference to a POSITION value returned by a previous
  253. //            call to GetNextSelectedItem or GetFirstSelectedItemPosition.
  254. //            The value is updated to the next position by this call.
  255. // Returns:
  256. //     The index of the list item identified by <i>pos</i>.
  257. // Remarks:
  258. //     You can use GetNextSelectedItem in a forward iteration loop
  259. //     if you establish the initial position with a call to GetFirstSelectedItemPosition.
  260. //
  261. // You must ensure that your POSITION value is valid. If it is
  262. //     invalid, then the Debug version of the Microsoft Foundation Class
  263. //     Library asserts.
  264. // Example:
  265. //     The following example demonstrates how to use GetNextSelectedItem.
  266. // <code>
  267. // CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
  268. // ASSERT(pListCtrl != NULL);
  269. //
  270. // POSITION pos = pList->GetFirstSelectedItemPosition();
  271. // if (pos == NULL)
  272. // TRACE0("No items were selected!\n");
  273. // else
  274. // {
  275. //     while (pos)
  276. //     {
  277. //         int nItem = pList->GetNextSelectedItem(pos);
  278. //         TRACE1("Item %d was selected!\n", nItem);
  279. //         // you could do your own processing on nItem here
  280. //     }
  281. // }
  282. // </code>
  283. // See Also:
  284. //     GetFirstSelectedItemPosition
  285. // ---------------------------------------------------------------------------------------------
  286. int GetNextSelectedItem(POSITION& pos) const;
  287. };
  288. // ---------------------------------------------------------------------
  289. // Summary:
  290. //     The CXTStringHelper class is a helper class that is used with
  291. //     Visual C++ 5.0 to provide compatibility with later versions of
  292. //     Visual C++. For Visual C++ 6.0 and later CXTStringHelper is
  293. //     defined as CString.
  294. // ---------------------------------------------------------------------
  295. class _XTP_EXT_CLASS CXTStringHelper : public CString
  296. {
  297. public:
  298. // -------------------------------------------------------------------------------------------
  299. // Summary:
  300. //     Constructs a CXTStringHelper object.
  301. // Parameters:
  302. //     strIn -  An existing CXTStringHelper object to be copied into this
  303. //              CXTStringHelper object.
  304. // Remarks:
  305. //     Because the constructors copy the input data into new allocated
  306. //     storage, you should be aware that memory exceptions may result.
  307. //     Note that some of these constructors act as conversion functions.
  308. //     This allows you to substitute, for example, an LPTSTR where
  309. //     a CXTStringHelper object is expected.
  310. // Example:
  311. //     The following example demonstrates the use of CXTStringHelper::CXTStringHelper.
  312. // <code>
  313. // CString s1;                    // Empty string
  314. // CString s2("cat");           // From a C string literal
  315. // CString s3 = s2;               // Copy constructor
  316. // CString s4(s2 + " " + s3);   // From a string expression
  317. // </code>
  318. // -------------------------------------------------------------------------------------------
  319. CXTStringHelper();
  320. CXTStringHelper(CString strIn); //<COMBINE CXTStringHelper::CXTStringHelper>
  321. // ----------------------------------------------------------------------------
  322. // Summary:
  323. //     Searches this string for the first match of a character or
  324. //     substring.
  325. // Parameters:
  326. //     lpszSub -  A substring to search for..
  327. //     nStart -   The index of the character in the string to begin the
  328. //                search with, or 0 to start from the beginning.
  329. //     ch -       A single character to search for.
  330. // Returns:
  331. //     The zero-based index of the first character in this CXTStringHelper
  332. //     object that matches the requested substring or characters; -1 if
  333. //     the substring or character is not found.
  334. // Remarks:
  335. //     The function is overloaded to accept both single characters
  336. //     (similar to the run-time function strchr) and strings
  337. //     (similar to strstr).
  338. // Example:
  339. //     The following example demonstrates the use of CXTStringHelper::Find.
  340. // <code>
  341. // CXTStringHelper s("abcdef");
  342. // _ASSERT(s.Find('c') == 2);
  343. // _ASSERT(s.Find("de") == 3);
  344. //
  345. // CXTStringHelper str("The waves are still");
  346. // int n = str.Find('e', 5);
  347. // _ASSERT(n == 7);
  348. // </code>
  349. // ----------------------------------------------------------------------------
  350. int Find(TCHAR ch) const;
  351. int Find(LPCTSTR lpszSub) const;             //<COMBINE CXTStringHelper::Find@TCHAR@const>
  352. int Find(LPCTSTR lpszSub, int nStart) const; //<COMBINE CXTStringHelper::Find@TCHAR@const>
  353. // --------------------------------------------------------------------------------
  354. // Summary:
  355. //     Inserts a single character or a substring at the given index
  356. //     within the string.
  357. // Parameters:
  358. //     nIndex -  The index of the character before which the insertion will
  359. //               take place.
  360. //     pstr -    A pointer to the substring to be inserted.
  361. //     ch -      The character to be inserted.
  362. // Returns:
  363. //     The length of the changed string.
  364. // Remarks:
  365. //     The <i>nIndex</i> parameter identifies the first character that
  366. //     will be moved to make room for the character or substring. If <i>nIndex</i>
  367. //     is zero, the insertion will occur before the entire string. If <i>nIndex</i>
  368. //     is higher than the length of the string, the function will
  369. //     concatenate the present string and the new material provided by
  370. //     either <i>ch</i> or <i>psz</i>.
  371. // Example:
  372. //     The following example demonstrates the use of CXTStringHelper::Find.
  373. // <code>
  374. // CXTStringHelper str("SoccerBest");
  375. // int n = str.Insert(6, "is ");
  376. // _ASSERT(n == str.GetLength());
  377. // printf("1: %sn", (LPCTSTR) str);
  378. //
  379. // n = str.Insert(6, ' ');
  380. // _ASSERT(n == str.GetLength());
  381. // printf("2: %sn", (LPCTSTR) str);
  382. //
  383. // n = str.Insert(55, '!');
  384. // _ASSERT(n == str.GetLength());
  385. // printf("3: %sn", (LPCTSTR) str);
  386. // </code>
  387. //
  388. // Output
  389. //
  390. // 1: Soccer is Best
  391. //
  392. // 2: Soccer is Best
  393. //
  394. // 3: Soccer is Best!
  395. // --------------------------------------------------------------------------------
  396. int Insert(int nIndex, TCHAR ch);
  397. int Insert(int nIndex, LPCTSTR pstr); //<COMBINE CXTStringHelper::Insert@int@TCHAR>
  398. // ---------------------------------------------------------------------------------
  399. // Summary:
  400. //     The CXTStringHelper assignment (=) operator reinitialize's an
  401. //     existing CXTStringHelper object with new data.
  402. // Parameters:
  403. //     stringSrc -  A CString to be copied into this CString
  404. //                  object.
  405. // ch -         A single character.
  406. // psz -        A null-terminated string to be copied into this CXTStringHelper
  407. //                  object.
  408. // lpsz -       A null-terminated string to be copied into this CXTStringHelper
  409. //                  object.
  410. // Remarks:
  411. //     If the destination string (that is, the left side) is already
  412. //     large enough to store the new data, no new memory allocation is
  413. //     performed. You should be aware that memory exceptions may occur
  414. //     whenever you use the assignment operator because new storage is
  415. //     often allocated to hold the resulting CXTStringHelper object.
  416. // Example:
  417. //     The following example demonstrates the use of CXTStringHelper::operator
  418. //     =.
  419. // <code>
  420. //     CXTStringHelper s1, s2;   // Empty CXTStringHelper objects
  421. //
  422. // s1 = "cat";            // s1 = "cat"
  423. // s2 = s1;               // s1 and s2 each = "cat"
  424. // s1 = "the " + s1;      // Or expressions
  425. // s1 = 'x';              // Or just individual characters
  426. // </code>
  427. // ---------------------------------------------------------------------------------
  428. const CString& operator=(TCHAR ch);
  429. const CString& operator=(LPCSTR lpsz);              //<COMBINE CXTStringHelper::=@TCHAR>
  430. const CString& operator=(LPCWSTR lpsz);             //<COMBINE CXTStringHelper::=@TCHAR>
  431. const CString& operator=(const CString& stringSrc); //<COMBINE CXTStringHelper::=@TCHAR>
  432. const CString& operator=(const unsigned char* psz); //<COMBINE CXTStringHelper::=@TCHAR>
  433. // ------------------------------------------------------------------------------
  434. // Summary:
  435. //     Removes instances of the specified character from the string.
  436. // Parameters:
  437. //     chRemove -  The character to be removed from a string.
  438. // Returns:
  439. //     The count of characters removed from the string. Zero if the
  440. //     string is not changed.
  441. // Remarks:
  442. //     Comparisons for the character are case sensitive.
  443. // Example:
  444. //     The following example demonstrates the use of CXTStringHelper::Remove.
  445. // <code>
  446. // CXTStringHelper str("This is a test.");
  447. // int n = str.Remove('t');
  448. // _ASSERT(n == 2);
  449. // _ASSERT(str == "This is a es.");
  450. // </code>
  451. // ------------------------------------------------------------------------------
  452. int Remove(TCHAR chRemove);
  453. // ----------------------------------------------------------------------------------
  454. // Summary:
  455. //     Replaces a character or substring with another.
  456. // Parameters:
  457. //     lpszOld -  A pointer to a string containing the character to be
  458. //                replaced by <i>pszNew</i>.
  459. //     lpszNew -  A pointer to a string containing the character replacing <i>pszOld</i>.
  460. //     chOld -    The character to be replaced by <i>chNew</i>.
  461. //     chNew -    The character replacing <i>chOld</i>.
  462. // Returns:
  463. //     The number of replaced instances of the character or substring.
  464. //     Zero if the string is not changed.
  465. // Remarks:
  466. //     This function replaces instances of the specified character or
  467. //     substring with instances of the new character or substring. The
  468. //     string may grow or shrink as a result of the replacement; that is,
  469. //     <i>lpszNew</i> and <i>lpszOld</i> do not have to be equal in
  470. //     length. The function performs a case-sensitive match.
  471. // Example:
  472. //     The following example demonstrates the use of CXTStringHelper::Replace.
  473. // <code>
  474. // CXTStringHelper strBang(_T("Everybody likes field hockey"));
  475. // int n = strBang.Replace(_T("field hockey"), _T("soccer"));
  476. // _ASSERT(n == 1);
  477. // </code>
  478. // ----------------------------------------------------------------------------------
  479. int Replace(TCHAR chOld, TCHAR chNew);
  480. int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew); //<COMBINE CXTStringHelper::Replace@TCHAR@TCHAR>
  481. // -------------------------------------------------------------------------------------
  482. // Summary:
  483. //     Deletes a character or characters from a string starting with the
  484. //     character at the given index.
  485. // Parameters:
  486. //     nIndex -  The zero-based index of the first character in the CXTStringHelper
  487. //               object to delete.
  488. //     nCount -  The number of characters to be removed.
  489. // Returns:
  490. //     The length of the changed string.
  491. // Remarks:
  492. //     If nCount is longer than the string, the remainder of the string
  493. //     will be removed.
  494. // Example:
  495. //     The following example demonstrates the use of CXTStringHelper::Delete.
  496. // <code>
  497. // CXTStringHelper str("Soccer is best!");
  498. // printf("Before: %s\n", (LPCTSTR) str);
  499. // int n = str.Delete(6, 3);
  500. // printf("After: %s\n", (LPCTSTR) str);
  501. // _ASSERT(n == str.GetLength());
  502. // </code>
  503. //
  504. // Output
  505. //
  506. // Before: Soccer is best!
  507. //
  508. // After: Soccer best!
  509. // -------------------------------------------------------------------------------------
  510. int Delete(int nIndex, int nCount = 1);
  511. // -------------------------------------------------------------------------------
  512. // Summary:
  513. //     Extracts the first (that is, leftmost) <i>nCount</i> characters
  514. //     from this CXTStringHelper object and returns a copy of the
  515. //     extracted substring.
  516. // Parameters:
  517. //     nCount -  The number of characters to extract from this CXTStringHelper
  518. //               object.
  519. // Returns:
  520. //     A CXTStringHelper object containing a copy of the specified
  521. //     range of characters. Note that the returned CXTStringHelper
  522. //     object may be empty.
  523. // Remarks:
  524. //     If <i>nCount</i> exceeds the string length, then the entire string
  525. //     is extracted. Left is similar to the Basic Left function
  526. //     (except that indexes in Basic are zero based). For multibyte
  527. //     character sets (MBCS), <i>nCount</i> refers to each 8-bit
  528. //     character; that is, a lead and trail byte in one multibyte
  529. //     character are counted as two characters.
  530. // Example:
  531. //     The following example demonstrates the use of CXTStringHelper::Left.
  532. // <code>
  533. // CXTStringHelper s(_T("abcdef"));
  534. // _ASSERT(s.Left(2) == _T("ab"));
  535. // </code>
  536. // -------------------------------------------------------------------------------
  537. CXTStringHelper Left(int nCount) const;
  538. };
  539. #ifndef VERSION_WIN4
  540. #define VERSION_WIN4       MAKELONG(0, 4)
  541. #endif
  542. #ifndef VERSION_IE401
  543. #define VERSION_IE401      MAKELONG(72, 4)
  544. #endif
  545. #ifndef CBRS_GRIPPER
  546. #define CBRS_GRIPPER       0x00400000L
  547. #endif
  548. #ifndef AFX_IDW_REBAR
  549. #define AFX_IDW_REBAR      0xE804
  550. #endif
  551. #ifndef ID_VIEW_REBAR
  552. #define ID_VIEW_REBAR      0xE804
  553. #endif
  554. #ifndef AFX_IDW_DIALOGBAR
  555. #define AFX_IDW_DIALOGBAR  0xE805
  556. #endif
  557. #ifndef SPI_GETFLATMENU
  558. #define SPI_GETFLATMENU    0x1022
  559. #endif
  560. #ifndef AFX_INLINE
  561. #define AFX_INLINE         inline
  562. #endif
  563. #ifndef AFX_STATIC
  564. #define AFX_STATIC         static
  565. #endif
  566. #endif
  567. //}}AFX_CODEJOCK_PRIVATE
  568. //////////////////////////////////////////////////////////////////////
  569. #endif // #if !defined(__XTVC50HELPERS_H__)