sapi.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:856k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for sapi.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __sapi_h__
  27. #define __sapi_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __ISpNotifySource_FWD_DEFINED__
  33. #define __ISpNotifySource_FWD_DEFINED__
  34. typedef interface ISpNotifySource ISpNotifySource;
  35. #endif  /* __ISpNotifySource_FWD_DEFINED__ */
  36. #ifndef __ISpNotifySink_FWD_DEFINED__
  37. #define __ISpNotifySink_FWD_DEFINED__
  38. typedef interface ISpNotifySink ISpNotifySink;
  39. #endif  /* __ISpNotifySink_FWD_DEFINED__ */
  40. #ifndef __ISpNotifyTranslator_FWD_DEFINED__
  41. #define __ISpNotifyTranslator_FWD_DEFINED__
  42. typedef interface ISpNotifyTranslator ISpNotifyTranslator;
  43. #endif  /* __ISpNotifyTranslator_FWD_DEFINED__ */
  44. #ifndef __ISpDataKey_FWD_DEFINED__
  45. #define __ISpDataKey_FWD_DEFINED__
  46. typedef interface ISpDataKey ISpDataKey;
  47. #endif  /* __ISpDataKey_FWD_DEFINED__ */
  48. #ifndef __ISpRegDataKey_FWD_DEFINED__
  49. #define __ISpRegDataKey_FWD_DEFINED__
  50. typedef interface ISpRegDataKey ISpRegDataKey;
  51. #endif  /* __ISpRegDataKey_FWD_DEFINED__ */
  52. #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
  53. #define __ISpObjectTokenCategory_FWD_DEFINED__
  54. typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
  55. #endif  /* __ISpObjectTokenCategory_FWD_DEFINED__ */
  56. #ifndef __ISpObjectToken_FWD_DEFINED__
  57. #define __ISpObjectToken_FWD_DEFINED__
  58. typedef interface ISpObjectToken ISpObjectToken;
  59. #endif  /* __ISpObjectToken_FWD_DEFINED__ */
  60. #ifndef __ISpObjectTokenInit_FWD_DEFINED__
  61. #define __ISpObjectTokenInit_FWD_DEFINED__
  62. typedef interface ISpObjectTokenInit ISpObjectTokenInit;
  63. #endif  /* __ISpObjectTokenInit_FWD_DEFINED__ */
  64. #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
  65. #define __IEnumSpObjectTokens_FWD_DEFINED__
  66. typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
  67. #endif  /* __IEnumSpObjectTokens_FWD_DEFINED__ */
  68. #ifndef __ISpObjectWithToken_FWD_DEFINED__
  69. #define __ISpObjectWithToken_FWD_DEFINED__
  70. typedef interface ISpObjectWithToken ISpObjectWithToken;
  71. #endif  /* __ISpObjectWithToken_FWD_DEFINED__ */
  72. #ifndef __ISpResourceManager_FWD_DEFINED__
  73. #define __ISpResourceManager_FWD_DEFINED__
  74. typedef interface ISpResourceManager ISpResourceManager;
  75. #endif  /* __ISpResourceManager_FWD_DEFINED__ */
  76. #ifndef __ISpEventSource_FWD_DEFINED__
  77. #define __ISpEventSource_FWD_DEFINED__
  78. typedef interface ISpEventSource ISpEventSource;
  79. #endif  /* __ISpEventSource_FWD_DEFINED__ */
  80. #ifndef __ISpEventSink_FWD_DEFINED__
  81. #define __ISpEventSink_FWD_DEFINED__
  82. typedef interface ISpEventSink ISpEventSink;
  83. #endif  /* __ISpEventSink_FWD_DEFINED__ */
  84. #ifndef __ISpStreamFormat_FWD_DEFINED__
  85. #define __ISpStreamFormat_FWD_DEFINED__
  86. typedef interface ISpStreamFormat ISpStreamFormat;
  87. #endif  /* __ISpStreamFormat_FWD_DEFINED__ */
  88. #ifndef __ISpStream_FWD_DEFINED__
  89. #define __ISpStream_FWD_DEFINED__
  90. typedef interface ISpStream ISpStream;
  91. #endif  /* __ISpStream_FWD_DEFINED__ */
  92. #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
  93. #define __ISpStreamFormatConverter_FWD_DEFINED__
  94. typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
  95. #endif  /* __ISpStreamFormatConverter_FWD_DEFINED__ */
  96. #ifndef __ISpAudio_FWD_DEFINED__
  97. #define __ISpAudio_FWD_DEFINED__
  98. typedef interface ISpAudio ISpAudio;
  99. #endif  /* __ISpAudio_FWD_DEFINED__ */
  100. #ifndef __ISpMMSysAudio_FWD_DEFINED__
  101. #define __ISpMMSysAudio_FWD_DEFINED__
  102. typedef interface ISpMMSysAudio ISpMMSysAudio;
  103. #endif  /* __ISpMMSysAudio_FWD_DEFINED__ */
  104. #ifndef __ISpTranscript_FWD_DEFINED__
  105. #define __ISpTranscript_FWD_DEFINED__
  106. typedef interface ISpTranscript ISpTranscript;
  107. #endif  /* __ISpTranscript_FWD_DEFINED__ */
  108. #ifndef __ISpLexicon_FWD_DEFINED__
  109. #define __ISpLexicon_FWD_DEFINED__
  110. typedef interface ISpLexicon ISpLexicon;
  111. #endif  /* __ISpLexicon_FWD_DEFINED__ */
  112. #ifndef __ISpContainerLexicon_FWD_DEFINED__
  113. #define __ISpContainerLexicon_FWD_DEFINED__
  114. typedef interface ISpContainerLexicon ISpContainerLexicon;
  115. #endif  /* __ISpContainerLexicon_FWD_DEFINED__ */
  116. #ifndef __ISpPhoneConverter_FWD_DEFINED__
  117. #define __ISpPhoneConverter_FWD_DEFINED__
  118. typedef interface ISpPhoneConverter ISpPhoneConverter;
  119. #endif  /* __ISpPhoneConverter_FWD_DEFINED__ */
  120. #ifndef __ISpVoice_FWD_DEFINED__
  121. #define __ISpVoice_FWD_DEFINED__
  122. typedef interface ISpVoice ISpVoice;
  123. #endif  /* __ISpVoice_FWD_DEFINED__ */
  124. #ifndef __ISpPhrase_FWD_DEFINED__
  125. #define __ISpPhrase_FWD_DEFINED__
  126. typedef interface ISpPhrase ISpPhrase;
  127. #endif  /* __ISpPhrase_FWD_DEFINED__ */
  128. #ifndef __ISpPhraseAlt_FWD_DEFINED__
  129. #define __ISpPhraseAlt_FWD_DEFINED__
  130. typedef interface ISpPhraseAlt ISpPhraseAlt;
  131. #endif  /* __ISpPhraseAlt_FWD_DEFINED__ */
  132. #ifndef __ISpRecoResult_FWD_DEFINED__
  133. #define __ISpRecoResult_FWD_DEFINED__
  134. typedef interface ISpRecoResult ISpRecoResult;
  135. #endif  /* __ISpRecoResult_FWD_DEFINED__ */
  136. #ifndef __ISpGrammarBuilder_FWD_DEFINED__
  137. #define __ISpGrammarBuilder_FWD_DEFINED__
  138. typedef interface ISpGrammarBuilder ISpGrammarBuilder;
  139. #endif  /* __ISpGrammarBuilder_FWD_DEFINED__ */
  140. #ifndef __ISpRecoGrammar_FWD_DEFINED__
  141. #define __ISpRecoGrammar_FWD_DEFINED__
  142. typedef interface ISpRecoGrammar ISpRecoGrammar;
  143. #endif  /* __ISpRecoGrammar_FWD_DEFINED__ */
  144. #ifndef __ISpRecoContext_FWD_DEFINED__
  145. #define __ISpRecoContext_FWD_DEFINED__
  146. typedef interface ISpRecoContext ISpRecoContext;
  147. #endif  /* __ISpRecoContext_FWD_DEFINED__ */
  148. #ifndef __ISpProperties_FWD_DEFINED__
  149. #define __ISpProperties_FWD_DEFINED__
  150. typedef interface ISpProperties ISpProperties;
  151. #endif  /* __ISpProperties_FWD_DEFINED__ */
  152. #ifndef __ISpRecognizer_FWD_DEFINED__
  153. #define __ISpRecognizer_FWD_DEFINED__
  154. typedef interface ISpRecognizer ISpRecognizer;
  155. #endif  /* __ISpRecognizer_FWD_DEFINED__ */
  156. #ifndef __ISpeechDataKey_FWD_DEFINED__
  157. #define __ISpeechDataKey_FWD_DEFINED__
  158. typedef interface ISpeechDataKey ISpeechDataKey;
  159. #endif  /* __ISpeechDataKey_FWD_DEFINED__ */
  160. #ifndef __ISpeechObjectToken_FWD_DEFINED__
  161. #define __ISpeechObjectToken_FWD_DEFINED__
  162. typedef interface ISpeechObjectToken ISpeechObjectToken;
  163. #endif  /* __ISpeechObjectToken_FWD_DEFINED__ */
  164. #ifndef __ISpeechObjectTokens_FWD_DEFINED__
  165. #define __ISpeechObjectTokens_FWD_DEFINED__
  166. typedef interface ISpeechObjectTokens ISpeechObjectTokens;
  167. #endif  /* __ISpeechObjectTokens_FWD_DEFINED__ */
  168. #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
  169. #define __ISpeechObjectTokenCategory_FWD_DEFINED__
  170. typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
  171. #endif  /* __ISpeechObjectTokenCategory_FWD_DEFINED__ */
  172. #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
  173. #define __ISpeechAudioBufferInfo_FWD_DEFINED__
  174. typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
  175. #endif  /* __ISpeechAudioBufferInfo_FWD_DEFINED__ */
  176. #ifndef __ISpeechAudioStatus_FWD_DEFINED__
  177. #define __ISpeechAudioStatus_FWD_DEFINED__
  178. typedef interface ISpeechAudioStatus ISpeechAudioStatus;
  179. #endif  /* __ISpeechAudioStatus_FWD_DEFINED__ */
  180. #ifndef __ISpeechAudioFormat_FWD_DEFINED__
  181. #define __ISpeechAudioFormat_FWD_DEFINED__
  182. typedef interface ISpeechAudioFormat ISpeechAudioFormat;
  183. #endif  /* __ISpeechAudioFormat_FWD_DEFINED__ */
  184. #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
  185. #define __ISpeechWaveFormatEx_FWD_DEFINED__
  186. typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
  187. #endif  /* __ISpeechWaveFormatEx_FWD_DEFINED__ */
  188. #ifndef __ISpeechBaseStream_FWD_DEFINED__
  189. #define __ISpeechBaseStream_FWD_DEFINED__
  190. typedef interface ISpeechBaseStream ISpeechBaseStream;
  191. #endif  /* __ISpeechBaseStream_FWD_DEFINED__ */
  192. #ifndef __ISpeechFileStream_FWD_DEFINED__
  193. #define __ISpeechFileStream_FWD_DEFINED__
  194. typedef interface ISpeechFileStream ISpeechFileStream;
  195. #endif  /* __ISpeechFileStream_FWD_DEFINED__ */
  196. #ifndef __ISpeechMemoryStream_FWD_DEFINED__
  197. #define __ISpeechMemoryStream_FWD_DEFINED__
  198. typedef interface ISpeechMemoryStream ISpeechMemoryStream;
  199. #endif  /* __ISpeechMemoryStream_FWD_DEFINED__ */
  200. #ifndef __ISpeechCustomStream_FWD_DEFINED__
  201. #define __ISpeechCustomStream_FWD_DEFINED__
  202. typedef interface ISpeechCustomStream ISpeechCustomStream;
  203. #endif  /* __ISpeechCustomStream_FWD_DEFINED__ */
  204. #ifndef __ISpeechAudio_FWD_DEFINED__
  205. #define __ISpeechAudio_FWD_DEFINED__
  206. typedef interface ISpeechAudio ISpeechAudio;
  207. #endif  /* __ISpeechAudio_FWD_DEFINED__ */
  208. #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
  209. #define __ISpeechMMSysAudio_FWD_DEFINED__
  210. typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
  211. #endif  /* __ISpeechMMSysAudio_FWD_DEFINED__ */
  212. #ifndef __ISpeechVoice_FWD_DEFINED__
  213. #define __ISpeechVoice_FWD_DEFINED__
  214. typedef interface ISpeechVoice ISpeechVoice;
  215. #endif  /* __ISpeechVoice_FWD_DEFINED__ */
  216. #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
  217. #define __ISpeechVoiceStatus_FWD_DEFINED__
  218. typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
  219. #endif  /* __ISpeechVoiceStatus_FWD_DEFINED__ */
  220. #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
  221. #define ___ISpeechVoiceEvents_FWD_DEFINED__
  222. typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
  223. #endif  /* ___ISpeechVoiceEvents_FWD_DEFINED__ */
  224. #ifndef __ISpeechRecognizer_FWD_DEFINED__
  225. #define __ISpeechRecognizer_FWD_DEFINED__
  226. typedef interface ISpeechRecognizer ISpeechRecognizer;
  227. #endif  /* __ISpeechRecognizer_FWD_DEFINED__ */
  228. #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
  229. #define __ISpeechRecognizerStatus_FWD_DEFINED__
  230. typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
  231. #endif  /* __ISpeechRecognizerStatus_FWD_DEFINED__ */
  232. #ifndef __ISpeechRecoContext_FWD_DEFINED__
  233. #define __ISpeechRecoContext_FWD_DEFINED__
  234. typedef interface ISpeechRecoContext ISpeechRecoContext;
  235. #endif  /* __ISpeechRecoContext_FWD_DEFINED__ */
  236. #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
  237. #define __ISpeechRecoGrammar_FWD_DEFINED__
  238. typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
  239. #endif  /* __ISpeechRecoGrammar_FWD_DEFINED__ */
  240. #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
  241. #define ___ISpeechRecoContextEvents_FWD_DEFINED__
  242. typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
  243. #endif  /* ___ISpeechRecoContextEvents_FWD_DEFINED__ */
  244. #ifndef __ISpeechGrammarRule_FWD_DEFINED__
  245. #define __ISpeechGrammarRule_FWD_DEFINED__
  246. typedef interface ISpeechGrammarRule ISpeechGrammarRule;
  247. #endif  /* __ISpeechGrammarRule_FWD_DEFINED__ */
  248. #ifndef __ISpeechGrammarRules_FWD_DEFINED__
  249. #define __ISpeechGrammarRules_FWD_DEFINED__
  250. typedef interface ISpeechGrammarRules ISpeechGrammarRules;
  251. #endif  /* __ISpeechGrammarRules_FWD_DEFINED__ */
  252. #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
  253. #define __ISpeechGrammarRuleState_FWD_DEFINED__
  254. typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
  255. #endif  /* __ISpeechGrammarRuleState_FWD_DEFINED__ */
  256. #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  257. #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
  258. typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
  259. #endif  /* __ISpeechGrammarRuleStateTransition_FWD_DEFINED__ */
  260. #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  261. #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
  262. typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
  263. #endif  /* __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__ */
  264. #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
  265. #define __ISpeechTextSelectionInformation_FWD_DEFINED__
  266. typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
  267. #endif  /* __ISpeechTextSelectionInformation_FWD_DEFINED__ */
  268. #ifndef __ISpeechRecoResult_FWD_DEFINED__
  269. #define __ISpeechRecoResult_FWD_DEFINED__
  270. typedef interface ISpeechRecoResult ISpeechRecoResult;
  271. #endif  /* __ISpeechRecoResult_FWD_DEFINED__ */
  272. #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
  273. #define __ISpeechRecoResultTimes_FWD_DEFINED__
  274. typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
  275. #endif  /* __ISpeechRecoResultTimes_FWD_DEFINED__ */
  276. #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
  277. #define __ISpeechPhraseAlternate_FWD_DEFINED__
  278. typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
  279. #endif  /* __ISpeechPhraseAlternate_FWD_DEFINED__ */
  280. #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
  281. #define __ISpeechPhraseAlternates_FWD_DEFINED__
  282. typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
  283. #endif  /* __ISpeechPhraseAlternates_FWD_DEFINED__ */
  284. #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
  285. #define __ISpeechPhraseInfo_FWD_DEFINED__
  286. typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
  287. #endif  /* __ISpeechPhraseInfo_FWD_DEFINED__ */
  288. #ifndef __ISpeechPhraseElement_FWD_DEFINED__
  289. #define __ISpeechPhraseElement_FWD_DEFINED__
  290. typedef interface ISpeechPhraseElement ISpeechPhraseElement;
  291. #endif  /* __ISpeechPhraseElement_FWD_DEFINED__ */
  292. #ifndef __ISpeechPhraseElements_FWD_DEFINED__
  293. #define __ISpeechPhraseElements_FWD_DEFINED__
  294. typedef interface ISpeechPhraseElements ISpeechPhraseElements;
  295. #endif  /* __ISpeechPhraseElements_FWD_DEFINED__ */
  296. #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
  297. #define __ISpeechPhraseReplacement_FWD_DEFINED__
  298. typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
  299. #endif  /* __ISpeechPhraseReplacement_FWD_DEFINED__ */
  300. #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
  301. #define __ISpeechPhraseReplacements_FWD_DEFINED__
  302. typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
  303. #endif  /* __ISpeechPhraseReplacements_FWD_DEFINED__ */
  304. #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
  305. #define __ISpeechPhraseProperty_FWD_DEFINED__
  306. typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
  307. #endif  /* __ISpeechPhraseProperty_FWD_DEFINED__ */
  308. #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
  309. #define __ISpeechPhraseProperties_FWD_DEFINED__
  310. typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
  311. #endif  /* __ISpeechPhraseProperties_FWD_DEFINED__ */
  312. #ifndef __ISpeechPhraseRule_FWD_DEFINED__
  313. #define __ISpeechPhraseRule_FWD_DEFINED__
  314. typedef interface ISpeechPhraseRule ISpeechPhraseRule;
  315. #endif  /* __ISpeechPhraseRule_FWD_DEFINED__ */
  316. #ifndef __ISpeechPhraseRules_FWD_DEFINED__
  317. #define __ISpeechPhraseRules_FWD_DEFINED__
  318. typedef interface ISpeechPhraseRules ISpeechPhraseRules;
  319. #endif  /* __ISpeechPhraseRules_FWD_DEFINED__ */
  320. #ifndef __ISpeechLexicon_FWD_DEFINED__
  321. #define __ISpeechLexicon_FWD_DEFINED__
  322. typedef interface ISpeechLexicon ISpeechLexicon;
  323. #endif  /* __ISpeechLexicon_FWD_DEFINED__ */
  324. #ifndef __ISpeechLexiconWords_FWD_DEFINED__
  325. #define __ISpeechLexiconWords_FWD_DEFINED__
  326. typedef interface ISpeechLexiconWords ISpeechLexiconWords;
  327. #endif  /* __ISpeechLexiconWords_FWD_DEFINED__ */
  328. #ifndef __ISpeechLexiconWord_FWD_DEFINED__
  329. #define __ISpeechLexiconWord_FWD_DEFINED__
  330. typedef interface ISpeechLexiconWord ISpeechLexiconWord;
  331. #endif  /* __ISpeechLexiconWord_FWD_DEFINED__ */
  332. #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
  333. #define __ISpeechLexiconPronunciations_FWD_DEFINED__
  334. typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
  335. #endif  /* __ISpeechLexiconPronunciations_FWD_DEFINED__ */
  336. #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
  337. #define __ISpeechLexiconPronunciation_FWD_DEFINED__
  338. typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
  339. #endif  /* __ISpeechLexiconPronunciation_FWD_DEFINED__ */
  340. #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  341. #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
  342. typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
  343. #endif  /* __ISpeechPhraseInfoBuilder_FWD_DEFINED__ */
  344. #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
  345. #define __ISpeechPhoneConverter_FWD_DEFINED__
  346. typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
  347. #endif  /* __ISpeechPhoneConverter_FWD_DEFINED__ */
  348. #ifndef __SpNotifyTranslator_FWD_DEFINED__
  349. #define __SpNotifyTranslator_FWD_DEFINED__
  350. #ifdef __cplusplus
  351. typedef class SpNotifyTranslator SpNotifyTranslator;
  352. #else
  353. typedef struct SpNotifyTranslator SpNotifyTranslator;
  354. #endif /* __cplusplus */
  355. #endif  /* __SpNotifyTranslator_FWD_DEFINED__ */
  356. #ifndef __SpObjectTokenCategory_FWD_DEFINED__
  357. #define __SpObjectTokenCategory_FWD_DEFINED__
  358. #ifdef __cplusplus
  359. typedef class SpObjectTokenCategory SpObjectTokenCategory;
  360. #else
  361. typedef struct SpObjectTokenCategory SpObjectTokenCategory;
  362. #endif /* __cplusplus */
  363. #endif  /* __SpObjectTokenCategory_FWD_DEFINED__ */
  364. #ifndef __SpObjectToken_FWD_DEFINED__
  365. #define __SpObjectToken_FWD_DEFINED__
  366. #ifdef __cplusplus
  367. typedef class SpObjectToken SpObjectToken;
  368. #else
  369. typedef struct SpObjectToken SpObjectToken;
  370. #endif /* __cplusplus */
  371. #endif  /* __SpObjectToken_FWD_DEFINED__ */
  372. #ifndef __SpResourceManager_FWD_DEFINED__
  373. #define __SpResourceManager_FWD_DEFINED__
  374. #ifdef __cplusplus
  375. typedef class SpResourceManager SpResourceManager;
  376. #else
  377. typedef struct SpResourceManager SpResourceManager;
  378. #endif /* __cplusplus */
  379. #endif  /* __SpResourceManager_FWD_DEFINED__ */
  380. #ifndef __SpStreamFormatConverter_FWD_DEFINED__
  381. #define __SpStreamFormatConverter_FWD_DEFINED__
  382. #ifdef __cplusplus
  383. typedef class SpStreamFormatConverter SpStreamFormatConverter;
  384. #else
  385. typedef struct SpStreamFormatConverter SpStreamFormatConverter;
  386. #endif /* __cplusplus */
  387. #endif  /* __SpStreamFormatConverter_FWD_DEFINED__ */
  388. #ifndef __SpMMAudioEnum_FWD_DEFINED__
  389. #define __SpMMAudioEnum_FWD_DEFINED__
  390. #ifdef __cplusplus
  391. typedef class SpMMAudioEnum SpMMAudioEnum;
  392. #else
  393. typedef struct SpMMAudioEnum SpMMAudioEnum;
  394. #endif /* __cplusplus */
  395. #endif  /* __SpMMAudioEnum_FWD_DEFINED__ */
  396. #ifndef __SpMMAudioIn_FWD_DEFINED__
  397. #define __SpMMAudioIn_FWD_DEFINED__
  398. #ifdef __cplusplus
  399. typedef class SpMMAudioIn SpMMAudioIn;
  400. #else
  401. typedef struct SpMMAudioIn SpMMAudioIn;
  402. #endif /* __cplusplus */
  403. #endif  /* __SpMMAudioIn_FWD_DEFINED__ */
  404. #ifndef __SpMMAudioOut_FWD_DEFINED__
  405. #define __SpMMAudioOut_FWD_DEFINED__
  406. #ifdef __cplusplus
  407. typedef class SpMMAudioOut SpMMAudioOut;
  408. #else
  409. typedef struct SpMMAudioOut SpMMAudioOut;
  410. #endif /* __cplusplus */
  411. #endif  /* __SpMMAudioOut_FWD_DEFINED__ */
  412. #ifndef __SpRecPlayAudio_FWD_DEFINED__
  413. #define __SpRecPlayAudio_FWD_DEFINED__
  414. #ifdef __cplusplus
  415. typedef class SpRecPlayAudio SpRecPlayAudio;
  416. #else
  417. typedef struct SpRecPlayAudio SpRecPlayAudio;
  418. #endif /* __cplusplus */
  419. #endif  /* __SpRecPlayAudio_FWD_DEFINED__ */
  420. #ifndef __SpStream_FWD_DEFINED__
  421. #define __SpStream_FWD_DEFINED__
  422. #ifdef __cplusplus
  423. typedef class SpStream SpStream;
  424. #else
  425. typedef struct SpStream SpStream;
  426. #endif /* __cplusplus */
  427. #endif  /* __SpStream_FWD_DEFINED__ */
  428. #ifndef __SpVoice_FWD_DEFINED__
  429. #define __SpVoice_FWD_DEFINED__
  430. #ifdef __cplusplus
  431. typedef class SpVoice SpVoice;
  432. #else
  433. typedef struct SpVoice SpVoice;
  434. #endif /* __cplusplus */
  435. #endif  /* __SpVoice_FWD_DEFINED__ */
  436. #ifndef __SpSharedRecoContext_FWD_DEFINED__
  437. #define __SpSharedRecoContext_FWD_DEFINED__
  438. #ifdef __cplusplus
  439. typedef class SpSharedRecoContext SpSharedRecoContext;
  440. #else
  441. typedef struct SpSharedRecoContext SpSharedRecoContext;
  442. #endif /* __cplusplus */
  443. #endif  /* __SpSharedRecoContext_FWD_DEFINED__ */
  444. #ifndef __SpInprocRecognizer_FWD_DEFINED__
  445. #define __SpInprocRecognizer_FWD_DEFINED__
  446. #ifdef __cplusplus
  447. typedef class SpInprocRecognizer SpInprocRecognizer;
  448. #else
  449. typedef struct SpInprocRecognizer SpInprocRecognizer;
  450. #endif /* __cplusplus */
  451. #endif  /* __SpInprocRecognizer_FWD_DEFINED__ */
  452. #ifndef __SpSharedRecognizer_FWD_DEFINED__
  453. #define __SpSharedRecognizer_FWD_DEFINED__
  454. #ifdef __cplusplus
  455. typedef class SpSharedRecognizer SpSharedRecognizer;
  456. #else
  457. typedef struct SpSharedRecognizer SpSharedRecognizer;
  458. #endif /* __cplusplus */
  459. #endif  /* __SpSharedRecognizer_FWD_DEFINED__ */
  460. #ifndef __SpLexicon_FWD_DEFINED__
  461. #define __SpLexicon_FWD_DEFINED__
  462. #ifdef __cplusplus
  463. typedef class SpLexicon SpLexicon;
  464. #else
  465. typedef struct SpLexicon SpLexicon;
  466. #endif /* __cplusplus */
  467. #endif  /* __SpLexicon_FWD_DEFINED__ */
  468. #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
  469. #define __SpUnCompressedLexicon_FWD_DEFINED__
  470. #ifdef __cplusplus
  471. typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
  472. #else
  473. typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
  474. #endif /* __cplusplus */
  475. #endif  /* __SpUnCompressedLexicon_FWD_DEFINED__ */
  476. #ifndef __SpCompressedLexicon_FWD_DEFINED__
  477. #define __SpCompressedLexicon_FWD_DEFINED__
  478. #ifdef __cplusplus
  479. typedef class SpCompressedLexicon SpCompressedLexicon;
  480. #else
  481. typedef struct SpCompressedLexicon SpCompressedLexicon;
  482. #endif /* __cplusplus */
  483. #endif  /* __SpCompressedLexicon_FWD_DEFINED__ */
  484. #ifndef __SpPhoneConverter_FWD_DEFINED__
  485. #define __SpPhoneConverter_FWD_DEFINED__
  486. #ifdef __cplusplus
  487. typedef class SpPhoneConverter SpPhoneConverter;
  488. #else
  489. typedef struct SpPhoneConverter SpPhoneConverter;
  490. #endif /* __cplusplus */
  491. #endif  /* __SpPhoneConverter_FWD_DEFINED__ */
  492. #ifndef __SpNullPhoneConverter_FWD_DEFINED__
  493. #define __SpNullPhoneConverter_FWD_DEFINED__
  494. #ifdef __cplusplus
  495. typedef class SpNullPhoneConverter SpNullPhoneConverter;
  496. #else
  497. typedef struct SpNullPhoneConverter SpNullPhoneConverter;
  498. #endif /* __cplusplus */
  499. #endif  /* __SpNullPhoneConverter_FWD_DEFINED__ */
  500. #ifndef __SpTextSelectionInformation_FWD_DEFINED__
  501. #define __SpTextSelectionInformation_FWD_DEFINED__
  502. #ifdef __cplusplus
  503. typedef class SpTextSelectionInformation SpTextSelectionInformation;
  504. #else
  505. typedef struct SpTextSelectionInformation SpTextSelectionInformation;
  506. #endif /* __cplusplus */
  507. #endif  /* __SpTextSelectionInformation_FWD_DEFINED__ */
  508. #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
  509. #define __SpPhraseInfoBuilder_FWD_DEFINED__
  510. #ifdef __cplusplus
  511. typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
  512. #else
  513. typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
  514. #endif /* __cplusplus */
  515. #endif  /* __SpPhraseInfoBuilder_FWD_DEFINED__ */
  516. #ifndef __SpAudioFormat_FWD_DEFINED__
  517. #define __SpAudioFormat_FWD_DEFINED__
  518. #ifdef __cplusplus
  519. typedef class SpAudioFormat SpAudioFormat;
  520. #else
  521. typedef struct SpAudioFormat SpAudioFormat;
  522. #endif /* __cplusplus */
  523. #endif  /* __SpAudioFormat_FWD_DEFINED__ */
  524. #ifndef __SpWaveFormatEx_FWD_DEFINED__
  525. #define __SpWaveFormatEx_FWD_DEFINED__
  526. #ifdef __cplusplus
  527. typedef class SpWaveFormatEx SpWaveFormatEx;
  528. #else
  529. typedef struct SpWaveFormatEx SpWaveFormatEx;
  530. #endif /* __cplusplus */
  531. #endif  /* __SpWaveFormatEx_FWD_DEFINED__ */
  532. #ifndef __SpInProcRecoContext_FWD_DEFINED__
  533. #define __SpInProcRecoContext_FWD_DEFINED__
  534. #ifdef __cplusplus
  535. typedef class SpInProcRecoContext SpInProcRecoContext;
  536. #else
  537. typedef struct SpInProcRecoContext SpInProcRecoContext;
  538. #endif /* __cplusplus */
  539. #endif  /* __SpInProcRecoContext_FWD_DEFINED__ */
  540. #ifndef __SpCustomStream_FWD_DEFINED__
  541. #define __SpCustomStream_FWD_DEFINED__
  542. #ifdef __cplusplus
  543. typedef class SpCustomStream SpCustomStream;
  544. #else
  545. typedef struct SpCustomStream SpCustomStream;
  546. #endif /* __cplusplus */
  547. #endif  /* __SpCustomStream_FWD_DEFINED__ */
  548. #ifndef __SpFileStream_FWD_DEFINED__
  549. #define __SpFileStream_FWD_DEFINED__
  550. #ifdef __cplusplus
  551. typedef class SpFileStream SpFileStream;
  552. #else
  553. typedef struct SpFileStream SpFileStream;
  554. #endif /* __cplusplus */
  555. #endif  /* __SpFileStream_FWD_DEFINED__ */
  556. #ifndef __SpMemoryStream_FWD_DEFINED__
  557. #define __SpMemoryStream_FWD_DEFINED__
  558. #ifdef __cplusplus
  559. typedef class SpMemoryStream SpMemoryStream;
  560. #else
  561. typedef struct SpMemoryStream SpMemoryStream;
  562. #endif /* __cplusplus */
  563. #endif  /* __SpMemoryStream_FWD_DEFINED__ */
  564. /* header files for imported files */
  565. #include "oaidl.h"
  566. #include "ocidl.h"
  567. #ifdef __cplusplus
  568. extern "C"{
  569. #endif 
  570. void * __RPC_USER MIDL_user_allocate(size_t);
  571. void __RPC_USER MIDL_user_free( void * ); 
  572. /* interface __MIDL_itf_sapi_0000 */
  573. /* [local] */ 
  574. #pragma warning(disable:4201) // Allow nameless structs/unions
  575. #pragma comment(lib, "sapi.lib")
  576. #if 0
  577. typedef /* [hidden][restricted] */ struct WAVEFORMATEX
  578.     {
  579.     WORD wFormatTag;
  580.     WORD nChannels;
  581.     DWORD nSamplesPerSec;
  582.     DWORD nAvgBytesPerSec;
  583.     WORD nBlockAlign;
  584.     WORD wBitsPerSample;
  585.     WORD cbSize;
  586.     }  WAVEFORMATEX;
  587. #else
  588. #include <mmsystem.h>
  589. #endif
  590. typedef /* [hidden] */ 
  591. enum SPDATAKEYLOCATION
  592.     { SPDKL_DefaultLocation = 0,
  593. SPDKL_CurrentUser = 1,
  594. SPDKL_LocalMachine = 2,
  595. SPDKL_CurrentConfig = 5
  596.     }  SPDATAKEYLOCATION;
  597. #define SPDUI_EngineProperties   L"EngineProperties"
  598. #define SPDUI_AddRemoveWord      L"AddRemoveWord"
  599. #define SPDUI_UserTraining       L"UserTraining"
  600. #define SPDUI_MicTraining        L"MicTraining"
  601. #define SPDUI_RecoProfileProperties L"RecoProfileProperties"
  602. #define SPDUI_AudioProperties    L"AudioProperties"
  603. #define SPDUI_AudioVolume        L"AudioVolume"
  604. typedef /* [hidden] */ 
  605. enum SPSTREAMFORMAT
  606.     { SPSF_Default = -1,
  607. SPSF_NoAssignedFormat = 0,
  608. SPSF_Text = SPSF_NoAssignedFormat + 1,
  609. SPSF_NonStandardFormat = SPSF_Text + 1,
  610. SPSF_ExtendedAudioFormat = SPSF_NonStandardFormat + 1,
  611. SPSF_8kHz8BitMono = SPSF_ExtendedAudioFormat + 1,
  612. SPSF_8kHz8BitStereo = SPSF_8kHz8BitMono + 1,
  613. SPSF_8kHz16BitMono = SPSF_8kHz8BitStereo + 1,
  614. SPSF_8kHz16BitStereo = SPSF_8kHz16BitMono + 1,
  615. SPSF_11kHz8BitMono = SPSF_8kHz16BitStereo + 1,
  616. SPSF_11kHz8BitStereo = SPSF_11kHz8BitMono + 1,
  617. SPSF_11kHz16BitMono = SPSF_11kHz8BitStereo + 1,
  618. SPSF_11kHz16BitStereo = SPSF_11kHz16BitMono + 1,
  619. SPSF_12kHz8BitMono = SPSF_11kHz16BitStereo + 1,
  620. SPSF_12kHz8BitStereo = SPSF_12kHz8BitMono + 1,
  621. SPSF_12kHz16BitMono = SPSF_12kHz8BitStereo + 1,
  622. SPSF_12kHz16BitStereo = SPSF_12kHz16BitMono + 1,
  623. SPSF_16kHz8BitMono = SPSF_12kHz16BitStereo + 1,
  624. SPSF_16kHz8BitStereo = SPSF_16kHz8BitMono + 1,
  625. SPSF_16kHz16BitMono = SPSF_16kHz8BitStereo + 1,
  626. SPSF_16kHz16BitStereo = SPSF_16kHz16BitMono + 1,
  627. SPSF_22kHz8BitMono = SPSF_16kHz16BitStereo + 1,
  628. SPSF_22kHz8BitStereo = SPSF_22kHz8BitMono + 1,
  629. SPSF_22kHz16BitMono = SPSF_22kHz8BitStereo + 1,
  630. SPSF_22kHz16BitStereo = SPSF_22kHz16BitMono + 1,
  631. SPSF_24kHz8BitMono = SPSF_22kHz16BitStereo + 1,
  632. SPSF_24kHz8BitStereo = SPSF_24kHz8BitMono + 1,
  633. SPSF_24kHz16BitMono = SPSF_24kHz8BitStereo + 1,
  634. SPSF_24kHz16BitStereo = SPSF_24kHz16BitMono + 1,
  635. SPSF_32kHz8BitMono = SPSF_24kHz16BitStereo + 1,
  636. SPSF_32kHz8BitStereo = SPSF_32kHz8BitMono + 1,
  637. SPSF_32kHz16BitMono = SPSF_32kHz8BitStereo + 1,
  638. SPSF_32kHz16BitStereo = SPSF_32kHz16BitMono + 1,
  639. SPSF_44kHz8BitMono = SPSF_32kHz16BitStereo + 1,
  640. SPSF_44kHz8BitStereo = SPSF_44kHz8BitMono + 1,
  641. SPSF_44kHz16BitMono = SPSF_44kHz8BitStereo + 1,
  642. SPSF_44kHz16BitStereo = SPSF_44kHz16BitMono + 1,
  643. SPSF_48kHz8BitMono = SPSF_44kHz16BitStereo + 1,
  644. SPSF_48kHz8BitStereo = SPSF_48kHz8BitMono + 1,
  645. SPSF_48kHz16BitMono = SPSF_48kHz8BitStereo + 1,
  646. SPSF_48kHz16BitStereo = SPSF_48kHz16BitMono + 1,
  647. SPSF_TrueSpeech_8kHz1BitMono = SPSF_48kHz16BitStereo + 1,
  648. SPSF_CCITT_ALaw_8kHzMono = SPSF_TrueSpeech_8kHz1BitMono + 1,
  649. SPSF_CCITT_ALaw_8kHzStereo = SPSF_CCITT_ALaw_8kHzMono + 1,
  650. SPSF_CCITT_ALaw_11kHzMono = SPSF_CCITT_ALaw_8kHzStereo + 1,
  651. SPSF_CCITT_ALaw_11kHzStereo = SPSF_CCITT_ALaw_11kHzMono + 1,
  652. SPSF_CCITT_ALaw_22kHzMono = SPSF_CCITT_ALaw_11kHzStereo + 1,
  653. SPSF_CCITT_ALaw_22kHzStereo = SPSF_CCITT_ALaw_22kHzMono + 1,
  654. SPSF_CCITT_ALaw_44kHzMono = SPSF_CCITT_ALaw_22kHzStereo + 1,
  655. SPSF_CCITT_ALaw_44kHzStereo = SPSF_CCITT_ALaw_44kHzMono + 1,
  656. SPSF_CCITT_uLaw_8kHzMono = SPSF_CCITT_ALaw_44kHzStereo + 1,
  657. SPSF_CCITT_uLaw_8kHzStereo = SPSF_CCITT_uLaw_8kHzMono + 1,
  658. SPSF_CCITT_uLaw_11kHzMono = SPSF_CCITT_uLaw_8kHzStereo + 1,
  659. SPSF_CCITT_uLaw_11kHzStereo = SPSF_CCITT_uLaw_11kHzMono + 1,
  660. SPSF_CCITT_uLaw_22kHzMono = SPSF_CCITT_uLaw_11kHzStereo + 1,
  661. SPSF_CCITT_uLaw_22kHzStereo = SPSF_CCITT_uLaw_22kHzMono + 1,
  662. SPSF_CCITT_uLaw_44kHzMono = SPSF_CCITT_uLaw_22kHzStereo + 1,
  663. SPSF_CCITT_uLaw_44kHzStereo = SPSF_CCITT_uLaw_44kHzMono + 1,
  664. SPSF_ADPCM_8kHzMono = SPSF_CCITT_uLaw_44kHzStereo + 1,
  665. SPSF_ADPCM_8kHzStereo = SPSF_ADPCM_8kHzMono + 1,
  666. SPSF_ADPCM_11kHzMono = SPSF_ADPCM_8kHzStereo + 1,
  667. SPSF_ADPCM_11kHzStereo = SPSF_ADPCM_11kHzMono + 1,
  668. SPSF_ADPCM_22kHzMono = SPSF_ADPCM_11kHzStereo + 1,
  669. SPSF_ADPCM_22kHzStereo = SPSF_ADPCM_22kHzMono + 1,
  670. SPSF_ADPCM_44kHzMono = SPSF_ADPCM_22kHzStereo + 1,
  671. SPSF_ADPCM_44kHzStereo = SPSF_ADPCM_44kHzMono + 1,
  672. SPSF_GSM610_8kHzMono = SPSF_ADPCM_44kHzStereo + 1,
  673. SPSF_GSM610_11kHzMono = SPSF_GSM610_8kHzMono + 1,
  674. SPSF_GSM610_22kHzMono = SPSF_GSM610_11kHzMono + 1,
  675. SPSF_GSM610_44kHzMono = SPSF_GSM610_22kHzMono + 1,
  676. SPSF_NUM_FORMATS = SPSF_GSM610_44kHzMono + 1
  677.     }  SPSTREAMFORMAT;
  678. EXTERN_C const GUID SPDFID_Text;
  679. EXTERN_C const GUID SPDFID_WaveFormatEx;
  680. #define SPREG_USER_ROOT          L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech"
  681. #define SPREG_LOCAL_MACHINE_ROOT L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech"
  682. #define SPCAT_AUDIOOUT         L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput"
  683. #define SPCAT_AUDIOIN          L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput"
  684. #define SPCAT_VOICES           L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices"
  685. #define SPCAT_RECOGNIZERS      L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Recognizers"
  686. #define SPCAT_APPLEXICONS      L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AppLexicons"
  687. #define SPCAT_PHONECONVERTERS  L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\PhoneConverters"
  688. #define SPCAT_RECOPROFILES     L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\RecoProfiles"
  689. #define SPMMSYS_AUDIO_IN_TOKEN_ID        L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput\TokenEnums\MMAudioIn\"
  690. #define SPMMSYS_AUDIO_OUT_TOKEN_ID       L"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioOutput\TokenEnums\MMAudioOut\"
  691. #define SPCURRENT_USER_LEXICON_TOKEN_ID  L"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\CurrentUserLexicon"
  692. #define SPTOKENVALUE_CLSID L"CLSID"
  693. #define SPTOKENKEY_FILES L"Files"
  694. #define SPTOKENKEY_UI L"UI"
  695. #define SPTOKENKEY_ATTRIBUTES L"Attributes"
  696. #define SPVOICECATEGORY_TTSRATE L"DefaultTTSRate"
  697. #define SPPROP_RESOURCE_USAGE              L"ResourceUsage"
  698. #define SPPROP_HIGH_CONFIDENCE_THRESHOLD   L"HighConfidenceThreshold"
  699. #define SPPROP_NORMAL_CONFIDENCE_THRESHOLD L"NormalConfidenceThreshold"
  700. #define SPPROP_LOW_CONFIDENCE_THRESHOLD    L"LowConfidenceThreshold"
  701. #define SPPROP_RESPONSE_SPEED              L"ResponseSpeed"
  702. #define SPPROP_COMPLEX_RESPONSE_SPEED      L"ComplexResponseSpeed"
  703. #define SPPROP_ADAPTATION_ON               L"AdaptationOn"
  704. #define SPTOPIC_SPELLING L"Spelling"
  705. #define SPWILDCARD L"..."
  706. #define SPDICTATION    L"*"
  707. #define SPINFDICTATION L"*+"
  708. #define SP_LOW_CONFIDENCE ( -1 )
  709. #define SP_NORMAL_CONFIDENCE ( 0 )
  710. #define SP_HIGH_CONFIDENCE ( +1 )
  711. #define DEFAULT_WEIGHT ( 1 )
  712. #define SP_MAX_WORD_LENGTH ( 128 )
  713. #define SP_MAX_PRON_LENGTH ( 384 )
  714. #if defined(__cplusplus)
  715. interface ISpNotifyCallback
  716. {
  717. virtual HRESULT STDMETHODCALLTYPE NotifyCallback(
  718.                                      WPARAM wParam,
  719.                                      LPARAM lParam) = 0;
  720. };
  721. #else
  722. typedef void *ISpNotifyCallback;
  723. #endif
  724. #if 0
  725. typedef void *SPNOTIFYCALLBACK;
  726. #else
  727. typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
  728. #endif
  729. extern RPC_IF_HANDLE __MIDL_itf_sapi_0000_v0_0_c_ifspec;
  730. extern RPC_IF_HANDLE __MIDL_itf_sapi_0000_v0_0_s_ifspec;
  731. #ifndef __ISpNotifySource_INTERFACE_DEFINED__
  732. #define __ISpNotifySource_INTERFACE_DEFINED__
  733. /* interface ISpNotifySource */
  734. /* [restricted][unique][helpstring][uuid][object] */ 
  735. EXTERN_C const IID IID_ISpNotifySource;
  736. #if defined(__cplusplus) && !defined(CINTERFACE)
  737.     
  738.     MIDL_INTERFACE("5EFF4AEF-8487-11D2-961C-00C04F8EE628")
  739.     ISpNotifySource : public IUnknown
  740.     {
  741.     public:
  742.         virtual HRESULT STDMETHODCALLTYPE SetNotifySink( 
  743.             /* [in] */ ISpNotifySink *pNotifySink) = 0;
  744.         
  745.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage( 
  746.             /* [in] */ HWND hWnd,
  747.             /* [in] */ UINT Msg,
  748.             /* [in] */ WPARAM wParam,
  749.             /* [in] */ LPARAM lParam) = 0;
  750.         
  751.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction( 
  752.             /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  753.             /* [in] */ WPARAM wParam,
  754.             /* [in] */ LPARAM lParam) = 0;
  755.         
  756.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface( 
  757.             /* [in] */ ISpNotifyCallback *pSpCallback,
  758.             /* [in] */ WPARAM wParam,
  759.             /* [in] */ LPARAM lParam) = 0;
  760.         
  761.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetNotifyWin32Event( void) = 0;
  762.         
  763.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE WaitForNotifyEvent( 
  764.             /* [in] */ DWORD dwMilliseconds) = 0;
  765.         
  766.         virtual /* [local] */ HANDLE STDMETHODCALLTYPE GetNotifyEventHandle( void) = 0;
  767.         
  768.     };
  769.     
  770. #else  /* C style interface */
  771.     typedef struct ISpNotifySourceVtbl
  772.     {
  773.         BEGIN_INTERFACE
  774.         
  775.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  776.             ISpNotifySource * This,
  777.             /* [in] */ REFIID riid,
  778.             /* [iid_is][out] */ void **ppvObject);
  779.         
  780.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  781.             ISpNotifySource * This);
  782.         
  783.         ULONG ( STDMETHODCALLTYPE *Release )( 
  784.             ISpNotifySource * This);
  785.         
  786.         HRESULT ( STDMETHODCALLTYPE *SetNotifySink )( 
  787.             ISpNotifySource * This,
  788.             /* [in] */ ISpNotifySink *pNotifySink);
  789.         
  790.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWindowMessage )( 
  791.             ISpNotifySource * This,
  792.             /* [in] */ HWND hWnd,
  793.             /* [in] */ UINT Msg,
  794.             /* [in] */ WPARAM wParam,
  795.             /* [in] */ LPARAM lParam);
  796.         
  797.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackFunction )( 
  798.             ISpNotifySource * This,
  799.             /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  800.             /* [in] */ WPARAM wParam,
  801.             /* [in] */ LPARAM lParam);
  802.         
  803.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyCallbackInterface )( 
  804.             ISpNotifySource * This,
  805.             /* [in] */ ISpNotifyCallback *pSpCallback,
  806.             /* [in] */ WPARAM wParam,
  807.             /* [in] */ LPARAM lParam);
  808.         
  809.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetNotifyWin32Event )( 
  810.             ISpNotifySource * This);
  811.         
  812.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *WaitForNotifyEvent )( 
  813.             ISpNotifySource * This,
  814.             /* [in] */ DWORD dwMilliseconds);
  815.         
  816.         /* [local] */ HANDLE ( STDMETHODCALLTYPE *GetNotifyEventHandle )( 
  817.             ISpNotifySource * This);
  818.         
  819.         END_INTERFACE
  820.     } ISpNotifySourceVtbl;
  821.     interface ISpNotifySource
  822.     {
  823.         CONST_VTBL struct ISpNotifySourceVtbl *lpVtbl;
  824.     };
  825.     
  826. #ifdef COBJMACROS
  827. #define ISpNotifySource_QueryInterface(This,riid,ppvObject)
  828.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  829. #define ISpNotifySource_AddRef(This)
  830.     (This)->lpVtbl -> AddRef(This)
  831. #define ISpNotifySource_Release(This)
  832.     (This)->lpVtbl -> Release(This)
  833. #define ISpNotifySource_SetNotifySink(This,pNotifySink)
  834.     (This)->lpVtbl -> SetNotifySink(This,pNotifySink)
  835. #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
  836.     (This)->lpVtbl -> SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
  837. #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
  838.     (This)->lpVtbl -> SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
  839. #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
  840.     (This)->lpVtbl -> SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
  841. #define ISpNotifySource_SetNotifyWin32Event(This)
  842.     (This)->lpVtbl -> SetNotifyWin32Event(This)
  843. #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds)
  844.     (This)->lpVtbl -> WaitForNotifyEvent(This,dwMilliseconds)
  845. #define ISpNotifySource_GetNotifyEventHandle(This)
  846.     (This)->lpVtbl -> GetNotifyEventHandle(This)
  847. #endif /* COBJMACROS */
  848. #endif  /* C style interface */
  849. HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifySink_Proxy( 
  850.     ISpNotifySource * This,
  851.     /* [in] */ ISpNotifySink *pNotifySink);
  852. void __RPC_STUB ISpNotifySource_SetNotifySink_Stub(
  853.     IRpcStubBuffer *This,
  854.     IRpcChannelBuffer *_pRpcChannelBuffer,
  855.     PRPC_MESSAGE _pRpcMessage,
  856.     DWORD *_pdwStubPhase);
  857. /* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyWindowMessage_Proxy( 
  858.     ISpNotifySource * This,
  859.     /* [in] */ HWND hWnd,
  860.     /* [in] */ UINT Msg,
  861.     /* [in] */ WPARAM wParam,
  862.     /* [in] */ LPARAM lParam);
  863. void __RPC_STUB ISpNotifySource_SetNotifyWindowMessage_Stub(
  864.     IRpcStubBuffer *This,
  865.     IRpcChannelBuffer *_pRpcChannelBuffer,
  866.     PRPC_MESSAGE _pRpcMessage,
  867.     DWORD *_pdwStubPhase);
  868. /* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyCallbackFunction_Proxy( 
  869.     ISpNotifySource * This,
  870.     /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  871.     /* [in] */ WPARAM wParam,
  872.     /* [in] */ LPARAM lParam);
  873. void __RPC_STUB ISpNotifySource_SetNotifyCallbackFunction_Stub(
  874.     IRpcStubBuffer *This,
  875.     IRpcChannelBuffer *_pRpcChannelBuffer,
  876.     PRPC_MESSAGE _pRpcMessage,
  877.     DWORD *_pdwStubPhase);
  878. /* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyCallbackInterface_Proxy( 
  879.     ISpNotifySource * This,
  880.     /* [in] */ ISpNotifyCallback *pSpCallback,
  881.     /* [in] */ WPARAM wParam,
  882.     /* [in] */ LPARAM lParam);
  883. void __RPC_STUB ISpNotifySource_SetNotifyCallbackInterface_Stub(
  884.     IRpcStubBuffer *This,
  885.     IRpcChannelBuffer *_pRpcChannelBuffer,
  886.     PRPC_MESSAGE _pRpcMessage,
  887.     DWORD *_pdwStubPhase);
  888. /* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_SetNotifyWin32Event_Proxy( 
  889.     ISpNotifySource * This);
  890. void __RPC_STUB ISpNotifySource_SetNotifyWin32Event_Stub(
  891.     IRpcStubBuffer *This,
  892.     IRpcChannelBuffer *_pRpcChannelBuffer,
  893.     PRPC_MESSAGE _pRpcMessage,
  894.     DWORD *_pdwStubPhase);
  895. /* [local] */ HRESULT STDMETHODCALLTYPE ISpNotifySource_WaitForNotifyEvent_Proxy( 
  896.     ISpNotifySource * This,
  897.     /* [in] */ DWORD dwMilliseconds);
  898. void __RPC_STUB ISpNotifySource_WaitForNotifyEvent_Stub(
  899.     IRpcStubBuffer *This,
  900.     IRpcChannelBuffer *_pRpcChannelBuffer,
  901.     PRPC_MESSAGE _pRpcMessage,
  902.     DWORD *_pdwStubPhase);
  903. /* [local] */ HANDLE STDMETHODCALLTYPE ISpNotifySource_GetNotifyEventHandle_Proxy( 
  904.     ISpNotifySource * This);
  905. void __RPC_STUB ISpNotifySource_GetNotifyEventHandle_Stub(
  906.     IRpcStubBuffer *This,
  907.     IRpcChannelBuffer *_pRpcChannelBuffer,
  908.     PRPC_MESSAGE _pRpcMessage,
  909.     DWORD *_pdwStubPhase);
  910. #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
  911. #ifndef __ISpNotifySink_INTERFACE_DEFINED__
  912. #define __ISpNotifySink_INTERFACE_DEFINED__
  913. /* interface ISpNotifySink */
  914. /* [restricted][unique][helpstring][uuid][object] */ 
  915. EXTERN_C const IID IID_ISpNotifySink;
  916. #if defined(__cplusplus) && !defined(CINTERFACE)
  917.     
  918.     MIDL_INTERFACE("259684DC-37C3-11D2-9603-00C04F8EE628")
  919.     ISpNotifySink : public IUnknown
  920.     {
  921.     public:
  922.         virtual HRESULT STDMETHODCALLTYPE Notify( void) = 0;
  923.         
  924.     };
  925.     
  926. #else  /* C style interface */
  927.     typedef struct ISpNotifySinkVtbl
  928.     {
  929.         BEGIN_INTERFACE
  930.         
  931.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  932.             ISpNotifySink * This,
  933.             /* [in] */ REFIID riid,
  934.             /* [iid_is][out] */ void **ppvObject);
  935.         
  936.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  937.             ISpNotifySink * This);
  938.         
  939.         ULONG ( STDMETHODCALLTYPE *Release )( 
  940.             ISpNotifySink * This);
  941.         
  942.         HRESULT ( STDMETHODCALLTYPE *Notify )( 
  943.             ISpNotifySink * This);
  944.         
  945.         END_INTERFACE
  946.     } ISpNotifySinkVtbl;
  947.     interface ISpNotifySink
  948.     {
  949.         CONST_VTBL struct ISpNotifySinkVtbl *lpVtbl;
  950.     };
  951.     
  952. #ifdef COBJMACROS
  953. #define ISpNotifySink_QueryInterface(This,riid,ppvObject)
  954.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  955. #define ISpNotifySink_AddRef(This)
  956.     (This)->lpVtbl -> AddRef(This)
  957. #define ISpNotifySink_Release(This)
  958.     (This)->lpVtbl -> Release(This)
  959. #define ISpNotifySink_Notify(This)
  960.     (This)->lpVtbl -> Notify(This)
  961. #endif /* COBJMACROS */
  962. #endif  /* C style interface */
  963. HRESULT STDMETHODCALLTYPE ISpNotifySink_Notify_Proxy( 
  964.     ISpNotifySink * This);
  965. void __RPC_STUB ISpNotifySink_Notify_Stub(
  966.     IRpcStubBuffer *This,
  967.     IRpcChannelBuffer *_pRpcChannelBuffer,
  968.     PRPC_MESSAGE _pRpcMessage,
  969.     DWORD *_pdwStubPhase);
  970. #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
  971. #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
  972. #define __ISpNotifyTranslator_INTERFACE_DEFINED__
  973. /* interface ISpNotifyTranslator */
  974. /* [restricted][local][unique][helpstring][uuid][object] */ 
  975. EXTERN_C const IID IID_ISpNotifyTranslator;
  976. #if defined(__cplusplus) && !defined(CINTERFACE)
  977.     
  978.     MIDL_INTERFACE("ACA16614-5D3D-11D2-960E-00C04F8EE628")
  979.     ISpNotifyTranslator : public ISpNotifySink
  980.     {
  981.     public:
  982.         virtual HRESULT STDMETHODCALLTYPE InitWindowMessage( 
  983.             /* [in] */ HWND hWnd,
  984.             /* [in] */ UINT Msg,
  985.             /* [in] */ WPARAM wParam,
  986.             /* [in] */ LPARAM lParam) = 0;
  987.         
  988.         virtual HRESULT STDMETHODCALLTYPE InitCallback( 
  989.             /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  990.             /* [in] */ WPARAM wParam,
  991.             /* [in] */ LPARAM lParam) = 0;
  992.         
  993.         virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback( 
  994.             /* [in] */ ISpNotifyCallback *pSpCallback,
  995.             /* [in] */ WPARAM wParam,
  996.             /* [in] */ LPARAM lParam) = 0;
  997.         
  998.         virtual HRESULT STDMETHODCALLTYPE InitWin32Event( 
  999.             HANDLE hEvent,
  1000.             BOOL fCloseHandleOnRelease) = 0;
  1001.         
  1002.         virtual HRESULT STDMETHODCALLTYPE Wait( 
  1003.             /* [in] */ DWORD dwMilliseconds) = 0;
  1004.         
  1005.         virtual HANDLE STDMETHODCALLTYPE GetEventHandle( void) = 0;
  1006.         
  1007.     };
  1008.     
  1009. #else  /* C style interface */
  1010.     typedef struct ISpNotifyTranslatorVtbl
  1011.     {
  1012.         BEGIN_INTERFACE
  1013.         
  1014.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1015.             ISpNotifyTranslator * This,
  1016.             /* [in] */ REFIID riid,
  1017.             /* [iid_is][out] */ void **ppvObject);
  1018.         
  1019.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1020.             ISpNotifyTranslator * This);
  1021.         
  1022.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1023.             ISpNotifyTranslator * This);
  1024.         
  1025.         HRESULT ( STDMETHODCALLTYPE *Notify )( 
  1026.             ISpNotifyTranslator * This);
  1027.         
  1028.         HRESULT ( STDMETHODCALLTYPE *InitWindowMessage )( 
  1029.             ISpNotifyTranslator * This,
  1030.             /* [in] */ HWND hWnd,
  1031.             /* [in] */ UINT Msg,
  1032.             /* [in] */ WPARAM wParam,
  1033.             /* [in] */ LPARAM lParam);
  1034.         
  1035.         HRESULT ( STDMETHODCALLTYPE *InitCallback )( 
  1036.             ISpNotifyTranslator * This,
  1037.             /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  1038.             /* [in] */ WPARAM wParam,
  1039.             /* [in] */ LPARAM lParam);
  1040.         
  1041.         HRESULT ( STDMETHODCALLTYPE *InitSpNotifyCallback )( 
  1042.             ISpNotifyTranslator * This,
  1043.             /* [in] */ ISpNotifyCallback *pSpCallback,
  1044.             /* [in] */ WPARAM wParam,
  1045.             /* [in] */ LPARAM lParam);
  1046.         
  1047.         HRESULT ( STDMETHODCALLTYPE *InitWin32Event )( 
  1048.             ISpNotifyTranslator * This,
  1049.             HANDLE hEvent,
  1050.             BOOL fCloseHandleOnRelease);
  1051.         
  1052.         HRESULT ( STDMETHODCALLTYPE *Wait )( 
  1053.             ISpNotifyTranslator * This,
  1054.             /* [in] */ DWORD dwMilliseconds);
  1055.         
  1056.         HANDLE ( STDMETHODCALLTYPE *GetEventHandle )( 
  1057.             ISpNotifyTranslator * This);
  1058.         
  1059.         END_INTERFACE
  1060.     } ISpNotifyTranslatorVtbl;
  1061.     interface ISpNotifyTranslator
  1062.     {
  1063.         CONST_VTBL struct ISpNotifyTranslatorVtbl *lpVtbl;
  1064.     };
  1065.     
  1066. #ifdef COBJMACROS
  1067. #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject)
  1068.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1069. #define ISpNotifyTranslator_AddRef(This)
  1070.     (This)->lpVtbl -> AddRef(This)
  1071. #define ISpNotifyTranslator_Release(This)
  1072.     (This)->lpVtbl -> Release(This)
  1073. #define ISpNotifyTranslator_Notify(This)
  1074.     (This)->lpVtbl -> Notify(This)
  1075. #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam)
  1076.     (This)->lpVtbl -> InitWindowMessage(This,hWnd,Msg,wParam,lParam)
  1077. #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam)
  1078.     (This)->lpVtbl -> InitCallback(This,pfnCallback,wParam,lParam)
  1079. #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
  1080.     (This)->lpVtbl -> InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
  1081. #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease)
  1082.     (This)->lpVtbl -> InitWin32Event(This,hEvent,fCloseHandleOnRelease)
  1083. #define ISpNotifyTranslator_Wait(This,dwMilliseconds)
  1084.     (This)->lpVtbl -> Wait(This,dwMilliseconds)
  1085. #define ISpNotifyTranslator_GetEventHandle(This)
  1086.     (This)->lpVtbl -> GetEventHandle(This)
  1087. #endif /* COBJMACROS */
  1088. #endif  /* C style interface */
  1089. HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWindowMessage_Proxy( 
  1090.     ISpNotifyTranslator * This,
  1091.     /* [in] */ HWND hWnd,
  1092.     /* [in] */ UINT Msg,
  1093.     /* [in] */ WPARAM wParam,
  1094.     /* [in] */ LPARAM lParam);
  1095. void __RPC_STUB ISpNotifyTranslator_InitWindowMessage_Stub(
  1096.     IRpcStubBuffer *This,
  1097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1098.     PRPC_MESSAGE _pRpcMessage,
  1099.     DWORD *_pdwStubPhase);
  1100. HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitCallback_Proxy( 
  1101.     ISpNotifyTranslator * This,
  1102.     /* [in] */ SPNOTIFYCALLBACK *pfnCallback,
  1103.     /* [in] */ WPARAM wParam,
  1104.     /* [in] */ LPARAM lParam);
  1105. void __RPC_STUB ISpNotifyTranslator_InitCallback_Stub(
  1106.     IRpcStubBuffer *This,
  1107.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1108.     PRPC_MESSAGE _pRpcMessage,
  1109.     DWORD *_pdwStubPhase);
  1110. HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitSpNotifyCallback_Proxy( 
  1111.     ISpNotifyTranslator * This,
  1112.     /* [in] */ ISpNotifyCallback *pSpCallback,
  1113.     /* [in] */ WPARAM wParam,
  1114.     /* [in] */ LPARAM lParam);
  1115. void __RPC_STUB ISpNotifyTranslator_InitSpNotifyCallback_Stub(
  1116.     IRpcStubBuffer *This,
  1117.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1118.     PRPC_MESSAGE _pRpcMessage,
  1119.     DWORD *_pdwStubPhase);
  1120. HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_InitWin32Event_Proxy( 
  1121.     ISpNotifyTranslator * This,
  1122.     HANDLE hEvent,
  1123.     BOOL fCloseHandleOnRelease);
  1124. void __RPC_STUB ISpNotifyTranslator_InitWin32Event_Stub(
  1125.     IRpcStubBuffer *This,
  1126.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1127.     PRPC_MESSAGE _pRpcMessage,
  1128.     DWORD *_pdwStubPhase);
  1129. HRESULT STDMETHODCALLTYPE ISpNotifyTranslator_Wait_Proxy( 
  1130.     ISpNotifyTranslator * This,
  1131.     /* [in] */ DWORD dwMilliseconds);
  1132. void __RPC_STUB ISpNotifyTranslator_Wait_Stub(
  1133.     IRpcStubBuffer *This,
  1134.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1135.     PRPC_MESSAGE _pRpcMessage,
  1136.     DWORD *_pdwStubPhase);
  1137. HANDLE STDMETHODCALLTYPE ISpNotifyTranslator_GetEventHandle_Proxy( 
  1138.     ISpNotifyTranslator * This);
  1139. void __RPC_STUB ISpNotifyTranslator_GetEventHandle_Stub(
  1140.     IRpcStubBuffer *This,
  1141.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1142.     PRPC_MESSAGE _pRpcMessage,
  1143.     DWORD *_pdwStubPhase);
  1144. #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
  1145. #ifndef __ISpDataKey_INTERFACE_DEFINED__
  1146. #define __ISpDataKey_INTERFACE_DEFINED__
  1147. /* interface ISpDataKey */
  1148. /* [restricted][unique][helpstring][uuid][object] */ 
  1149. EXTERN_C const IID IID_ISpDataKey;
  1150. #if defined(__cplusplus) && !defined(CINTERFACE)
  1151.     
  1152.     MIDL_INTERFACE("14056581-E16C-11D2-BB90-00C04F8EE6C0")
  1153.     ISpDataKey : public IUnknown
  1154.     {
  1155.     public:
  1156.         virtual HRESULT STDMETHODCALLTYPE SetData( 
  1157.             const WCHAR *pszValueName,
  1158.             ULONG cbData,
  1159.             const BYTE *pData) = 0;
  1160.         
  1161.         virtual HRESULT STDMETHODCALLTYPE GetData( 
  1162.             const WCHAR *pszValueName,
  1163.             ULONG *pcbData,
  1164.             BYTE *pData) = 0;
  1165.         
  1166.         virtual HRESULT STDMETHODCALLTYPE SetStringValue( 
  1167.             const WCHAR *pszValueName,
  1168.             const WCHAR *pszValue) = 0;
  1169.         
  1170.         virtual HRESULT STDMETHODCALLTYPE GetStringValue( 
  1171.             const WCHAR *pszValueName,
  1172.             WCHAR **ppszValue) = 0;
  1173.         
  1174.         virtual HRESULT STDMETHODCALLTYPE SetDWORD( 
  1175.             const WCHAR *pszValueName,
  1176.             DWORD dwValue) = 0;
  1177.         
  1178.         virtual HRESULT STDMETHODCALLTYPE GetDWORD( 
  1179.             const WCHAR *pszValueName,
  1180.             DWORD *pdwValue) = 0;
  1181.         
  1182.         virtual HRESULT STDMETHODCALLTYPE OpenKey( 
  1183.             const WCHAR *pszSubKeyName,
  1184.             ISpDataKey **ppSubKey) = 0;
  1185.         
  1186.         virtual HRESULT STDMETHODCALLTYPE CreateKey( 
  1187.             const WCHAR *pszSubKey,
  1188.             ISpDataKey **ppSubKey) = 0;
  1189.         
  1190.         virtual HRESULT STDMETHODCALLTYPE DeleteKey( 
  1191.             const WCHAR *pszSubKey) = 0;
  1192.         
  1193.         virtual HRESULT STDMETHODCALLTYPE DeleteValue( 
  1194.             const WCHAR *pszValueName) = 0;
  1195.         
  1196.         virtual HRESULT STDMETHODCALLTYPE EnumKeys( 
  1197.             ULONG Index,
  1198.             WCHAR **ppszSubKeyName) = 0;
  1199.         
  1200.         virtual HRESULT STDMETHODCALLTYPE EnumValues( 
  1201.             ULONG Index,
  1202.             WCHAR **ppszValueName) = 0;
  1203.         
  1204.     };
  1205.     
  1206. #else  /* C style interface */
  1207.     typedef struct ISpDataKeyVtbl
  1208.     {
  1209.         BEGIN_INTERFACE
  1210.         
  1211.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1212.             ISpDataKey * This,
  1213.             /* [in] */ REFIID riid,
  1214.             /* [iid_is][out] */ void **ppvObject);
  1215.         
  1216.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1217.             ISpDataKey * This);
  1218.         
  1219.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1220.             ISpDataKey * This);
  1221.         
  1222.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1223.             ISpDataKey * This,
  1224.             const WCHAR *pszValueName,
  1225.             ULONG cbData,
  1226.             const BYTE *pData);
  1227.         
  1228.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1229.             ISpDataKey * This,
  1230.             const WCHAR *pszValueName,
  1231.             ULONG *pcbData,
  1232.             BYTE *pData);
  1233.         
  1234.         HRESULT ( STDMETHODCALLTYPE *SetStringValue )( 
  1235.             ISpDataKey * This,
  1236.             const WCHAR *pszValueName,
  1237.             const WCHAR *pszValue);
  1238.         
  1239.         HRESULT ( STDMETHODCALLTYPE *GetStringValue )( 
  1240.             ISpDataKey * This,
  1241.             const WCHAR *pszValueName,
  1242.             WCHAR **ppszValue);
  1243.         
  1244.         HRESULT ( STDMETHODCALLTYPE *SetDWORD )( 
  1245.             ISpDataKey * This,
  1246.             const WCHAR *pszValueName,
  1247.             DWORD dwValue);
  1248.         
  1249.         HRESULT ( STDMETHODCALLTYPE *GetDWORD )( 
  1250.             ISpDataKey * This,
  1251.             const WCHAR *pszValueName,
  1252.             DWORD *pdwValue);
  1253.         
  1254.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  1255.             ISpDataKey * This,
  1256.             const WCHAR *pszSubKeyName,
  1257.             ISpDataKey **ppSubKey);
  1258.         
  1259.         HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
  1260.             ISpDataKey * This,
  1261.             const WCHAR *pszSubKey,
  1262.             ISpDataKey **ppSubKey);
  1263.         
  1264.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  1265.             ISpDataKey * This,
  1266.             const WCHAR *pszSubKey);
  1267.         
  1268.         HRESULT ( STDMETHODCALLTYPE *DeleteValue )( 
  1269.             ISpDataKey * This,
  1270.             const WCHAR *pszValueName);
  1271.         
  1272.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  1273.             ISpDataKey * This,
  1274.             ULONG Index,
  1275.             WCHAR **ppszSubKeyName);
  1276.         
  1277.         HRESULT ( STDMETHODCALLTYPE *EnumValues )( 
  1278.             ISpDataKey * This,
  1279.             ULONG Index,
  1280.             WCHAR **ppszValueName);
  1281.         
  1282.         END_INTERFACE
  1283.     } ISpDataKeyVtbl;
  1284.     interface ISpDataKey
  1285.     {
  1286.         CONST_VTBL struct ISpDataKeyVtbl *lpVtbl;
  1287.     };
  1288.     
  1289. #ifdef COBJMACROS
  1290. #define ISpDataKey_QueryInterface(This,riid,ppvObject)
  1291.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1292. #define ISpDataKey_AddRef(This)
  1293.     (This)->lpVtbl -> AddRef(This)
  1294. #define ISpDataKey_Release(This)
  1295.     (This)->lpVtbl -> Release(This)
  1296. #define ISpDataKey_SetData(This,pszValueName,cbData,pData)
  1297.     (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
  1298. #define ISpDataKey_GetData(This,pszValueName,pcbData,pData)
  1299.     (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
  1300. #define ISpDataKey_SetStringValue(This,pszValueName,pszValue)
  1301.     (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
  1302. #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue)
  1303.     (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
  1304. #define ISpDataKey_SetDWORD(This,pszValueName,dwValue)
  1305.     (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
  1306. #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue)
  1307.     (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
  1308. #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey)
  1309.     (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
  1310. #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey)
  1311.     (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
  1312. #define ISpDataKey_DeleteKey(This,pszSubKey)
  1313.     (This)->lpVtbl -> DeleteKey(This,pszSubKey)
  1314. #define ISpDataKey_DeleteValue(This,pszValueName)
  1315.     (This)->lpVtbl -> DeleteValue(This,pszValueName)
  1316. #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName)
  1317.     (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
  1318. #define ISpDataKey_EnumValues(This,Index,ppszValueName)
  1319.     (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
  1320. #endif /* COBJMACROS */
  1321. #endif  /* C style interface */
  1322. HRESULT STDMETHODCALLTYPE ISpDataKey_SetData_Proxy( 
  1323.     ISpDataKey * This,
  1324.     const WCHAR *pszValueName,
  1325.     ULONG cbData,
  1326.     const BYTE *pData);
  1327. void __RPC_STUB ISpDataKey_SetData_Stub(
  1328.     IRpcStubBuffer *This,
  1329.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1330.     PRPC_MESSAGE _pRpcMessage,
  1331.     DWORD *_pdwStubPhase);
  1332. HRESULT STDMETHODCALLTYPE ISpDataKey_GetData_Proxy( 
  1333.     ISpDataKey * This,
  1334.     const WCHAR *pszValueName,
  1335.     ULONG *pcbData,
  1336.     BYTE *pData);
  1337. void __RPC_STUB ISpDataKey_GetData_Stub(
  1338.     IRpcStubBuffer *This,
  1339.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1340.     PRPC_MESSAGE _pRpcMessage,
  1341.     DWORD *_pdwStubPhase);
  1342. HRESULT STDMETHODCALLTYPE ISpDataKey_SetStringValue_Proxy( 
  1343.     ISpDataKey * This,
  1344.     const WCHAR *pszValueName,
  1345.     const WCHAR *pszValue);
  1346. void __RPC_STUB ISpDataKey_SetStringValue_Stub(
  1347.     IRpcStubBuffer *This,
  1348.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1349.     PRPC_MESSAGE _pRpcMessage,
  1350.     DWORD *_pdwStubPhase);
  1351. HRESULT STDMETHODCALLTYPE ISpDataKey_GetStringValue_Proxy( 
  1352.     ISpDataKey * This,
  1353.     const WCHAR *pszValueName,
  1354.     WCHAR **ppszValue);
  1355. void __RPC_STUB ISpDataKey_GetStringValue_Stub(
  1356.     IRpcStubBuffer *This,
  1357.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1358.     PRPC_MESSAGE _pRpcMessage,
  1359.     DWORD *_pdwStubPhase);
  1360. HRESULT STDMETHODCALLTYPE ISpDataKey_SetDWORD_Proxy( 
  1361.     ISpDataKey * This,
  1362.     const WCHAR *pszValueName,
  1363.     DWORD dwValue);
  1364. void __RPC_STUB ISpDataKey_SetDWORD_Stub(
  1365.     IRpcStubBuffer *This,
  1366.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1367.     PRPC_MESSAGE _pRpcMessage,
  1368.     DWORD *_pdwStubPhase);
  1369. HRESULT STDMETHODCALLTYPE ISpDataKey_GetDWORD_Proxy( 
  1370.     ISpDataKey * This,
  1371.     const WCHAR *pszValueName,
  1372.     DWORD *pdwValue);
  1373. void __RPC_STUB ISpDataKey_GetDWORD_Stub(
  1374.     IRpcStubBuffer *This,
  1375.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1376.     PRPC_MESSAGE _pRpcMessage,
  1377.     DWORD *_pdwStubPhase);
  1378. HRESULT STDMETHODCALLTYPE ISpDataKey_OpenKey_Proxy( 
  1379.     ISpDataKey * This,
  1380.     const WCHAR *pszSubKeyName,
  1381.     ISpDataKey **ppSubKey);
  1382. void __RPC_STUB ISpDataKey_OpenKey_Stub(
  1383.     IRpcStubBuffer *This,
  1384.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1385.     PRPC_MESSAGE _pRpcMessage,
  1386.     DWORD *_pdwStubPhase);
  1387. HRESULT STDMETHODCALLTYPE ISpDataKey_CreateKey_Proxy( 
  1388.     ISpDataKey * This,
  1389.     const WCHAR *pszSubKey,
  1390.     ISpDataKey **ppSubKey);
  1391. void __RPC_STUB ISpDataKey_CreateKey_Stub(
  1392.     IRpcStubBuffer *This,
  1393.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1394.     PRPC_MESSAGE _pRpcMessage,
  1395.     DWORD *_pdwStubPhase);
  1396. HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteKey_Proxy( 
  1397.     ISpDataKey * This,
  1398.     const WCHAR *pszSubKey);
  1399. void __RPC_STUB ISpDataKey_DeleteKey_Stub(
  1400.     IRpcStubBuffer *This,
  1401.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1402.     PRPC_MESSAGE _pRpcMessage,
  1403.     DWORD *_pdwStubPhase);
  1404. HRESULT STDMETHODCALLTYPE ISpDataKey_DeleteValue_Proxy( 
  1405.     ISpDataKey * This,
  1406.     const WCHAR *pszValueName);
  1407. void __RPC_STUB ISpDataKey_DeleteValue_Stub(
  1408.     IRpcStubBuffer *This,
  1409.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1410.     PRPC_MESSAGE _pRpcMessage,
  1411.     DWORD *_pdwStubPhase);
  1412. HRESULT STDMETHODCALLTYPE ISpDataKey_EnumKeys_Proxy( 
  1413.     ISpDataKey * This,
  1414.     ULONG Index,
  1415.     WCHAR **ppszSubKeyName);
  1416. void __RPC_STUB ISpDataKey_EnumKeys_Stub(
  1417.     IRpcStubBuffer *This,
  1418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1419.     PRPC_MESSAGE _pRpcMessage,
  1420.     DWORD *_pdwStubPhase);
  1421. HRESULT STDMETHODCALLTYPE ISpDataKey_EnumValues_Proxy( 
  1422.     ISpDataKey * This,
  1423.     ULONG Index,
  1424.     WCHAR **ppszValueName);
  1425. void __RPC_STUB ISpDataKey_EnumValues_Stub(
  1426.     IRpcStubBuffer *This,
  1427.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1428.     PRPC_MESSAGE _pRpcMessage,
  1429.     DWORD *_pdwStubPhase);
  1430. #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
  1431. #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
  1432. #define __ISpRegDataKey_INTERFACE_DEFINED__
  1433. /* interface ISpRegDataKey */
  1434. /* [restricted][unique][helpstring][uuid][object] */ 
  1435. EXTERN_C const IID IID_ISpRegDataKey;
  1436. #if defined(__cplusplus) && !defined(CINTERFACE)
  1437.     
  1438.     MIDL_INTERFACE("92A66E2B-C830-4149-83DF-6FC2BA1E7A5B")
  1439.     ISpRegDataKey : public ISpDataKey
  1440.     {
  1441.     public:
  1442.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetKey( 
  1443.             /* [in] */ HKEY hkey,
  1444.             /* [in] */ BOOL fReadOnly) = 0;
  1445.         
  1446.     };
  1447.     
  1448. #else  /* C style interface */
  1449.     typedef struct ISpRegDataKeyVtbl
  1450.     {
  1451.         BEGIN_INTERFACE
  1452.         
  1453.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1454.             ISpRegDataKey * This,
  1455.             /* [in] */ REFIID riid,
  1456.             /* [iid_is][out] */ void **ppvObject);
  1457.         
  1458.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1459.             ISpRegDataKey * This);
  1460.         
  1461.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1462.             ISpRegDataKey * This);
  1463.         
  1464.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1465.             ISpRegDataKey * This,
  1466.             const WCHAR *pszValueName,
  1467.             ULONG cbData,
  1468.             const BYTE *pData);
  1469.         
  1470.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1471.             ISpRegDataKey * This,
  1472.             const WCHAR *pszValueName,
  1473.             ULONG *pcbData,
  1474.             BYTE *pData);
  1475.         
  1476.         HRESULT ( STDMETHODCALLTYPE *SetStringValue )( 
  1477.             ISpRegDataKey * This,
  1478.             const WCHAR *pszValueName,
  1479.             const WCHAR *pszValue);
  1480.         
  1481.         HRESULT ( STDMETHODCALLTYPE *GetStringValue )( 
  1482.             ISpRegDataKey * This,
  1483.             const WCHAR *pszValueName,
  1484.             WCHAR **ppszValue);
  1485.         
  1486.         HRESULT ( STDMETHODCALLTYPE *SetDWORD )( 
  1487.             ISpRegDataKey * This,
  1488.             const WCHAR *pszValueName,
  1489.             DWORD dwValue);
  1490.         
  1491.         HRESULT ( STDMETHODCALLTYPE *GetDWORD )( 
  1492.             ISpRegDataKey * This,
  1493.             const WCHAR *pszValueName,
  1494.             DWORD *pdwValue);
  1495.         
  1496.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  1497.             ISpRegDataKey * This,
  1498.             const WCHAR *pszSubKeyName,
  1499.             ISpDataKey **ppSubKey);
  1500.         
  1501.         HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
  1502.             ISpRegDataKey * This,
  1503.             const WCHAR *pszSubKey,
  1504.             ISpDataKey **ppSubKey);
  1505.         
  1506.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  1507.             ISpRegDataKey * This,
  1508.             const WCHAR *pszSubKey);
  1509.         
  1510.         HRESULT ( STDMETHODCALLTYPE *DeleteValue )( 
  1511.             ISpRegDataKey * This,
  1512.             const WCHAR *pszValueName);
  1513.         
  1514.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  1515.             ISpRegDataKey * This,
  1516.             ULONG Index,
  1517.             WCHAR **ppszSubKeyName);
  1518.         
  1519.         HRESULT ( STDMETHODCALLTYPE *EnumValues )( 
  1520.             ISpRegDataKey * This,
  1521.             ULONG Index,
  1522.             WCHAR **ppszValueName);
  1523.         
  1524.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetKey )( 
  1525.             ISpRegDataKey * This,
  1526.             /* [in] */ HKEY hkey,
  1527.             /* [in] */ BOOL fReadOnly);
  1528.         
  1529.         END_INTERFACE
  1530.     } ISpRegDataKeyVtbl;
  1531.     interface ISpRegDataKey
  1532.     {
  1533.         CONST_VTBL struct ISpRegDataKeyVtbl *lpVtbl;
  1534.     };
  1535.     
  1536. #ifdef COBJMACROS
  1537. #define ISpRegDataKey_QueryInterface(This,riid,ppvObject)
  1538.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1539. #define ISpRegDataKey_AddRef(This)
  1540.     (This)->lpVtbl -> AddRef(This)
  1541. #define ISpRegDataKey_Release(This)
  1542.     (This)->lpVtbl -> Release(This)
  1543. #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData)
  1544.     (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
  1545. #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData)
  1546.     (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
  1547. #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue)
  1548.     (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
  1549. #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue)
  1550.     (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
  1551. #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue)
  1552.     (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
  1553. #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue)
  1554.     (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
  1555. #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey)
  1556.     (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
  1557. #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey)
  1558.     (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
  1559. #define ISpRegDataKey_DeleteKey(This,pszSubKey)
  1560.     (This)->lpVtbl -> DeleteKey(This,pszSubKey)
  1561. #define ISpRegDataKey_DeleteValue(This,pszValueName)
  1562.     (This)->lpVtbl -> DeleteValue(This,pszValueName)
  1563. #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName)
  1564.     (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
  1565. #define ISpRegDataKey_EnumValues(This,Index,ppszValueName)
  1566.     (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
  1567. #define ISpRegDataKey_SetKey(This,hkey,fReadOnly)
  1568.     (This)->lpVtbl -> SetKey(This,hkey,fReadOnly)
  1569. #endif /* COBJMACROS */
  1570. #endif  /* C style interface */
  1571. /* [local] */ HRESULT STDMETHODCALLTYPE ISpRegDataKey_SetKey_Proxy( 
  1572.     ISpRegDataKey * This,
  1573.     /* [in] */ HKEY hkey,
  1574.     /* [in] */ BOOL fReadOnly);
  1575. void __RPC_STUB ISpRegDataKey_SetKey_Stub(
  1576.     IRpcStubBuffer *This,
  1577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1578.     PRPC_MESSAGE _pRpcMessage,
  1579.     DWORD *_pdwStubPhase);
  1580. #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
  1581. #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
  1582. #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
  1583. /* interface ISpObjectTokenCategory */
  1584. /* [restricted][unique][helpstring][uuid][object] */ 
  1585. EXTERN_C const IID IID_ISpObjectTokenCategory;
  1586. #if defined(__cplusplus) && !defined(CINTERFACE)
  1587.     
  1588.     MIDL_INTERFACE("2D3D3845-39AF-4850-BBF9-40B49780011D")
  1589.     ISpObjectTokenCategory : public ISpDataKey
  1590.     {
  1591.     public:
  1592.         virtual HRESULT STDMETHODCALLTYPE SetId( 
  1593.             /* [in] */ const WCHAR *pszCategoryId,
  1594.             BOOL fCreateIfNotExist) = 0;
  1595.         
  1596.         virtual HRESULT STDMETHODCALLTYPE GetId( 
  1597.             /* [out] */ WCHAR **ppszCoMemCategoryId) = 0;
  1598.         
  1599.         virtual HRESULT STDMETHODCALLTYPE GetDataKey( 
  1600.             SPDATAKEYLOCATION spdkl,
  1601.             ISpDataKey **ppDataKey) = 0;
  1602.         
  1603.         virtual HRESULT STDMETHODCALLTYPE EnumTokens( 
  1604.             /* [string][in] */ const WCHAR *pzsReqAttribs,
  1605.             /* [string][in] */ const WCHAR *pszOptAttribs,
  1606.             /* [out] */ IEnumSpObjectTokens **ppEnum) = 0;
  1607.         
  1608.         virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId( 
  1609.             /* [in] */ const WCHAR *pszTokenId) = 0;
  1610.         
  1611.         virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId( 
  1612.             /* [out] */ WCHAR **ppszCoMemTokenId) = 0;
  1613.         
  1614.     };
  1615.     
  1616. #else  /* C style interface */
  1617.     typedef struct ISpObjectTokenCategoryVtbl
  1618.     {
  1619.         BEGIN_INTERFACE
  1620.         
  1621.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1622.             ISpObjectTokenCategory * This,
  1623.             /* [in] */ REFIID riid,
  1624.             /* [iid_is][out] */ void **ppvObject);
  1625.         
  1626.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1627.             ISpObjectTokenCategory * This);
  1628.         
  1629.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1630.             ISpObjectTokenCategory * This);
  1631.         
  1632.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1633.             ISpObjectTokenCategory * This,
  1634.             const WCHAR *pszValueName,
  1635.             ULONG cbData,
  1636.             const BYTE *pData);
  1637.         
  1638.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1639.             ISpObjectTokenCategory * This,
  1640.             const WCHAR *pszValueName,
  1641.             ULONG *pcbData,
  1642.             BYTE *pData);
  1643.         
  1644.         HRESULT ( STDMETHODCALLTYPE *SetStringValue )( 
  1645.             ISpObjectTokenCategory * This,
  1646.             const WCHAR *pszValueName,
  1647.             const WCHAR *pszValue);
  1648.         
  1649.         HRESULT ( STDMETHODCALLTYPE *GetStringValue )( 
  1650.             ISpObjectTokenCategory * This,
  1651.             const WCHAR *pszValueName,
  1652.             WCHAR **ppszValue);
  1653.         
  1654.         HRESULT ( STDMETHODCALLTYPE *SetDWORD )( 
  1655.             ISpObjectTokenCategory * This,
  1656.             const WCHAR *pszValueName,
  1657.             DWORD dwValue);
  1658.         
  1659.         HRESULT ( STDMETHODCALLTYPE *GetDWORD )( 
  1660.             ISpObjectTokenCategory * This,
  1661.             const WCHAR *pszValueName,
  1662.             DWORD *pdwValue);
  1663.         
  1664.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  1665.             ISpObjectTokenCategory * This,
  1666.             const WCHAR *pszSubKeyName,
  1667.             ISpDataKey **ppSubKey);
  1668.         
  1669.         HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
  1670.             ISpObjectTokenCategory * This,
  1671.             const WCHAR *pszSubKey,
  1672.             ISpDataKey **ppSubKey);
  1673.         
  1674.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  1675.             ISpObjectTokenCategory * This,
  1676.             const WCHAR *pszSubKey);
  1677.         
  1678.         HRESULT ( STDMETHODCALLTYPE *DeleteValue )( 
  1679.             ISpObjectTokenCategory * This,
  1680.             const WCHAR *pszValueName);
  1681.         
  1682.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  1683.             ISpObjectTokenCategory * This,
  1684.             ULONG Index,
  1685.             WCHAR **ppszSubKeyName);
  1686.         
  1687.         HRESULT ( STDMETHODCALLTYPE *EnumValues )( 
  1688.             ISpObjectTokenCategory * This,
  1689.             ULONG Index,
  1690.             WCHAR **ppszValueName);
  1691.         
  1692.         HRESULT ( STDMETHODCALLTYPE *SetId )( 
  1693.             ISpObjectTokenCategory * This,
  1694.             /* [in] */ const WCHAR *pszCategoryId,
  1695.             BOOL fCreateIfNotExist);
  1696.         
  1697.         HRESULT ( STDMETHODCALLTYPE *GetId )( 
  1698.             ISpObjectTokenCategory * This,
  1699.             /* [out] */ WCHAR **ppszCoMemCategoryId);
  1700.         
  1701.         HRESULT ( STDMETHODCALLTYPE *GetDataKey )( 
  1702.             ISpObjectTokenCategory * This,
  1703.             SPDATAKEYLOCATION spdkl,
  1704.             ISpDataKey **ppDataKey);
  1705.         
  1706.         HRESULT ( STDMETHODCALLTYPE *EnumTokens )( 
  1707.             ISpObjectTokenCategory * This,
  1708.             /* [string][in] */ const WCHAR *pzsReqAttribs,
  1709.             /* [string][in] */ const WCHAR *pszOptAttribs,
  1710.             /* [out] */ IEnumSpObjectTokens **ppEnum);
  1711.         
  1712.         HRESULT ( STDMETHODCALLTYPE *SetDefaultTokenId )( 
  1713.             ISpObjectTokenCategory * This,
  1714.             /* [in] */ const WCHAR *pszTokenId);
  1715.         
  1716.         HRESULT ( STDMETHODCALLTYPE *GetDefaultTokenId )( 
  1717.             ISpObjectTokenCategory * This,
  1718.             /* [out] */ WCHAR **ppszCoMemTokenId);
  1719.         
  1720.         END_INTERFACE
  1721.     } ISpObjectTokenCategoryVtbl;
  1722.     interface ISpObjectTokenCategory
  1723.     {
  1724.         CONST_VTBL struct ISpObjectTokenCategoryVtbl *lpVtbl;
  1725.     };
  1726.     
  1727. #ifdef COBJMACROS
  1728. #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject)
  1729.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1730. #define ISpObjectTokenCategory_AddRef(This)
  1731.     (This)->lpVtbl -> AddRef(This)
  1732. #define ISpObjectTokenCategory_Release(This)
  1733.     (This)->lpVtbl -> Release(This)
  1734. #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData)
  1735.     (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
  1736. #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData)
  1737.     (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
  1738. #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue)
  1739.     (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
  1740. #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue)
  1741.     (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
  1742. #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue)
  1743.     (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
  1744. #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue)
  1745.     (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
  1746. #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey)
  1747.     (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
  1748. #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey)
  1749.     (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
  1750. #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey)
  1751.     (This)->lpVtbl -> DeleteKey(This,pszSubKey)
  1752. #define ISpObjectTokenCategory_DeleteValue(This,pszValueName)
  1753.     (This)->lpVtbl -> DeleteValue(This,pszValueName)
  1754. #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName)
  1755.     (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
  1756. #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName)
  1757.     (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
  1758. #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist)
  1759.     (This)->lpVtbl -> SetId(This,pszCategoryId,fCreateIfNotExist)
  1760. #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId)
  1761.     (This)->lpVtbl -> GetId(This,ppszCoMemCategoryId)
  1762. #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey)
  1763.     (This)->lpVtbl -> GetDataKey(This,spdkl,ppDataKey)
  1764. #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
  1765.     (This)->lpVtbl -> EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
  1766. #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId)
  1767.     (This)->lpVtbl -> SetDefaultTokenId(This,pszTokenId)
  1768. #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId)
  1769.     (This)->lpVtbl -> GetDefaultTokenId(This,ppszCoMemTokenId)
  1770. #endif /* COBJMACROS */
  1771. #endif  /* C style interface */
  1772. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetId_Proxy( 
  1773.     ISpObjectTokenCategory * This,
  1774.     /* [in] */ const WCHAR *pszCategoryId,
  1775.     BOOL fCreateIfNotExist);
  1776. void __RPC_STUB ISpObjectTokenCategory_SetId_Stub(
  1777.     IRpcStubBuffer *This,
  1778.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1779.     PRPC_MESSAGE _pRpcMessage,
  1780.     DWORD *_pdwStubPhase);
  1781. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetId_Proxy( 
  1782.     ISpObjectTokenCategory * This,
  1783.     /* [out] */ WCHAR **ppszCoMemCategoryId);
  1784. void __RPC_STUB ISpObjectTokenCategory_GetId_Stub(
  1785.     IRpcStubBuffer *This,
  1786.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1787.     PRPC_MESSAGE _pRpcMessage,
  1788.     DWORD *_pdwStubPhase);
  1789. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDataKey_Proxy( 
  1790.     ISpObjectTokenCategory * This,
  1791.     SPDATAKEYLOCATION spdkl,
  1792.     ISpDataKey **ppDataKey);
  1793. void __RPC_STUB ISpObjectTokenCategory_GetDataKey_Stub(
  1794.     IRpcStubBuffer *This,
  1795.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1796.     PRPC_MESSAGE _pRpcMessage,
  1797.     DWORD *_pdwStubPhase);
  1798. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_EnumTokens_Proxy( 
  1799.     ISpObjectTokenCategory * This,
  1800.     /* [string][in] */ const WCHAR *pzsReqAttribs,
  1801.     /* [string][in] */ const WCHAR *pszOptAttribs,
  1802.     /* [out] */ IEnumSpObjectTokens **ppEnum);
  1803. void __RPC_STUB ISpObjectTokenCategory_EnumTokens_Stub(
  1804.     IRpcStubBuffer *This,
  1805.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1806.     PRPC_MESSAGE _pRpcMessage,
  1807.     DWORD *_pdwStubPhase);
  1808. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_SetDefaultTokenId_Proxy( 
  1809.     ISpObjectTokenCategory * This,
  1810.     /* [in] */ const WCHAR *pszTokenId);
  1811. void __RPC_STUB ISpObjectTokenCategory_SetDefaultTokenId_Stub(
  1812.     IRpcStubBuffer *This,
  1813.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1814.     PRPC_MESSAGE _pRpcMessage,
  1815.     DWORD *_pdwStubPhase);
  1816. HRESULT STDMETHODCALLTYPE ISpObjectTokenCategory_GetDefaultTokenId_Proxy( 
  1817.     ISpObjectTokenCategory * This,
  1818.     /* [out] */ WCHAR **ppszCoMemTokenId);
  1819. void __RPC_STUB ISpObjectTokenCategory_GetDefaultTokenId_Stub(
  1820.     IRpcStubBuffer *This,
  1821.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1822.     PRPC_MESSAGE _pRpcMessage,
  1823.     DWORD *_pdwStubPhase);
  1824. #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
  1825. #ifndef __ISpObjectToken_INTERFACE_DEFINED__
  1826. #define __ISpObjectToken_INTERFACE_DEFINED__
  1827. /* interface ISpObjectToken */
  1828. /* [restricted][unique][helpstring][uuid][object] */ 
  1829. EXTERN_C const IID IID_ISpObjectToken;
  1830. #if defined(__cplusplus) && !defined(CINTERFACE)
  1831.     
  1832.     MIDL_INTERFACE("14056589-E16C-11D2-BB90-00C04F8EE6C0")
  1833.     ISpObjectToken : public ISpDataKey
  1834.     {
  1835.     public:
  1836.         virtual HRESULT STDMETHODCALLTYPE SetId( 
  1837.             const WCHAR *pszCategoryId,
  1838.             const WCHAR *pszTokenId,
  1839.             BOOL fCreateIfNotExist) = 0;
  1840.         
  1841.         virtual HRESULT STDMETHODCALLTYPE GetId( 
  1842.             WCHAR **ppszCoMemTokenId) = 0;
  1843.         
  1844.         virtual HRESULT STDMETHODCALLTYPE GetCategory( 
  1845.             ISpObjectTokenCategory **ppTokenCategory) = 0;
  1846.         
  1847.         virtual HRESULT STDMETHODCALLTYPE CreateInstance( 
  1848.             /* [in] */ IUnknown *pUnkOuter,
  1849.             /* [in] */ DWORD dwClsContext,
  1850.             /* [in] */ REFIID riid,
  1851.             /* [iid_is][out] */ void **ppvObject) = 0;
  1852.         
  1853.         virtual HRESULT STDMETHODCALLTYPE GetStorageFileName( 
  1854.             /* [in] */ REFCLSID clsidCaller,
  1855.             /* [in] */ const WCHAR *pszValueName,
  1856.             /* [in] */ const WCHAR *pszFileNameSpecifier,
  1857.             /* [in] */ ULONG nFolder,
  1858.             /* [out] */ WCHAR **ppszFilePath) = 0;
  1859.         
  1860.         virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName( 
  1861.             /* [in] */ REFCLSID clsidCaller,
  1862.             /* [in] */ const WCHAR *pszKeyName,
  1863.             /* [in] */ BOOL fDeleteFile) = 0;
  1864.         
  1865.         virtual HRESULT STDMETHODCALLTYPE Remove( 
  1866.             const CLSID *pclsidCaller) = 0;
  1867.         
  1868.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE IsUISupported( 
  1869.             /* [in] */ const WCHAR *pszTypeOfUI,
  1870.             /* [in] */ void *pvExtraData,
  1871.             /* [in] */ ULONG cbExtraData,
  1872.             /* [in] */ IUnknown *punkObject,
  1873.             /* [out] */ BOOL *pfSupported) = 0;
  1874.         
  1875.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE DisplayUI( 
  1876.             /* [in] */ HWND hwndParent,
  1877.             /* [in] */ const WCHAR *pszTitle,
  1878.             /* [in] */ const WCHAR *pszTypeOfUI,
  1879.             /* [in] */ void *pvExtraData,
  1880.             /* [in] */ ULONG cbExtraData,
  1881.             /* [in] */ IUnknown *punkObject) = 0;
  1882.         
  1883.         virtual HRESULT STDMETHODCALLTYPE MatchesAttributes( 
  1884.             /* [in] */ const WCHAR *pszAttributes,
  1885.             /* [out] */ BOOL *pfMatches) = 0;
  1886.         
  1887.     };
  1888.     
  1889. #else  /* C style interface */
  1890.     typedef struct ISpObjectTokenVtbl
  1891.     {
  1892.         BEGIN_INTERFACE
  1893.         
  1894.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1895.             ISpObjectToken * This,
  1896.             /* [in] */ REFIID riid,
  1897.             /* [iid_is][out] */ void **ppvObject);
  1898.         
  1899.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1900.             ISpObjectToken * This);
  1901.         
  1902.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1903.             ISpObjectToken * This);
  1904.         
  1905.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  1906.             ISpObjectToken * This,
  1907.             const WCHAR *pszValueName,
  1908.             ULONG cbData,
  1909.             const BYTE *pData);
  1910.         
  1911.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  1912.             ISpObjectToken * This,
  1913.             const WCHAR *pszValueName,
  1914.             ULONG *pcbData,
  1915.             BYTE *pData);
  1916.         
  1917.         HRESULT ( STDMETHODCALLTYPE *SetStringValue )( 
  1918.             ISpObjectToken * This,
  1919.             const WCHAR *pszValueName,
  1920.             const WCHAR *pszValue);
  1921.         
  1922.         HRESULT ( STDMETHODCALLTYPE *GetStringValue )( 
  1923.             ISpObjectToken * This,
  1924.             const WCHAR *pszValueName,
  1925.             WCHAR **ppszValue);
  1926.         
  1927.         HRESULT ( STDMETHODCALLTYPE *SetDWORD )( 
  1928.             ISpObjectToken * This,
  1929.             const WCHAR *pszValueName,
  1930.             DWORD dwValue);
  1931.         
  1932.         HRESULT ( STDMETHODCALLTYPE *GetDWORD )( 
  1933.             ISpObjectToken * This,
  1934.             const WCHAR *pszValueName,
  1935.             DWORD *pdwValue);
  1936.         
  1937.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  1938.             ISpObjectToken * This,
  1939.             const WCHAR *pszSubKeyName,
  1940.             ISpDataKey **ppSubKey);
  1941.         
  1942.         HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
  1943.             ISpObjectToken * This,
  1944.             const WCHAR *pszSubKey,
  1945.             ISpDataKey **ppSubKey);
  1946.         
  1947.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  1948.             ISpObjectToken * This,
  1949.             const WCHAR *pszSubKey);
  1950.         
  1951.         HRESULT ( STDMETHODCALLTYPE *DeleteValue )( 
  1952.             ISpObjectToken * This,
  1953.             const WCHAR *pszValueName);
  1954.         
  1955.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  1956.             ISpObjectToken * This,
  1957.             ULONG Index,
  1958.             WCHAR **ppszSubKeyName);
  1959.         
  1960.         HRESULT ( STDMETHODCALLTYPE *EnumValues )( 
  1961.             ISpObjectToken * This,
  1962.             ULONG Index,
  1963.             WCHAR **ppszValueName);
  1964.         
  1965.         HRESULT ( STDMETHODCALLTYPE *SetId )( 
  1966.             ISpObjectToken * This,
  1967.             const WCHAR *pszCategoryId,
  1968.             const WCHAR *pszTokenId,
  1969.             BOOL fCreateIfNotExist);
  1970.         
  1971.         HRESULT ( STDMETHODCALLTYPE *GetId )( 
  1972.             ISpObjectToken * This,
  1973.             WCHAR **ppszCoMemTokenId);
  1974.         
  1975.         HRESULT ( STDMETHODCALLTYPE *GetCategory )( 
  1976.             ISpObjectToken * This,
  1977.             ISpObjectTokenCategory **ppTokenCategory);
  1978.         
  1979.         HRESULT ( STDMETHODCALLTYPE *CreateInstance )( 
  1980.             ISpObjectToken * This,
  1981.             /* [in] */ IUnknown *pUnkOuter,
  1982.             /* [in] */ DWORD dwClsContext,
  1983.             /* [in] */ REFIID riid,
  1984.             /* [iid_is][out] */ void **ppvObject);
  1985.         
  1986.         HRESULT ( STDMETHODCALLTYPE *GetStorageFileName )( 
  1987.             ISpObjectToken * This,
  1988.             /* [in] */ REFCLSID clsidCaller,
  1989.             /* [in] */ const WCHAR *pszValueName,
  1990.             /* [in] */ const WCHAR *pszFileNameSpecifier,
  1991.             /* [in] */ ULONG nFolder,
  1992.             /* [out] */ WCHAR **ppszFilePath);
  1993.         
  1994.         HRESULT ( STDMETHODCALLTYPE *RemoveStorageFileName )( 
  1995.             ISpObjectToken * This,
  1996.             /* [in] */ REFCLSID clsidCaller,
  1997.             /* [in] */ const WCHAR *pszKeyName,
  1998.             /* [in] */ BOOL fDeleteFile);
  1999.         
  2000.         HRESULT ( STDMETHODCALLTYPE *Remove )( 
  2001.             ISpObjectToken * This,
  2002.             const CLSID *pclsidCaller);
  2003.         
  2004.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )( 
  2005.             ISpObjectToken * This,
  2006.             /* [in] */ const WCHAR *pszTypeOfUI,
  2007.             /* [in] */ void *pvExtraData,
  2008.             /* [in] */ ULONG cbExtraData,
  2009.             /* [in] */ IUnknown *punkObject,
  2010.             /* [out] */ BOOL *pfSupported);
  2011.         
  2012.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )( 
  2013.             ISpObjectToken * This,
  2014.             /* [in] */ HWND hwndParent,
  2015.             /* [in] */ const WCHAR *pszTitle,
  2016.             /* [in] */ const WCHAR *pszTypeOfUI,
  2017.             /* [in] */ void *pvExtraData,
  2018.             /* [in] */ ULONG cbExtraData,
  2019.             /* [in] */ IUnknown *punkObject);
  2020.         
  2021.         HRESULT ( STDMETHODCALLTYPE *MatchesAttributes )( 
  2022.             ISpObjectToken * This,
  2023.             /* [in] */ const WCHAR *pszAttributes,
  2024.             /* [out] */ BOOL *pfMatches);
  2025.         
  2026.         END_INTERFACE
  2027.     } ISpObjectTokenVtbl;
  2028.     interface ISpObjectToken
  2029.     {
  2030.         CONST_VTBL struct ISpObjectTokenVtbl *lpVtbl;
  2031.     };
  2032.     
  2033. #ifdef COBJMACROS
  2034. #define ISpObjectToken_QueryInterface(This,riid,ppvObject)
  2035.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2036. #define ISpObjectToken_AddRef(This)
  2037.     (This)->lpVtbl -> AddRef(This)
  2038. #define ISpObjectToken_Release(This)
  2039.     (This)->lpVtbl -> Release(This)
  2040. #define ISpObjectToken_SetData(This,pszValueName,cbData,pData)
  2041.     (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
  2042. #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData)
  2043.     (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
  2044. #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue)
  2045.     (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
  2046. #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue)
  2047.     (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
  2048. #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue)
  2049.     (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
  2050. #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue)
  2051.     (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
  2052. #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey)
  2053.     (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
  2054. #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey)
  2055.     (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
  2056. #define ISpObjectToken_DeleteKey(This,pszSubKey)
  2057.     (This)->lpVtbl -> DeleteKey(This,pszSubKey)
  2058. #define ISpObjectToken_DeleteValue(This,pszValueName)
  2059.     (This)->lpVtbl -> DeleteValue(This,pszValueName)
  2060. #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName)
  2061.     (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
  2062. #define ISpObjectToken_EnumValues(This,Index,ppszValueName)
  2063.     (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
  2064. #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
  2065.     (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
  2066. #define ISpObjectToken_GetId(This,ppszCoMemTokenId)
  2067.     (This)->lpVtbl -> GetId(This,ppszCoMemTokenId)
  2068. #define ISpObjectToken_GetCategory(This,ppTokenCategory)
  2069.     (This)->lpVtbl -> GetCategory(This,ppTokenCategory)
  2070. #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
  2071.     (This)->lpVtbl -> CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
  2072. #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
  2073.     (This)->lpVtbl -> GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
  2074. #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
  2075.     (This)->lpVtbl -> RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
  2076. #define ISpObjectToken_Remove(This,pclsidCaller)
  2077.     (This)->lpVtbl -> Remove(This,pclsidCaller)
  2078. #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
  2079.     (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
  2080. #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
  2081.     (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
  2082. #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches)
  2083.     (This)->lpVtbl -> MatchesAttributes(This,pszAttributes,pfMatches)
  2084. #endif /* COBJMACROS */
  2085. #endif  /* C style interface */
  2086. HRESULT STDMETHODCALLTYPE ISpObjectToken_SetId_Proxy( 
  2087.     ISpObjectToken * This,
  2088.     const WCHAR *pszCategoryId,
  2089.     const WCHAR *pszTokenId,
  2090.     BOOL fCreateIfNotExist);
  2091. void __RPC_STUB ISpObjectToken_SetId_Stub(
  2092.     IRpcStubBuffer *This,
  2093.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2094.     PRPC_MESSAGE _pRpcMessage,
  2095.     DWORD *_pdwStubPhase);
  2096. HRESULT STDMETHODCALLTYPE ISpObjectToken_GetId_Proxy( 
  2097.     ISpObjectToken * This,
  2098.     WCHAR **ppszCoMemTokenId);
  2099. void __RPC_STUB ISpObjectToken_GetId_Stub(
  2100.     IRpcStubBuffer *This,
  2101.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2102.     PRPC_MESSAGE _pRpcMessage,
  2103.     DWORD *_pdwStubPhase);
  2104. HRESULT STDMETHODCALLTYPE ISpObjectToken_GetCategory_Proxy( 
  2105.     ISpObjectToken * This,
  2106.     ISpObjectTokenCategory **ppTokenCategory);
  2107. void __RPC_STUB ISpObjectToken_GetCategory_Stub(
  2108.     IRpcStubBuffer *This,
  2109.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2110.     PRPC_MESSAGE _pRpcMessage,
  2111.     DWORD *_pdwStubPhase);
  2112. HRESULT STDMETHODCALLTYPE ISpObjectToken_CreateInstance_Proxy( 
  2113.     ISpObjectToken * This,
  2114.     /* [in] */ IUnknown *pUnkOuter,
  2115.     /* [in] */ DWORD dwClsContext,
  2116.     /* [in] */ REFIID riid,
  2117.     /* [iid_is][out] */ void **ppvObject);
  2118. void __RPC_STUB ISpObjectToken_CreateInstance_Stub(
  2119.     IRpcStubBuffer *This,
  2120.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2121.     PRPC_MESSAGE _pRpcMessage,
  2122.     DWORD *_pdwStubPhase);
  2123. HRESULT STDMETHODCALLTYPE ISpObjectToken_GetStorageFileName_Proxy( 
  2124.     ISpObjectToken * This,
  2125.     /* [in] */ REFCLSID clsidCaller,
  2126.     /* [in] */ const WCHAR *pszValueName,
  2127.     /* [in] */ const WCHAR *pszFileNameSpecifier,
  2128.     /* [in] */ ULONG nFolder,
  2129.     /* [out] */ WCHAR **ppszFilePath);
  2130. void __RPC_STUB ISpObjectToken_GetStorageFileName_Stub(
  2131.     IRpcStubBuffer *This,
  2132.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2133.     PRPC_MESSAGE _pRpcMessage,
  2134.     DWORD *_pdwStubPhase);
  2135. HRESULT STDMETHODCALLTYPE ISpObjectToken_RemoveStorageFileName_Proxy( 
  2136.     ISpObjectToken * This,
  2137.     /* [in] */ REFCLSID clsidCaller,
  2138.     /* [in] */ const WCHAR *pszKeyName,
  2139.     /* [in] */ BOOL fDeleteFile);
  2140. void __RPC_STUB ISpObjectToken_RemoveStorageFileName_Stub(
  2141.     IRpcStubBuffer *This,
  2142.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2143.     PRPC_MESSAGE _pRpcMessage,
  2144.     DWORD *_pdwStubPhase);
  2145. HRESULT STDMETHODCALLTYPE ISpObjectToken_Remove_Proxy( 
  2146.     ISpObjectToken * This,
  2147.     const CLSID *pclsidCaller);
  2148. void __RPC_STUB ISpObjectToken_Remove_Stub(
  2149.     IRpcStubBuffer *This,
  2150.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2151.     PRPC_MESSAGE _pRpcMessage,
  2152.     DWORD *_pdwStubPhase);
  2153. /* [local] */ HRESULT STDMETHODCALLTYPE ISpObjectToken_IsUISupported_Proxy( 
  2154.     ISpObjectToken * This,
  2155.     /* [in] */ const WCHAR *pszTypeOfUI,
  2156.     /* [in] */ void *pvExtraData,
  2157.     /* [in] */ ULONG cbExtraData,
  2158.     /* [in] */ IUnknown *punkObject,
  2159.     /* [out] */ BOOL *pfSupported);
  2160. void __RPC_STUB ISpObjectToken_IsUISupported_Stub(
  2161.     IRpcStubBuffer *This,
  2162.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2163.     PRPC_MESSAGE _pRpcMessage,
  2164.     DWORD *_pdwStubPhase);
  2165. /* [local] */ HRESULT STDMETHODCALLTYPE ISpObjectToken_DisplayUI_Proxy( 
  2166.     ISpObjectToken * This,
  2167.     /* [in] */ HWND hwndParent,
  2168.     /* [in] */ const WCHAR *pszTitle,
  2169.     /* [in] */ const WCHAR *pszTypeOfUI,
  2170.     /* [in] */ void *pvExtraData,
  2171.     /* [in] */ ULONG cbExtraData,
  2172.     /* [in] */ IUnknown *punkObject);
  2173. void __RPC_STUB ISpObjectToken_DisplayUI_Stub(
  2174.     IRpcStubBuffer *This,
  2175.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2176.     PRPC_MESSAGE _pRpcMessage,
  2177.     DWORD *_pdwStubPhase);
  2178. HRESULT STDMETHODCALLTYPE ISpObjectToken_MatchesAttributes_Proxy( 
  2179.     ISpObjectToken * This,
  2180.     /* [in] */ const WCHAR *pszAttributes,
  2181.     /* [out] */ BOOL *pfMatches);
  2182. void __RPC_STUB ISpObjectToken_MatchesAttributes_Stub(
  2183.     IRpcStubBuffer *This,
  2184.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2185.     PRPC_MESSAGE _pRpcMessage,
  2186.     DWORD *_pdwStubPhase);
  2187. #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
  2188. #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
  2189. #define __ISpObjectTokenInit_INTERFACE_DEFINED__
  2190. /* interface ISpObjectTokenInit */
  2191. /* [restricted][unique][helpstring][uuid][object] */ 
  2192. EXTERN_C const IID IID_ISpObjectTokenInit;
  2193. #if defined(__cplusplus) && !defined(CINTERFACE)
  2194.     
  2195.     MIDL_INTERFACE("B8AAB0CF-346F-49D8-9499-C8B03F161D51")
  2196.     ISpObjectTokenInit : public ISpObjectToken
  2197.     {
  2198.     public:
  2199.         virtual HRESULT STDMETHODCALLTYPE InitFromDataKey( 
  2200.             /* [in] */ const WCHAR *pszCategoryId,
  2201.             /* [in] */ const WCHAR *pszTokenId,
  2202.             /* [in] */ ISpDataKey *pDataKey) = 0;
  2203.         
  2204.     };
  2205.     
  2206. #else  /* C style interface */
  2207.     typedef struct ISpObjectTokenInitVtbl
  2208.     {
  2209.         BEGIN_INTERFACE
  2210.         
  2211.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2212.             ISpObjectTokenInit * This,
  2213.             /* [in] */ REFIID riid,
  2214.             /* [iid_is][out] */ void **ppvObject);
  2215.         
  2216.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2217.             ISpObjectTokenInit * This);
  2218.         
  2219.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2220.             ISpObjectTokenInit * This);
  2221.         
  2222.         HRESULT ( STDMETHODCALLTYPE *SetData )( 
  2223.             ISpObjectTokenInit * This,
  2224.             const WCHAR *pszValueName,
  2225.             ULONG cbData,
  2226.             const BYTE *pData);
  2227.         
  2228.         HRESULT ( STDMETHODCALLTYPE *GetData )( 
  2229.             ISpObjectTokenInit * This,
  2230.             const WCHAR *pszValueName,
  2231.             ULONG *pcbData,
  2232.             BYTE *pData);
  2233.         
  2234.         HRESULT ( STDMETHODCALLTYPE *SetStringValue )( 
  2235.             ISpObjectTokenInit * This,
  2236.             const WCHAR *pszValueName,
  2237.             const WCHAR *pszValue);
  2238.         
  2239.         HRESULT ( STDMETHODCALLTYPE *GetStringValue )( 
  2240.             ISpObjectTokenInit * This,
  2241.             const WCHAR *pszValueName,
  2242.             WCHAR **ppszValue);
  2243.         
  2244.         HRESULT ( STDMETHODCALLTYPE *SetDWORD )( 
  2245.             ISpObjectTokenInit * This,
  2246.             const WCHAR *pszValueName,
  2247.             DWORD dwValue);
  2248.         
  2249.         HRESULT ( STDMETHODCALLTYPE *GetDWORD )( 
  2250.             ISpObjectTokenInit * This,
  2251.             const WCHAR *pszValueName,
  2252.             DWORD *pdwValue);
  2253.         
  2254.         HRESULT ( STDMETHODCALLTYPE *OpenKey )( 
  2255.             ISpObjectTokenInit * This,
  2256.             const WCHAR *pszSubKeyName,
  2257.             ISpDataKey **ppSubKey);
  2258.         
  2259.         HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
  2260.             ISpObjectTokenInit * This,
  2261.             const WCHAR *pszSubKey,
  2262.             ISpDataKey **ppSubKey);
  2263.         
  2264.         HRESULT ( STDMETHODCALLTYPE *DeleteKey )( 
  2265.             ISpObjectTokenInit * This,
  2266.             const WCHAR *pszSubKey);
  2267.         
  2268.         HRESULT ( STDMETHODCALLTYPE *DeleteValue )( 
  2269.             ISpObjectTokenInit * This,
  2270.             const WCHAR *pszValueName);
  2271.         
  2272.         HRESULT ( STDMETHODCALLTYPE *EnumKeys )( 
  2273.             ISpObjectTokenInit * This,
  2274.             ULONG Index,
  2275.             WCHAR **ppszSubKeyName);
  2276.         
  2277.         HRESULT ( STDMETHODCALLTYPE *EnumValues )( 
  2278.             ISpObjectTokenInit * This,
  2279.             ULONG Index,
  2280.             WCHAR **ppszValueName);
  2281.         
  2282.         HRESULT ( STDMETHODCALLTYPE *SetId )( 
  2283.             ISpObjectTokenInit * This,
  2284.             const WCHAR *pszCategoryId,
  2285.             const WCHAR *pszTokenId,
  2286.             BOOL fCreateIfNotExist);
  2287.         
  2288.         HRESULT ( STDMETHODCALLTYPE *GetId )( 
  2289.             ISpObjectTokenInit * This,
  2290.             WCHAR **ppszCoMemTokenId);
  2291.         
  2292.         HRESULT ( STDMETHODCALLTYPE *GetCategory )( 
  2293.             ISpObjectTokenInit * This,
  2294.             ISpObjectTokenCategory **ppTokenCategory);
  2295.         
  2296.         HRESULT ( STDMETHODCALLTYPE *CreateInstance )( 
  2297.             ISpObjectTokenInit * This,
  2298.             /* [in] */ IUnknown *pUnkOuter,
  2299.             /* [in] */ DWORD dwClsContext,
  2300.             /* [in] */ REFIID riid,
  2301.             /* [iid_is][out] */ void **ppvObject);
  2302.         
  2303.         HRESULT ( STDMETHODCALLTYPE *GetStorageFileName )( 
  2304.             ISpObjectTokenInit * This,
  2305.             /* [in] */ REFCLSID clsidCaller,
  2306.             /* [in] */ const WCHAR *pszValueName,
  2307.             /* [in] */ const WCHAR *pszFileNameSpecifier,
  2308.             /* [in] */ ULONG nFolder,
  2309.             /* [out] */ WCHAR **ppszFilePath);
  2310.         
  2311.         HRESULT ( STDMETHODCALLTYPE *RemoveStorageFileName )( 
  2312.             ISpObjectTokenInit * This,
  2313.             /* [in] */ REFCLSID clsidCaller,
  2314.             /* [in] */ const WCHAR *pszKeyName,
  2315.             /* [in] */ BOOL fDeleteFile);
  2316.         
  2317.         HRESULT ( STDMETHODCALLTYPE *Remove )( 
  2318.             ISpObjectTokenInit * This,
  2319.             const CLSID *pclsidCaller);
  2320.         
  2321.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *IsUISupported )( 
  2322.             ISpObjectTokenInit * This,
  2323.             /* [in] */ const WCHAR *pszTypeOfUI,
  2324.             /* [in] */ void *pvExtraData,
  2325.             /* [in] */ ULONG cbExtraData,
  2326.             /* [in] */ IUnknown *punkObject,
  2327.             /* [out] */ BOOL *pfSupported);
  2328.         
  2329.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DisplayUI )( 
  2330.             ISpObjectTokenInit * This,
  2331.             /* [in] */ HWND hwndParent,
  2332.             /* [in] */ const WCHAR *pszTitle,
  2333.             /* [in] */ const WCHAR *pszTypeOfUI,
  2334.             /* [in] */ void *pvExtraData,
  2335.             /* [in] */ ULONG cbExtraData,
  2336.             /* [in] */ IUnknown *punkObject);
  2337.         
  2338.         HRESULT ( STDMETHODCALLTYPE *MatchesAttributes )( 
  2339.             ISpObjectTokenInit * This,
  2340.             /* [in] */ const WCHAR *pszAttributes,
  2341.             /* [out] */ BOOL *pfMatches);
  2342.         
  2343.         HRESULT ( STDMETHODCALLTYPE *InitFromDataKey )( 
  2344.             ISpObjectTokenInit * This,
  2345.             /* [in] */ const WCHAR *pszCategoryId,
  2346.             /* [in] */ const WCHAR *pszTokenId,
  2347.             /* [in] */ ISpDataKey *pDataKey);
  2348.         
  2349.         END_INTERFACE
  2350.     } ISpObjectTokenInitVtbl;
  2351.     interface ISpObjectTokenInit
  2352.     {
  2353.         CONST_VTBL struct ISpObjectTokenInitVtbl *lpVtbl;
  2354.     };
  2355.     
  2356. #ifdef COBJMACROS
  2357. #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject)
  2358.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2359. #define ISpObjectTokenInit_AddRef(This)
  2360.     (This)->lpVtbl -> AddRef(This)
  2361. #define ISpObjectTokenInit_Release(This)
  2362.     (This)->lpVtbl -> Release(This)
  2363. #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData)
  2364.     (This)->lpVtbl -> SetData(This,pszValueName,cbData,pData)
  2365. #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData)
  2366.     (This)->lpVtbl -> GetData(This,pszValueName,pcbData,pData)
  2367. #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue)
  2368.     (This)->lpVtbl -> SetStringValue(This,pszValueName,pszValue)
  2369. #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue)
  2370.     (This)->lpVtbl -> GetStringValue(This,pszValueName,ppszValue)
  2371. #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue)
  2372.     (This)->lpVtbl -> SetDWORD(This,pszValueName,dwValue)
  2373. #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue)
  2374.     (This)->lpVtbl -> GetDWORD(This,pszValueName,pdwValue)
  2375. #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey)
  2376.     (This)->lpVtbl -> OpenKey(This,pszSubKeyName,ppSubKey)
  2377. #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey)
  2378.     (This)->lpVtbl -> CreateKey(This,pszSubKey,ppSubKey)
  2379. #define ISpObjectTokenInit_DeleteKey(This,pszSubKey)
  2380.     (This)->lpVtbl -> DeleteKey(This,pszSubKey)
  2381. #define ISpObjectTokenInit_DeleteValue(This,pszValueName)
  2382.     (This)->lpVtbl -> DeleteValue(This,pszValueName)
  2383. #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName)
  2384.     (This)->lpVtbl -> EnumKeys(This,Index,ppszSubKeyName)
  2385. #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName)
  2386.     (This)->lpVtbl -> EnumValues(This,Index,ppszValueName)
  2387. #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
  2388.     (This)->lpVtbl -> SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
  2389. #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId)
  2390.     (This)->lpVtbl -> GetId(This,ppszCoMemTokenId)
  2391. #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory)
  2392.     (This)->lpVtbl -> GetCategory(This,ppTokenCategory)
  2393. #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
  2394.     (This)->lpVtbl -> CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
  2395. #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
  2396.     (This)->lpVtbl -> GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
  2397. #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
  2398.     (This)->lpVtbl -> RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
  2399. #define ISpObjectTokenInit_Remove(This,pclsidCaller)
  2400.     (This)->lpVtbl -> Remove(This,pclsidCaller)
  2401. #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
  2402.     (This)->lpVtbl -> IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
  2403. #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
  2404.     (This)->lpVtbl -> DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
  2405. #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches)
  2406.     (This)->lpVtbl -> MatchesAttributes(This,pszAttributes,pfMatches)
  2407. #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
  2408.     (This)->lpVtbl -> InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
  2409. #endif /* COBJMACROS */
  2410. #endif  /* C style interface */
  2411. HRESULT STDMETHODCALLTYPE ISpObjectTokenInit_InitFromDataKey_Proxy( 
  2412.     ISpObjectTokenInit * This,
  2413.     /* [in] */ const WCHAR *pszCategoryId,
  2414.     /* [in] */ const WCHAR *pszTokenId,
  2415.     /* [in] */ ISpDataKey *pDataKey);
  2416. void __RPC_STUB ISpObjectTokenInit_InitFromDataKey_Stub(
  2417.     IRpcStubBuffer *This,
  2418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2419.     PRPC_MESSAGE _pRpcMessage,
  2420.     DWORD *_pdwStubPhase);
  2421. #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
  2422. #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
  2423. #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
  2424. /* interface IEnumSpObjectTokens */
  2425. /* [restricted][unique][helpstring][uuid][object] */ 
  2426. EXTERN_C const IID IID_IEnumSpObjectTokens;
  2427. #if defined(__cplusplus) && !defined(CINTERFACE)
  2428.     
  2429.     MIDL_INTERFACE("06B64F9E-7FDA-11D2-B4F2-00C04F797396")
  2430.     IEnumSpObjectTokens : public IUnknown
  2431.     {
  2432.     public:
  2433.         virtual HRESULT STDMETHODCALLTYPE Next( 
  2434.             /* [in] */ ULONG celt,
  2435.             /* [length_is][size_is][out] */ ISpObjectToken **pelt,
  2436.             /* [out] */ ULONG *pceltFetched) = 0;
  2437.         
  2438.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  2439.             /* [in] */ ULONG celt) = 0;
  2440.         
  2441.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  2442.         
  2443.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  2444.             /* [out] */ IEnumSpObjectTokens **ppEnum) = 0;
  2445.         
  2446.         virtual HRESULT STDMETHODCALLTYPE Item( 
  2447.             /* [in] */ ULONG Index,
  2448.             /* [out] */ ISpObjectToken **ppToken) = 0;
  2449.         
  2450.         virtual HRESULT STDMETHODCALLTYPE GetCount( 
  2451.             /* [out] */ ULONG *pCount) = 0;
  2452.         
  2453.     };
  2454.     
  2455. #else  /* C style interface */
  2456.     typedef struct IEnumSpObjectTokensVtbl
  2457.     {
  2458.         BEGIN_INTERFACE
  2459.         
  2460.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2461.             IEnumSpObjectTokens * This,
  2462.             /* [in] */ REFIID riid,
  2463.             /* [iid_is][out] */ void **ppvObject);
  2464.         
  2465.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2466.             IEnumSpObjectTokens * This);
  2467.         
  2468.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2469.             IEnumSpObjectTokens * This);
  2470.         
  2471.         HRESULT ( STDMETHODCALLTYPE *Next )( 
  2472.             IEnumSpObjectTokens * This,
  2473.             /* [in] */ ULONG celt,
  2474.             /* [length_is][size_is][out] */ ISpObjectToken **pelt,
  2475.             /* [out] */ ULONG *pceltFetched);
  2476.         
  2477.         HRESULT ( STDMETHODCALLTYPE *Skip )( 
  2478.             IEnumSpObjectTokens * This,
  2479.             /* [in] */ ULONG celt);
  2480.         
  2481.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  2482.             IEnumSpObjectTokens * This);
  2483.         
  2484.         HRESULT ( STDMETHODCALLTYPE *Clone )( 
  2485.             IEnumSpObjectTokens * This,
  2486.             /* [out] */ IEnumSpObjectTokens **ppEnum);
  2487.         
  2488.         HRESULT ( STDMETHODCALLTYPE *Item )( 
  2489.             IEnumSpObjectTokens * This,
  2490.             /* [in] */ ULONG Index,
  2491.             /* [out] */ ISpObjectToken **ppToken);
  2492.         
  2493.         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  2494.             IEnumSpObjectTokens * This,
  2495.             /* [out] */ ULONG *pCount);
  2496.         
  2497.         END_INTERFACE
  2498.     } IEnumSpObjectTokensVtbl;
  2499.     interface IEnumSpObjectTokens
  2500.     {
  2501.         CONST_VTBL struct IEnumSpObjectTokensVtbl *lpVtbl;
  2502.     };
  2503.     
  2504. #ifdef COBJMACROS
  2505. #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject)
  2506.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2507. #define IEnumSpObjectTokens_AddRef(This)
  2508.     (This)->lpVtbl -> AddRef(This)
  2509. #define IEnumSpObjectTokens_Release(This)
  2510.     (This)->lpVtbl -> Release(This)
  2511. #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched)
  2512.     (This)->lpVtbl -> Next(This,celt,pelt,pceltFetched)
  2513. #define IEnumSpObjectTokens_Skip(This,celt)
  2514.     (This)->lpVtbl -> Skip(This,celt)
  2515. #define IEnumSpObjectTokens_Reset(This)
  2516.     (This)->lpVtbl -> Reset(This)
  2517. #define IEnumSpObjectTokens_Clone(This,ppEnum)
  2518.     (This)->lpVtbl -> Clone(This,ppEnum)
  2519. #define IEnumSpObjectTokens_Item(This,Index,ppToken)
  2520.     (This)->lpVtbl -> Item(This,Index,ppToken)
  2521. #define IEnumSpObjectTokens_GetCount(This,pCount)
  2522.     (This)->lpVtbl -> GetCount(This,pCount)
  2523. #endif /* COBJMACROS */
  2524. #endif  /* C style interface */
  2525. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Next_Proxy( 
  2526.     IEnumSpObjectTokens * This,
  2527.     /* [in] */ ULONG celt,
  2528.     /* [length_is][size_is][out] */ ISpObjectToken **pelt,
  2529.     /* [out] */ ULONG *pceltFetched);
  2530. void __RPC_STUB IEnumSpObjectTokens_Next_Stub(
  2531.     IRpcStubBuffer *This,
  2532.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2533.     PRPC_MESSAGE _pRpcMessage,
  2534.     DWORD *_pdwStubPhase);
  2535. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Skip_Proxy( 
  2536.     IEnumSpObjectTokens * This,
  2537.     /* [in] */ ULONG celt);
  2538. void __RPC_STUB IEnumSpObjectTokens_Skip_Stub(
  2539.     IRpcStubBuffer *This,
  2540.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2541.     PRPC_MESSAGE _pRpcMessage,
  2542.     DWORD *_pdwStubPhase);
  2543. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Reset_Proxy( 
  2544.     IEnumSpObjectTokens * This);
  2545. void __RPC_STUB IEnumSpObjectTokens_Reset_Stub(
  2546.     IRpcStubBuffer *This,
  2547.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2548.     PRPC_MESSAGE _pRpcMessage,
  2549.     DWORD *_pdwStubPhase);
  2550. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Clone_Proxy( 
  2551.     IEnumSpObjectTokens * This,
  2552.     /* [out] */ IEnumSpObjectTokens **ppEnum);
  2553. void __RPC_STUB IEnumSpObjectTokens_Clone_Stub(
  2554.     IRpcStubBuffer *This,
  2555.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2556.     PRPC_MESSAGE _pRpcMessage,
  2557.     DWORD *_pdwStubPhase);
  2558. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_Item_Proxy( 
  2559.     IEnumSpObjectTokens * This,
  2560.     /* [in] */ ULONG Index,
  2561.     /* [out] */ ISpObjectToken **ppToken);
  2562. void __RPC_STUB IEnumSpObjectTokens_Item_Stub(
  2563.     IRpcStubBuffer *This,
  2564.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2565.     PRPC_MESSAGE _pRpcMessage,
  2566.     DWORD *_pdwStubPhase);
  2567. HRESULT STDMETHODCALLTYPE IEnumSpObjectTokens_GetCount_Proxy( 
  2568.     IEnumSpObjectTokens * This,
  2569.     /* [out] */ ULONG *pCount);
  2570. void __RPC_STUB IEnumSpObjectTokens_GetCount_Stub(
  2571.     IRpcStubBuffer *This,
  2572.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2573.     PRPC_MESSAGE _pRpcMessage,
  2574.     DWORD *_pdwStubPhase);
  2575. #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
  2576. #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
  2577. #define __ISpObjectWithToken_INTERFACE_DEFINED__
  2578. /* interface ISpObjectWithToken */
  2579. /* [restricted][unique][helpstring][uuid][object] */ 
  2580. EXTERN_C const IID IID_ISpObjectWithToken;
  2581. #if defined(__cplusplus) && !defined(CINTERFACE)
  2582.     
  2583.     MIDL_INTERFACE("5B559F40-E952-11D2-BB91-00C04F8EE6C0")
  2584.     ISpObjectWithToken : public IUnknown
  2585.     {
  2586.     public:
  2587.         virtual HRESULT STDMETHODCALLTYPE SetObjectToken( 
  2588.             ISpObjectToken *pToken) = 0;
  2589.         
  2590.         virtual HRESULT STDMETHODCALLTYPE GetObjectToken( 
  2591.             ISpObjectToken **ppToken) = 0;
  2592.         
  2593.     };
  2594.     
  2595. #else  /* C style interface */
  2596.     typedef struct ISpObjectWithTokenVtbl
  2597.     {
  2598.         BEGIN_INTERFACE
  2599.         
  2600.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2601.             ISpObjectWithToken * This,
  2602.             /* [in] */ REFIID riid,
  2603.             /* [iid_is][out] */ void **ppvObject);
  2604.         
  2605.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2606.             ISpObjectWithToken * This);
  2607.         
  2608.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2609.             ISpObjectWithToken * This);
  2610.         
  2611.         HRESULT ( STDMETHODCALLTYPE *SetObjectToken )( 
  2612.             ISpObjectWithToken * This,
  2613.             ISpObjectToken *pToken);
  2614.         
  2615.         HRESULT ( STDMETHODCALLTYPE *GetObjectToken )( 
  2616.             ISpObjectWithToken * This,
  2617.             ISpObjectToken **ppToken);
  2618.         
  2619.         END_INTERFACE
  2620.     } ISpObjectWithTokenVtbl;
  2621.     interface ISpObjectWithToken
  2622.     {
  2623.         CONST_VTBL struct ISpObjectWithTokenVtbl *lpVtbl;
  2624.     };
  2625.     
  2626. #ifdef COBJMACROS
  2627. #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject)
  2628.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2629. #define ISpObjectWithToken_AddRef(This)
  2630.     (This)->lpVtbl -> AddRef(This)
  2631. #define ISpObjectWithToken_Release(This)
  2632.     (This)->lpVtbl -> Release(This)
  2633. #define ISpObjectWithToken_SetObjectToken(This,pToken)
  2634.     (This)->lpVtbl -> SetObjectToken(This,pToken)
  2635. #define ISpObjectWithToken_GetObjectToken(This,ppToken)
  2636.     (This)->lpVtbl -> GetObjectToken(This,ppToken)
  2637. #endif /* COBJMACROS */
  2638. #endif  /* C style interface */
  2639. HRESULT STDMETHODCALLTYPE ISpObjectWithToken_SetObjectToken_Proxy( 
  2640.     ISpObjectWithToken * This,
  2641.     ISpObjectToken *pToken);
  2642. void __RPC_STUB ISpObjectWithToken_SetObjectToken_Stub(
  2643.     IRpcStubBuffer *This,
  2644.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2645.     PRPC_MESSAGE _pRpcMessage,
  2646.     DWORD *_pdwStubPhase);
  2647. HRESULT STDMETHODCALLTYPE ISpObjectWithToken_GetObjectToken_Proxy( 
  2648.     ISpObjectWithToken * This,
  2649.     ISpObjectToken **ppToken);
  2650. void __RPC_STUB ISpObjectWithToken_GetObjectToken_Stub(
  2651.     IRpcStubBuffer *This,
  2652.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2653.     PRPC_MESSAGE _pRpcMessage,
  2654.     DWORD *_pdwStubPhase);
  2655. #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
  2656. #ifndef __ISpResourceManager_INTERFACE_DEFINED__
  2657. #define __ISpResourceManager_INTERFACE_DEFINED__
  2658. /* interface ISpResourceManager */
  2659. /* [restricted][unique][helpstring][uuid][object] */ 
  2660. EXTERN_C const IID IID_ISpResourceManager;
  2661. #if defined(__cplusplus) && !defined(CINTERFACE)
  2662.     
  2663.     MIDL_INTERFACE("93384E18-5014-43D5-ADBB-A78E055926BD")
  2664.     ISpResourceManager : public IServiceProvider
  2665.     {
  2666.     public:
  2667.         virtual HRESULT STDMETHODCALLTYPE SetObject( 
  2668.             /* [in] */ REFGUID guidServiceId,
  2669.             /* [in] */ IUnknown *pUnkObject) = 0;
  2670.         
  2671.         virtual HRESULT STDMETHODCALLTYPE GetObject( 
  2672.             /* [in] */ REFGUID guidServiceId,
  2673.             /* [in] */ REFCLSID ObjectCLSID,
  2674.             /* [in] */ REFIID ObjectIID,
  2675.             /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
  2676.             /* [iid_is][out] */ void **ppObject) = 0;
  2677.         
  2678.     };
  2679.     
  2680. #else  /* C style interface */
  2681.     typedef struct ISpResourceManagerVtbl
  2682.     {
  2683.         BEGIN_INTERFACE
  2684.         
  2685.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2686.             ISpResourceManager * This,
  2687.             /* [in] */ REFIID riid,
  2688.             /* [iid_is][out] */ void **ppvObject);
  2689.         
  2690.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2691.             ISpResourceManager * This);
  2692.         
  2693.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2694.             ISpResourceManager * This);
  2695.         
  2696.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *QueryService )( 
  2697.             ISpResourceManager * This,
  2698.             /* [in] */ REFGUID guidService,
  2699.             /* [in] */ REFIID riid,
  2700.             /* [out] */ void **ppvObject);
  2701.         
  2702.         HRESULT ( STDMETHODCALLTYPE *SetObject )( 
  2703.             ISpResourceManager * This,
  2704.             /* [in] */ REFGUID guidServiceId,
  2705.             /* [in] */ IUnknown *pUnkObject);
  2706.         
  2707.         HRESULT ( STDMETHODCALLTYPE *GetObject )( 
  2708.             ISpResourceManager * This,
  2709.             /* [in] */ REFGUID guidServiceId,
  2710.             /* [in] */ REFCLSID ObjectCLSID,
  2711.             /* [in] */ REFIID ObjectIID,
  2712.             /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
  2713.             /* [iid_is][out] */ void **ppObject);
  2714.         
  2715.         END_INTERFACE
  2716.     } ISpResourceManagerVtbl;
  2717.     interface ISpResourceManager
  2718.     {
  2719.         CONST_VTBL struct ISpResourceManagerVtbl *lpVtbl;
  2720.     };
  2721.     
  2722. #ifdef COBJMACROS
  2723. #define ISpResourceManager_QueryInterface(This,riid,ppvObject)
  2724.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2725. #define ISpResourceManager_AddRef(This)
  2726.     (This)->lpVtbl -> AddRef(This)
  2727. #define ISpResourceManager_Release(This)
  2728.     (This)->lpVtbl -> Release(This)
  2729. #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject)
  2730.     (This)->lpVtbl -> QueryService(This,guidService,riid,ppvObject)
  2731. #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject)
  2732.     (This)->lpVtbl -> SetObject(This,guidServiceId,pUnkObject)
  2733. #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
  2734.     (This)->lpVtbl -> GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
  2735. #endif /* COBJMACROS */
  2736. #endif  /* C style interface */
  2737. HRESULT STDMETHODCALLTYPE ISpResourceManager_SetObject_Proxy( 
  2738.     ISpResourceManager * This,
  2739.     /* [in] */ REFGUID guidServiceId,
  2740.     /* [in] */ IUnknown *pUnkObject);
  2741. void __RPC_STUB ISpResourceManager_SetObject_Stub(
  2742.     IRpcStubBuffer *This,
  2743.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2744.     PRPC_MESSAGE _pRpcMessage,
  2745.     DWORD *_pdwStubPhase);
  2746. HRESULT STDMETHODCALLTYPE ISpResourceManager_GetObject_Proxy( 
  2747.     ISpResourceManager * This,
  2748.     /* [in] */ REFGUID guidServiceId,
  2749.     /* [in] */ REFCLSID ObjectCLSID,
  2750.     /* [in] */ REFIID ObjectIID,
  2751.     /* [in] */ BOOL fReleaseWhenLastExternalRefReleased,
  2752.     /* [iid_is][out] */ void **ppObject);
  2753. void __RPC_STUB ISpResourceManager_GetObject_Stub(
  2754.     IRpcStubBuffer *This,
  2755.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2756.     PRPC_MESSAGE _pRpcMessage,
  2757.     DWORD *_pdwStubPhase);
  2758. #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */