aygshell.h
上传用户:fjqzjn
上传日期:2008-01-21
资源大小:2764k
文件大小:8k
源码类别:

Windows CE

开发平台:

Visual C++

  1. //
  2. // Copyright (c) Microsoft Corporation.  All rights reserved.
  3. //
  4. //
  5. // Use of this source code is subject to the terms of the Microsoft end-user
  6. // license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
  7. // If you did not accept the terms of the EULA, you are not authorized to use
  8. // this source code. For a copy of the EULA, please see the LICENSE.RTF on your
  9. // install media.
  10. //
  11. #ifndef _AYGSHELL_H_
  12. #define _AYGSHELL_H_
  13. // aygshell.h - exported functions from aygshell'
  14. #include <shellsdk.h>
  15. #include <shlobj.h>
  16. // USED BY SHDONEBUTTON
  17. //
  18. // Disable the navigation button bestowed by the Shell
  19. // (NOTE: this only works if WS_CAPTION is not set)
  20. #define WS_NONAVDONEBUTTON WS_MINIMIZEBOX
  21. //++++++
  22. //
  23. // SHEnumPropSheetHandlers
  24. //
  25. // this is the maximum number of extension pages that can be added
  26. // to a property sheet
  27. #define MAX_EXTENSION_PAGES 6
  28. // For property sheet extension - enumerates the subkeys under the
  29. // class key hkey.  For each handler, the class is instantiated,
  30. // queried for IShellPropSheetExt and AddPages is called.  The
  31. // handle to the page is inserted in the array prghPropPages, and
  32. // the pointer to the IShellPropSheetExt is added to prgpispse
  33. // with one reference from the caller (these should be released
  34. // by the caller after PropertySheet() is called).  These two arrays
  35. // should be allocated before calling SHEnumPropSheetHandlers.
  36. //
  37. // Typical usage of this function would be:
  38. //
  39. //  - allocate an array of HPROPSHEETPAGEs for the standard pages plus
  40. //    MAX_EXTENSION_PAGES extension pages
  41. //  - fill a PROPSHEETPAGE struct and call CreatePropertySheetPage() on each
  42. //    standard page
  43. //  - store the HPROPSHEETPAGE for the standard pages at the beginning of
  44. //    the array
  45. //  - open a registry key where the app has defined ISV extension
  46. //  - allocate an array of MAX_EXTENSION_PAGES IShellPropSheetExt interface
  47. //    pointers
  48. //  - call SHEnumPropSheetHandlers(), passing in the hkey, a pointer to the
  49. //    first free HPROPSHEETPAGE array element, and a pointer to the array of
  50. //    IShellPropSheetExt interface pointers
  51. //  - call PropertySheet() to display the property sheet
  52. //  - Release each interface pointer in the array of interface pointers
  53. //  - free both arrays
  54. // SHEnumPropSheetHandlers assumes that prghPropPages and prgpispse have been
  55. // allocated with enough space for up to MAX_EXTENSION_PAGES elements.  The
  56. // number of pages added is returned in *pcPages.
  57. BOOL SHEnumPropSheetHandlers(HKEY hkey, int *pcPages, HPROPSHEETPAGE *prghPropPages, IShellPropSheetExt **prgpispse);
  58. //
  59. // End SHEnumPropSheetHandlers
  60. //
  61. //------
  62. // used by SHCreateNewItem
  63. #undef  INTERFACE
  64. #define INTERFACE   INewMenuItemServer
  65. DECLARE_INTERFACE_(INewMenuItemServer, IUnknown)
  66. {
  67.     // *** IUnknown methods ***
  68.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  69.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  70.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  71.     STDMETHOD(CreateNewItem)             (THIS_ HWND hwndParent) PURE;
  72. };
  73. //////////////////////////////////////////////////////////////////////////////
  74. //
  75. // Input Context API
  76. //
  77. // These are definitions and APIs for the interacting with the input context
  78. // properties of individual windows
  79. //
  80. // {
  81. // Word correct Options
  82. enum SHIC_FEATURE
  83. {
  84.     SHIC_FEATURE_RESTOREDEFAULT = 0,
  85.     SHIC_FEATURE_AUTOCORRECT    = 0x00000001L,
  86.     SHIC_FEATURE_AUTOSUGGEST    = 0x00000002L,
  87.     SHIC_FEATURE_HAVETRAILER    = 0x00000003L,
  88.     SHIC_FEATURE_CLASS          = 0x00000004L
  89. };
  90. typedef enum SHIC_FEATURE SHIC_FEATURE;
  91. // Predefined input context classes
  92. #define SHIC_CLASS_DEFAULT  TEXT("")
  93. #define SHIC_CLASS_EMAIL    TEXT("email")
  94. #define SHIC_CLASS_URL      TEXT("url")
  95. #define SHIC_CLASS_PHONE    TEXT("phone")
  96. #define SHIC_CLASS_NAME     TEXT("name")
  97. #define SHIC_CLASS_MAXLEN       (MAX_PATH - 11)
  98. //@topic Input Context Features |
  99. // The input context API supports the following features and their corresponding values:
  100. //
  101. //@flag   SHIC_FEATURE_RESTOREDEFAULT   | Restore original input context state. (no corresponding value)
  102. //@flag   SHIC_FEATURE_AUTOCORRECT      | Turn auto-corrections on and off. (TRUE, FALSE)
  103. //@flag   SHIC_FEATURE_AUTOCOMPLETE     | Turn dictionary suggestions on and off. (TRUE, FALSE)
  104. //@flag   SHIC_FEATURE_HAVETRAILER      | Specify whether to append trailer characters after replacing words.
  105. //                                      (TRUE, FALSE)
  106. //@flag   SHIC_FEATURE_CLASS            | Make this control behave like a specific semantic type.
  107. //                                      (SHIC_CLASS_DEFAULT, SHIC_CLASS_EMAIL, SHIC_CLASS_URL,
  108. //                                      SHIC_CLASS_PHONE, SHIC_CLASS_NAME)
  109. //
  110. //@comm All SHIC_FEATUREs are inherited from parent if undefined. That is, if they are not defined in
  111. //      a window or the window's SHIC class, the API looks at the parent chain to find the setting
  112. //      that applies to the window.
  113. //
  114. //@xref <f SHSetInputContext> <f SHGetInputContext>
  115. //
  116. //++++++
  117. //
  118. //@func HRESULT | SHSetInputContext | Changes the state of an input context feature
  119. //
  120. //@parm HWND            | hwnd      | IN - Window whose context will be set
  121. //@parm DWORD           | dwFeature | IN - Input context feature to change
  122. //@parm const LPVOID    | lpValue   | IN - New value assigned to feature
  123. //
  124. //@rdesc Returns one of the following values:
  125. //@flag S_OK                    | If everything went well
  126. //@flag ERROR_INVALID_PARAMETER | if hwnd was NULL or lpValue was NULL for a feature
  127. //                                that does not support it, such as SHIC_FEATURE_AUTOCORRECT,
  128. //                                SHIC_FEATURE_AUTOCOMPLETE and SHIC_FEATURE_HAVETRAILER.
  129. //@flag ERROR_NOT_SUPPORTED     | If the feature specified was invalid
  130. //@flag ERROR_INVALID_DATA      | If the specified value is not a legal option
  131. //
  132. //@xref <l Input_Context_Features> <f SHGetInputContext>
  133. //
  134. HRESULT SHSetInputContext( HWND hwnd, DWORD dwFeature, const LPVOID lpValue );
  135. //
  136. // End SHSetInputContext
  137. //
  138. //------
  139. //++++++
  140. //
  141. //@func HRESULT | SHGetInputContext | Retrieves current state of an input context feature
  142. //
  143. //@parm HWND    | hwnd      | IN - Window whose context will be retrieved
  144. //@parm DWORD   | dwFeature | IN - Input context feature to retrieve
  145. //@parm LPVOID  | lpValue   | OUT - Buffer to hold current value of feature
  146. //@parm LPDWORD | pdwSize   | IN/OUT - size of the buffer passed in to retrieve the value
  147. //
  148. //@rdesc Returns one of the following values:
  149. //@flag S_OK                        | If everything went well
  150. //@flag ERROR_INVALID_PARAMETER     | If hwnd or lpdwSize passed were NULL
  151. //@flag ERROR_NOT_SUPPORTED         | If the feature specified was invalid
  152. //@flag ERROR_INSUFFICIENT_BUFFER   | If buffer passed is too small
  153. //
  154. //@comm Retrieves the current state/value of the specified
  155. //      input context feature. If the value is not explicitly set, it
  156. //      looks at the features set by the context class. If no class was
  157. //      set explicitly, or the class didn't set that value, it returns
  158. //      the default value for that feature, which would be the
  159. //      currently active one.
  160. //      If lpValue is NULL and lpdwSize is not NULL, it returns the
  161. //      size of the buffer needed in lpdwSize.
  162. //
  163. //@xref <l Input_Context_Features> <f SHSetInputContext>
  164. //
  165. HRESULT SHGetInputContext( HWND hwnd, DWORD dwFeature, LPVOID lpValue, LPDWORD lpdwSize );
  166. //
  167. // End SHGetInputContext
  168. //
  169. //------
  170. // }
  171. //
  172. // end Input Context API
  173. //
  174. //////////////////////////////////////////////////////////////////////////////
  175. #endif // _AYGSHELL_H_