directmanipulation.h 99 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319
  1. /*** Autogenerated by WIDL 7.7 from include/directmanipulation.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __directmanipulation_h__
  14. #define __directmanipulation_h__
  15. /* Forward declarations */
  16. #ifndef __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
  17. #define __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
  18. typedef interface IDirectManipulationFrameInfoProvider IDirectManipulationFrameInfoProvider;
  19. #ifdef __cplusplus
  20. interface IDirectManipulationFrameInfoProvider;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IDirectManipulationManager_FWD_DEFINED__
  24. #define __IDirectManipulationManager_FWD_DEFINED__
  25. typedef interface IDirectManipulationManager IDirectManipulationManager;
  26. #ifdef __cplusplus
  27. interface IDirectManipulationManager;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IDirectManipulationContent_FWD_DEFINED__
  31. #define __IDirectManipulationContent_FWD_DEFINED__
  32. typedef interface IDirectManipulationContent IDirectManipulationContent;
  33. #ifdef __cplusplus
  34. interface IDirectManipulationContent;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IDirectManipulationUpdateHandler_FWD_DEFINED__
  38. #define __IDirectManipulationUpdateHandler_FWD_DEFINED__
  39. typedef interface IDirectManipulationUpdateHandler IDirectManipulationUpdateHandler;
  40. #ifdef __cplusplus
  41. interface IDirectManipulationUpdateHandler;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IDirectManipulationUpdateManager_FWD_DEFINED__
  45. #define __IDirectManipulationUpdateManager_FWD_DEFINED__
  46. typedef interface IDirectManipulationUpdateManager IDirectManipulationUpdateManager;
  47. #ifdef __cplusplus
  48. interface IDirectManipulationUpdateManager;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IDirectManipulationCompositor_FWD_DEFINED__
  52. #define __IDirectManipulationCompositor_FWD_DEFINED__
  53. typedef interface IDirectManipulationCompositor IDirectManipulationCompositor;
  54. #ifdef __cplusplus
  55. interface IDirectManipulationCompositor;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IDirectManipulationViewport_FWD_DEFINED__
  59. #define __IDirectManipulationViewport_FWD_DEFINED__
  60. typedef interface IDirectManipulationViewport IDirectManipulationViewport;
  61. #ifdef __cplusplus
  62. interface IDirectManipulationViewport;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IDirectManipulationViewport2_FWD_DEFINED__
  66. #define __IDirectManipulationViewport2_FWD_DEFINED__
  67. typedef interface IDirectManipulationViewport2 IDirectManipulationViewport2;
  68. #ifdef __cplusplus
  69. interface IDirectManipulationViewport2;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  73. #define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  74. typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
  75. #ifdef __cplusplus
  76. interface IDirectManipulationViewportEventHandler;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IDirectManipulationManager2_FWD_DEFINED__
  80. #define __IDirectManipulationManager2_FWD_DEFINED__
  81. typedef interface IDirectManipulationManager2 IDirectManipulationManager2;
  82. #ifdef __cplusplus
  83. interface IDirectManipulationManager2;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IDirectManipulationPrimaryContent_FWD_DEFINED__
  87. #define __IDirectManipulationPrimaryContent_FWD_DEFINED__
  88. typedef interface IDirectManipulationPrimaryContent IDirectManipulationPrimaryContent;
  89. #ifdef __cplusplus
  90. interface IDirectManipulationPrimaryContent;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IDirectManipulationCompositor2_FWD_DEFINED__
  94. #define __IDirectManipulationCompositor2_FWD_DEFINED__
  95. typedef interface IDirectManipulationCompositor2 IDirectManipulationCompositor2;
  96. #ifdef __cplusplus
  97. interface IDirectManipulationCompositor2;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __DirectManipulationManager_FWD_DEFINED__
  101. #define __DirectManipulationManager_FWD_DEFINED__
  102. #ifdef __cplusplus
  103. typedef class DirectManipulationManager DirectManipulationManager;
  104. #else
  105. typedef struct DirectManipulationManager DirectManipulationManager;
  106. #endif /* defined __cplusplus */
  107. #endif /* defined __DirectManipulationManager_FWD_DEFINED__ */
  108. #ifndef __DirectManipulationSharedManager_FWD_DEFINED__
  109. #define __DirectManipulationSharedManager_FWD_DEFINED__
  110. #ifdef __cplusplus
  111. typedef class DirectManipulationSharedManager DirectManipulationSharedManager;
  112. #else
  113. typedef struct DirectManipulationSharedManager DirectManipulationSharedManager;
  114. #endif /* defined __cplusplus */
  115. #endif /* defined __DirectManipulationSharedManager_FWD_DEFINED__ */
  116. #ifndef __DCompManipulationCompositor_FWD_DEFINED__
  117. #define __DCompManipulationCompositor_FWD_DEFINED__
  118. #ifdef __cplusplus
  119. typedef class DCompManipulationCompositor DCompManipulationCompositor;
  120. #else
  121. typedef struct DCompManipulationCompositor DCompManipulationCompositor;
  122. #endif /* defined __cplusplus */
  123. #endif /* defined __DCompManipulationCompositor_FWD_DEFINED__ */
  124. #ifndef __DirectManipulationViewport_FWD_DEFINED__
  125. #define __DirectManipulationViewport_FWD_DEFINED__
  126. #ifdef __cplusplus
  127. typedef class DirectManipulationViewport DirectManipulationViewport;
  128. #else
  129. typedef struct DirectManipulationViewport DirectManipulationViewport;
  130. #endif /* defined __cplusplus */
  131. #endif /* defined __DirectManipulationViewport_FWD_DEFINED__ */
  132. /* Headers for imported files */
  133. #include <oaidl.h>
  134. #include <ocidl.h>
  135. #ifdef __cplusplus
  136. extern "C" {
  137. #endif
  138. #if 0
  139. typedef void *HWND;
  140. #endif
  141. #ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  142. #define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
  143. typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
  144. #ifdef __cplusplus
  145. interface IDirectManipulationViewportEventHandler;
  146. #endif /* __cplusplus */
  147. #endif
  148. typedef enum DIRECTMANIPULATION_HITTEST_TYPE {
  149. DIRECTMANIPULATION_HITTEST_TYPE_ASYNCHRONOUS = 0x0,
  150. DIRECTMANIPULATION_HITTEST_TYPE_SYNCHRONOUS = 0x1,
  151. DIRECTMANIPULATION_HITTEST_TYPE_AUTO_SYNCHRONOUS = 0x2
  152. } DIRECTMANIPULATION_HITTEST_TYPE;
  153. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HITTEST_TYPE)
  154. typedef enum DIRECTMANIPULATION_STATUS {
  155. DIRECTMANIPULATION_BUILDING = 0,
  156. DIRECTMANIPULATION_ENABLED = 1,
  157. DIRECTMANIPULATION_DISABLED = 2,
  158. DIRECTMANIPULATION_RUNNING = 3,
  159. DIRECTMANIPULATION_INERTIA = 4,
  160. DIRECTMANIPULATION_READY = 5,
  161. DIRECTMANIPULATION_SUSPENDED = 6
  162. } DIRECTMANIPULATION_STATUS;
  163. typedef enum DIRECTMANIPULATION_VIEWPORT_OPTIONS {
  164. DIRECTMANIPULATION_VIEWPORT_OPTIONS_DEFAULT = 0x0,
  165. DIRECTMANIPULATION_VIEWPORT_OPTIONS_AUTODISABLE = 0x1,
  166. DIRECTMANIPULATION_VIEWPORT_OPTIONS_MANUALUPDATE = 0x2,
  167. DIRECTMANIPULATION_VIEWPORT_OPTIONS_INPUT = 0x4,
  168. DIRECTMANIPULATION_VIEWPORT_OPTIONS_EXPLICITHITTEST = 0x8,
  169. DIRECTMANIPULATION_VIEWPORT_OPTIONS_DISABLEPIXELSNAPPING = 0x10
  170. } DIRECTMANIPULATION_VIEWPORT_OPTIONS;
  171. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VIEWPORT_OPTIONS)
  172. typedef enum DIRECTMANIPULATION_CONFIGURATION {
  173. DIRECTMANIPULATION_CONFIGURATION_NONE = 0x0,
  174. DIRECTMANIPULATION_CONFIGURATION_INTERACTION = 0x1,
  175. DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_X = 0x2,
  176. DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_Y = 0x4,
  177. DIRECTMANIPULATION_CONFIGURATION_SCALING = 0x10,
  178. DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_INERTIA = 0x20,
  179. DIRECTMANIPULATION_CONFIGURATION_SCALING_INERTIA = 0x80,
  180. DIRECTMANIPULATION_CONFIGURATION_RAILS_X = 0x100,
  181. DIRECTMANIPULATION_CONFIGURATION_RAILS_Y = 0x200
  182. } DIRECTMANIPULATION_CONFIGURATION;
  183. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_CONFIGURATION)
  184. typedef enum DIRECTMANIPULATION_GESTURE_CONFIGURATION {
  185. DIRECTMANIPULATION_GESTURE_NONE = 0x0,
  186. DIRECTMANIPULATION_GESTURE_DEFAULT = 0x0,
  187. DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_VERTICAL = 0x8,
  188. DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_HORIZONTAL = 0x10,
  189. DIRECTMANIPULATION_GESTURE_PINCH_ZOOM = 0x20
  190. } DIRECTMANIPULATION_GESTURE_CONFIGURATION;
  191. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_GESTURE_CONFIGURATION)
  192. typedef enum DIRECTMANIPULATION_MOTION_TYPES {
  193. DIRECTMANIPULATION_MOTION_NONE = 0x0,
  194. DIRECTMANIPULATION_MOTION_TRANSLATEX = 0x1,
  195. DIRECTMANIPULATION_MOTION_TRANSLATEY = 0x2,
  196. DIRECTMANIPULATION_MOTION_ZOOM = 0x4,
  197. DIRECTMANIPULATION_MOTION_CENTERX = 0x10,
  198. DIRECTMANIPULATION_MOTION_CENTERY = 0x20,
  199. DIRECTMANIPULATION_MOTION_ALL = (((DIRECTMANIPULATION_MOTION_TRANSLATEX | DIRECTMANIPULATION_MOTION_TRANSLATEY) | DIRECTMANIPULATION_MOTION_ZOOM) | DIRECTMANIPULATION_MOTION_CENTERX) | DIRECTMANIPULATION_MOTION_CENTERY
  200. } DIRECTMANIPULATION_MOTION_TYPES;
  201. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_MOTION_TYPES)
  202. typedef enum DIRECTMANIPULATION_SNAPPOINT_TYPE {
  203. DIRECTMANIPULATION_SNAPPOINT_MANDATORY = 0,
  204. DIRECTMANIPULATION_SNAPPOINT_OPTIONAL = 1,
  205. DIRECTMANIPULATION_SNAPPOINT_MANDATORY_SINGLE = 2,
  206. DIRECTMANIPULATION_SNAPPOINT_OPTIONAL_SINGLE = 3
  207. } DIRECTMANIPULATION_SNAPPOINT_TYPE;
  208. typedef enum DIRECTMANIPULATION_SNAPPOINT_COORDINATE {
  209. DIRECTMANIPULATION_COORDINATE_BOUNDARY = 0x0,
  210. DIRECTMANIPULATION_COORDINATE_ORIGIN = 0x1,
  211. DIRECTMANIPULATION_COORDINATE_MIRRORED = 0x10
  212. } DIRECTMANIPULATION_SNAPPOINT_COORDINATE;
  213. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_SNAPPOINT_COORDINATE)
  214. typedef enum DIRECTMANIPULATION_HORIZONTALALIGNMENT {
  215. DIRECTMANIPULATION_HORIZONTALALIGNMENT_NONE = 0x0,
  216. DIRECTMANIPULATION_HORIZONTALALIGNMENT_LEFT = 0x1,
  217. DIRECTMANIPULATION_HORIZONTALALIGNMENT_CENTER = 0x2,
  218. DIRECTMANIPULATION_HORIZONTALALIGNMENT_RIGHT = 0x4,
  219. DIRECTMANIPULATION_HORIZONTALALIGNMENT_UNLOCKCENTER = 0x8
  220. } DIRECTMANIPULATION_HORIZONTALALIGNMENT;
  221. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HORIZONTALALIGNMENT)
  222. typedef enum DIRECTMANIPULATION_VERTICALALIGNMENT {
  223. DIRECTMANIPULATION_VERTICALALIGNMENT_NONE = 0x0,
  224. DIRECTMANIPULATION_VERTICALALIGNMENT_TOP = 0x1,
  225. DIRECTMANIPULATION_VERTICALALIGNMENT_CENTER = 0x2,
  226. DIRECTMANIPULATION_VERTICALALIGNMENT_BOTTOM = 0x4,
  227. DIRECTMANIPULATION_VERTICALALIGNMENT_UNLOCKCENTER = 0x8
  228. } DIRECTMANIPULATION_VERTICALALIGNMENT;
  229. DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VERTICALALIGNMENT)
  230. typedef enum DIRECTMANIPULATION_INPUT_MODE {
  231. DIRECTMANIPULATION_INPUT_MODE_AUTOMATIC = 0,
  232. DIRECTMANIPULATION_INPUT_MODE_MANUAL = 1
  233. } DIRECTMANIPULATION_INPUT_MODE;
  234. /*****************************************************************************
  235. * IDirectManipulationFrameInfoProvider interface
  236. */
  237. #ifndef __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
  238. #define __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
  239. DEFINE_GUID(IID_IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9);
  240. #if defined(__cplusplus) && !defined(CINTERFACE)
  241. MIDL_INTERFACE("fb759dba-6f4c-4c01-874e-19c8a05907f9")
  242. IDirectManipulationFrameInfoProvider : public IUnknown
  243. {
  244. virtual HRESULT STDMETHODCALLTYPE GetNextFrameInfo(
  245. ULONGLONG *time,
  246. ULONGLONG *process,
  247. ULONGLONG *composition) = 0;
  248. };
  249. #ifdef __CRT_UUID_DECL
  250. __CRT_UUID_DECL(IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9)
  251. #endif
  252. #else
  253. typedef struct IDirectManipulationFrameInfoProviderVtbl {
  254. BEGIN_INTERFACE
  255. /*** IUnknown methods ***/
  256. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  257. IDirectManipulationFrameInfoProvider *This,
  258. REFIID riid,
  259. void **ppvObject);
  260. ULONG (STDMETHODCALLTYPE *AddRef)(
  261. IDirectManipulationFrameInfoProvider *This);
  262. ULONG (STDMETHODCALLTYPE *Release)(
  263. IDirectManipulationFrameInfoProvider *This);
  264. /*** IDirectManipulationFrameInfoProvider methods ***/
  265. HRESULT (STDMETHODCALLTYPE *GetNextFrameInfo)(
  266. IDirectManipulationFrameInfoProvider *This,
  267. ULONGLONG *time,
  268. ULONGLONG *process,
  269. ULONGLONG *composition);
  270. END_INTERFACE
  271. } IDirectManipulationFrameInfoProviderVtbl;
  272. interface IDirectManipulationFrameInfoProvider {
  273. CONST_VTBL IDirectManipulationFrameInfoProviderVtbl* lpVtbl;
  274. };
  275. #ifdef COBJMACROS
  276. #ifndef WIDL_C_INLINE_WRAPPERS
  277. /*** IUnknown methods ***/
  278. #define IDirectManipulationFrameInfoProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  279. #define IDirectManipulationFrameInfoProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  280. #define IDirectManipulationFrameInfoProvider_Release(This) (This)->lpVtbl->Release(This)
  281. /*** IDirectManipulationFrameInfoProvider methods ***/
  282. #define IDirectManipulationFrameInfoProvider_GetNextFrameInfo(This,time,process,composition) (This)->lpVtbl->GetNextFrameInfo(This,time,process,composition)
  283. #else
  284. /*** IUnknown methods ***/
  285. static FORCEINLINE HRESULT IDirectManipulationFrameInfoProvider_QueryInterface(IDirectManipulationFrameInfoProvider* This,REFIID riid,void **ppvObject) {
  286. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  287. }
  288. static FORCEINLINE ULONG IDirectManipulationFrameInfoProvider_AddRef(IDirectManipulationFrameInfoProvider* This) {
  289. return This->lpVtbl->AddRef(This);
  290. }
  291. static FORCEINLINE ULONG IDirectManipulationFrameInfoProvider_Release(IDirectManipulationFrameInfoProvider* This) {
  292. return This->lpVtbl->Release(This);
  293. }
  294. /*** IDirectManipulationFrameInfoProvider methods ***/
  295. static FORCEINLINE HRESULT IDirectManipulationFrameInfoProvider_GetNextFrameInfo(IDirectManipulationFrameInfoProvider* This,ULONGLONG *time,ULONGLONG *process,ULONGLONG *composition) {
  296. return This->lpVtbl->GetNextFrameInfo(This,time,process,composition);
  297. }
  298. #endif
  299. #endif
  300. #endif
  301. #endif /* __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__ */
  302. /*****************************************************************************
  303. * IDirectManipulationManager interface
  304. */
  305. #ifndef __IDirectManipulationManager_INTERFACE_DEFINED__
  306. #define __IDirectManipulationManager_INTERFACE_DEFINED__
  307. DEFINE_GUID(IID_IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc);
  308. #if defined(__cplusplus) && !defined(CINTERFACE)
  309. MIDL_INTERFACE("fbf5d3b4-70c7-4163-9322-5a6f660d6fbc")
  310. IDirectManipulationManager : public IUnknown
  311. {
  312. virtual HRESULT STDMETHODCALLTYPE Activate(
  313. HWND window) = 0;
  314. virtual HRESULT STDMETHODCALLTYPE Deactivate(
  315. HWND window) = 0;
  316. virtual HRESULT STDMETHODCALLTYPE RegisterHitTestTarget(
  317. HWND window,
  318. HWND hittest,
  319. DIRECTMANIPULATION_HITTEST_TYPE type) = 0;
  320. virtual HRESULT STDMETHODCALLTYPE ProcessInput(
  321. const MSG *msg,
  322. WINBOOL *handled) = 0;
  323. virtual HRESULT STDMETHODCALLTYPE GetUpdateManager(
  324. REFIID riid,
  325. void **obj) = 0;
  326. virtual HRESULT STDMETHODCALLTYPE CreateViewport(
  327. IDirectManipulationFrameInfoProvider *frame,
  328. HWND window,
  329. REFIID riid,
  330. void **obj) = 0;
  331. virtual HRESULT STDMETHODCALLTYPE CreateContent(
  332. IDirectManipulationFrameInfoProvider *frame,
  333. REFCLSID clsid,
  334. REFIID riid,
  335. void **obj) = 0;
  336. };
  337. #ifdef __CRT_UUID_DECL
  338. __CRT_UUID_DECL(IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc)
  339. #endif
  340. #else
  341. typedef struct IDirectManipulationManagerVtbl {
  342. BEGIN_INTERFACE
  343. /*** IUnknown methods ***/
  344. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  345. IDirectManipulationManager *This,
  346. REFIID riid,
  347. void **ppvObject);
  348. ULONG (STDMETHODCALLTYPE *AddRef)(
  349. IDirectManipulationManager *This);
  350. ULONG (STDMETHODCALLTYPE *Release)(
  351. IDirectManipulationManager *This);
  352. /*** IDirectManipulationManager methods ***/
  353. HRESULT (STDMETHODCALLTYPE *Activate)(
  354. IDirectManipulationManager *This,
  355. HWND window);
  356. HRESULT (STDMETHODCALLTYPE *Deactivate)(
  357. IDirectManipulationManager *This,
  358. HWND window);
  359. HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
  360. IDirectManipulationManager *This,
  361. HWND window,
  362. HWND hittest,
  363. DIRECTMANIPULATION_HITTEST_TYPE type);
  364. HRESULT (STDMETHODCALLTYPE *ProcessInput)(
  365. IDirectManipulationManager *This,
  366. const MSG *msg,
  367. WINBOOL *handled);
  368. HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
  369. IDirectManipulationManager *This,
  370. REFIID riid,
  371. void **obj);
  372. HRESULT (STDMETHODCALLTYPE *CreateViewport)(
  373. IDirectManipulationManager *This,
  374. IDirectManipulationFrameInfoProvider *frame,
  375. HWND window,
  376. REFIID riid,
  377. void **obj);
  378. HRESULT (STDMETHODCALLTYPE *CreateContent)(
  379. IDirectManipulationManager *This,
  380. IDirectManipulationFrameInfoProvider *frame,
  381. REFCLSID clsid,
  382. REFIID riid,
  383. void **obj);
  384. END_INTERFACE
  385. } IDirectManipulationManagerVtbl;
  386. interface IDirectManipulationManager {
  387. CONST_VTBL IDirectManipulationManagerVtbl* lpVtbl;
  388. };
  389. #ifdef COBJMACROS
  390. #ifndef WIDL_C_INLINE_WRAPPERS
  391. /*** IUnknown methods ***/
  392. #define IDirectManipulationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  393. #define IDirectManipulationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  394. #define IDirectManipulationManager_Release(This) (This)->lpVtbl->Release(This)
  395. /*** IDirectManipulationManager methods ***/
  396. #define IDirectManipulationManager_Activate(This,window) (This)->lpVtbl->Activate(This,window)
  397. #define IDirectManipulationManager_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
  398. #define IDirectManipulationManager_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
  399. #define IDirectManipulationManager_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
  400. #define IDirectManipulationManager_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
  401. #define IDirectManipulationManager_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
  402. #define IDirectManipulationManager_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
  403. #else
  404. /*** IUnknown methods ***/
  405. static FORCEINLINE HRESULT IDirectManipulationManager_QueryInterface(IDirectManipulationManager* This,REFIID riid,void **ppvObject) {
  406. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  407. }
  408. static FORCEINLINE ULONG IDirectManipulationManager_AddRef(IDirectManipulationManager* This) {
  409. return This->lpVtbl->AddRef(This);
  410. }
  411. static FORCEINLINE ULONG IDirectManipulationManager_Release(IDirectManipulationManager* This) {
  412. return This->lpVtbl->Release(This);
  413. }
  414. /*** IDirectManipulationManager methods ***/
  415. static FORCEINLINE HRESULT IDirectManipulationManager_Activate(IDirectManipulationManager* This,HWND window) {
  416. return This->lpVtbl->Activate(This,window);
  417. }
  418. static FORCEINLINE HRESULT IDirectManipulationManager_Deactivate(IDirectManipulationManager* This,HWND window) {
  419. return This->lpVtbl->Deactivate(This,window);
  420. }
  421. static FORCEINLINE HRESULT IDirectManipulationManager_RegisterHitTestTarget(IDirectManipulationManager* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
  422. return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
  423. }
  424. static FORCEINLINE HRESULT IDirectManipulationManager_ProcessInput(IDirectManipulationManager* This,const MSG *msg,WINBOOL *handled) {
  425. return This->lpVtbl->ProcessInput(This,msg,handled);
  426. }
  427. static FORCEINLINE HRESULT IDirectManipulationManager_GetUpdateManager(IDirectManipulationManager* This,REFIID riid,void **obj) {
  428. return This->lpVtbl->GetUpdateManager(This,riid,obj);
  429. }
  430. static FORCEINLINE HRESULT IDirectManipulationManager_CreateViewport(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
  431. return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
  432. }
  433. static FORCEINLINE HRESULT IDirectManipulationManager_CreateContent(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
  434. return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
  435. }
  436. #endif
  437. #endif
  438. #endif
  439. #endif /* __IDirectManipulationManager_INTERFACE_DEFINED__ */
  440. /*****************************************************************************
  441. * IDirectManipulationContent interface
  442. */
  443. #ifndef __IDirectManipulationContent_INTERFACE_DEFINED__
  444. #define __IDirectManipulationContent_INTERFACE_DEFINED__
  445. DEFINE_GUID(IID_IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16);
  446. #if defined(__cplusplus) && !defined(CINTERFACE)
  447. MIDL_INTERFACE("b89962cb-3d89-442b-bb58-5098fa0f9f16")
  448. IDirectManipulationContent : public IUnknown
  449. {
  450. virtual HRESULT STDMETHODCALLTYPE GetContentRect(
  451. RECT *size) = 0;
  452. virtual HRESULT STDMETHODCALLTYPE SetContentRect(
  453. const RECT *size) = 0;
  454. virtual HRESULT STDMETHODCALLTYPE GetViewport(
  455. REFIID riid,
  456. void **object) = 0;
  457. virtual HRESULT STDMETHODCALLTYPE GetTag(
  458. REFIID riid,
  459. void **object,
  460. UINT32 *id) = 0;
  461. virtual HRESULT STDMETHODCALLTYPE SetTag(
  462. IUnknown *object,
  463. UINT32 id) = 0;
  464. virtual HRESULT STDMETHODCALLTYPE GetOutputTransform(
  465. float *matrix,
  466. DWORD count) = 0;
  467. virtual HRESULT STDMETHODCALLTYPE GetContentTransform(
  468. float *matrix,
  469. DWORD count) = 0;
  470. virtual HRESULT STDMETHODCALLTYPE SyncContentTransform(
  471. const float *matrix,
  472. DWORD count) = 0;
  473. };
  474. #ifdef __CRT_UUID_DECL
  475. __CRT_UUID_DECL(IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16)
  476. #endif
  477. #else
  478. typedef struct IDirectManipulationContentVtbl {
  479. BEGIN_INTERFACE
  480. /*** IUnknown methods ***/
  481. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  482. IDirectManipulationContent *This,
  483. REFIID riid,
  484. void **ppvObject);
  485. ULONG (STDMETHODCALLTYPE *AddRef)(
  486. IDirectManipulationContent *This);
  487. ULONG (STDMETHODCALLTYPE *Release)(
  488. IDirectManipulationContent *This);
  489. /*** IDirectManipulationContent methods ***/
  490. HRESULT (STDMETHODCALLTYPE *GetContentRect)(
  491. IDirectManipulationContent *This,
  492. RECT *size);
  493. HRESULT (STDMETHODCALLTYPE *SetContentRect)(
  494. IDirectManipulationContent *This,
  495. const RECT *size);
  496. HRESULT (STDMETHODCALLTYPE *GetViewport)(
  497. IDirectManipulationContent *This,
  498. REFIID riid,
  499. void **object);
  500. HRESULT (STDMETHODCALLTYPE *GetTag)(
  501. IDirectManipulationContent *This,
  502. REFIID riid,
  503. void **object,
  504. UINT32 *id);
  505. HRESULT (STDMETHODCALLTYPE *SetTag)(
  506. IDirectManipulationContent *This,
  507. IUnknown *object,
  508. UINT32 id);
  509. HRESULT (STDMETHODCALLTYPE *GetOutputTransform)(
  510. IDirectManipulationContent *This,
  511. float *matrix,
  512. DWORD count);
  513. HRESULT (STDMETHODCALLTYPE *GetContentTransform)(
  514. IDirectManipulationContent *This,
  515. float *matrix,
  516. DWORD count);
  517. HRESULT (STDMETHODCALLTYPE *SyncContentTransform)(
  518. IDirectManipulationContent *This,
  519. const float *matrix,
  520. DWORD count);
  521. END_INTERFACE
  522. } IDirectManipulationContentVtbl;
  523. interface IDirectManipulationContent {
  524. CONST_VTBL IDirectManipulationContentVtbl* lpVtbl;
  525. };
  526. #ifdef COBJMACROS
  527. #ifndef WIDL_C_INLINE_WRAPPERS
  528. /*** IUnknown methods ***/
  529. #define IDirectManipulationContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  530. #define IDirectManipulationContent_AddRef(This) (This)->lpVtbl->AddRef(This)
  531. #define IDirectManipulationContent_Release(This) (This)->lpVtbl->Release(This)
  532. /*** IDirectManipulationContent methods ***/
  533. #define IDirectManipulationContent_GetContentRect(This,size) (This)->lpVtbl->GetContentRect(This,size)
  534. #define IDirectManipulationContent_SetContentRect(This,size) (This)->lpVtbl->SetContentRect(This,size)
  535. #define IDirectManipulationContent_GetViewport(This,riid,object) (This)->lpVtbl->GetViewport(This,riid,object)
  536. #define IDirectManipulationContent_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
  537. #define IDirectManipulationContent_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
  538. #define IDirectManipulationContent_GetOutputTransform(This,matrix,count) (This)->lpVtbl->GetOutputTransform(This,matrix,count)
  539. #define IDirectManipulationContent_GetContentTransform(This,matrix,count) (This)->lpVtbl->GetContentTransform(This,matrix,count)
  540. #define IDirectManipulationContent_SyncContentTransform(This,matrix,count) (This)->lpVtbl->SyncContentTransform(This,matrix,count)
  541. #else
  542. /*** IUnknown methods ***/
  543. static FORCEINLINE HRESULT IDirectManipulationContent_QueryInterface(IDirectManipulationContent* This,REFIID riid,void **ppvObject) {
  544. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  545. }
  546. static FORCEINLINE ULONG IDirectManipulationContent_AddRef(IDirectManipulationContent* This) {
  547. return This->lpVtbl->AddRef(This);
  548. }
  549. static FORCEINLINE ULONG IDirectManipulationContent_Release(IDirectManipulationContent* This) {
  550. return This->lpVtbl->Release(This);
  551. }
  552. /*** IDirectManipulationContent methods ***/
  553. static FORCEINLINE HRESULT IDirectManipulationContent_GetContentRect(IDirectManipulationContent* This,RECT *size) {
  554. return This->lpVtbl->GetContentRect(This,size);
  555. }
  556. static FORCEINLINE HRESULT IDirectManipulationContent_SetContentRect(IDirectManipulationContent* This,const RECT *size) {
  557. return This->lpVtbl->SetContentRect(This,size);
  558. }
  559. static FORCEINLINE HRESULT IDirectManipulationContent_GetViewport(IDirectManipulationContent* This,REFIID riid,void **object) {
  560. return This->lpVtbl->GetViewport(This,riid,object);
  561. }
  562. static FORCEINLINE HRESULT IDirectManipulationContent_GetTag(IDirectManipulationContent* This,REFIID riid,void **object,UINT32 *id) {
  563. return This->lpVtbl->GetTag(This,riid,object,id);
  564. }
  565. static FORCEINLINE HRESULT IDirectManipulationContent_SetTag(IDirectManipulationContent* This,IUnknown *object,UINT32 id) {
  566. return This->lpVtbl->SetTag(This,object,id);
  567. }
  568. static FORCEINLINE HRESULT IDirectManipulationContent_GetOutputTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
  569. return This->lpVtbl->GetOutputTransform(This,matrix,count);
  570. }
  571. static FORCEINLINE HRESULT IDirectManipulationContent_GetContentTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
  572. return This->lpVtbl->GetContentTransform(This,matrix,count);
  573. }
  574. static FORCEINLINE HRESULT IDirectManipulationContent_SyncContentTransform(IDirectManipulationContent* This,const float *matrix,DWORD count) {
  575. return This->lpVtbl->SyncContentTransform(This,matrix,count);
  576. }
  577. #endif
  578. #endif
  579. #endif
  580. #endif /* __IDirectManipulationContent_INTERFACE_DEFINED__ */
  581. /*****************************************************************************
  582. * IDirectManipulationUpdateHandler interface
  583. */
  584. #ifndef __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
  585. #define __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
  586. DEFINE_GUID(IID_IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7);
  587. #if defined(__cplusplus) && !defined(CINTERFACE)
  588. MIDL_INTERFACE("790b6337-64f8-4ff5-a269-b32bc2af27a7")
  589. IDirectManipulationUpdateHandler : public IUnknown
  590. {
  591. virtual HRESULT STDMETHODCALLTYPE Update(
  592. ) = 0;
  593. };
  594. #ifdef __CRT_UUID_DECL
  595. __CRT_UUID_DECL(IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7)
  596. #endif
  597. #else
  598. typedef struct IDirectManipulationUpdateHandlerVtbl {
  599. BEGIN_INTERFACE
  600. /*** IUnknown methods ***/
  601. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  602. IDirectManipulationUpdateHandler *This,
  603. REFIID riid,
  604. void **ppvObject);
  605. ULONG (STDMETHODCALLTYPE *AddRef)(
  606. IDirectManipulationUpdateHandler *This);
  607. ULONG (STDMETHODCALLTYPE *Release)(
  608. IDirectManipulationUpdateHandler *This);
  609. /*** IDirectManipulationUpdateHandler methods ***/
  610. HRESULT (STDMETHODCALLTYPE *Update)(
  611. IDirectManipulationUpdateHandler *This);
  612. END_INTERFACE
  613. } IDirectManipulationUpdateHandlerVtbl;
  614. interface IDirectManipulationUpdateHandler {
  615. CONST_VTBL IDirectManipulationUpdateHandlerVtbl* lpVtbl;
  616. };
  617. #ifdef COBJMACROS
  618. #ifndef WIDL_C_INLINE_WRAPPERS
  619. /*** IUnknown methods ***/
  620. #define IDirectManipulationUpdateHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  621. #define IDirectManipulationUpdateHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  622. #define IDirectManipulationUpdateHandler_Release(This) (This)->lpVtbl->Release(This)
  623. /*** IDirectManipulationUpdateHandler methods ***/
  624. #define IDirectManipulationUpdateHandler_Update(This) (This)->lpVtbl->Update(This)
  625. #else
  626. /*** IUnknown methods ***/
  627. static FORCEINLINE HRESULT IDirectManipulationUpdateHandler_QueryInterface(IDirectManipulationUpdateHandler* This,REFIID riid,void **ppvObject) {
  628. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  629. }
  630. static FORCEINLINE ULONG IDirectManipulationUpdateHandler_AddRef(IDirectManipulationUpdateHandler* This) {
  631. return This->lpVtbl->AddRef(This);
  632. }
  633. static FORCEINLINE ULONG IDirectManipulationUpdateHandler_Release(IDirectManipulationUpdateHandler* This) {
  634. return This->lpVtbl->Release(This);
  635. }
  636. /*** IDirectManipulationUpdateHandler methods ***/
  637. static FORCEINLINE HRESULT IDirectManipulationUpdateHandler_Update(IDirectManipulationUpdateHandler* This) {
  638. return This->lpVtbl->Update(This);
  639. }
  640. #endif
  641. #endif
  642. #endif
  643. #endif /* __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__ */
  644. /*****************************************************************************
  645. * IDirectManipulationUpdateManager interface
  646. */
  647. #ifndef __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
  648. #define __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
  649. DEFINE_GUID(IID_IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc);
  650. #if defined(__cplusplus) && !defined(CINTERFACE)
  651. MIDL_INTERFACE("b0ae62fd-be34-46e7-9caa-d361facbb9cc")
  652. IDirectManipulationUpdateManager : public IUnknown
  653. {
  654. virtual HRESULT STDMETHODCALLTYPE RegisterWaitHandleCallback(
  655. HANDLE handle,
  656. IDirectManipulationUpdateHandler *handler,
  657. DWORD *cookie) = 0;
  658. virtual HRESULT STDMETHODCALLTYPE UnregisterWaitHandleCallback(
  659. DWORD cookie) = 0;
  660. virtual HRESULT STDMETHODCALLTYPE Update(
  661. IDirectManipulationFrameInfoProvider *provider) = 0;
  662. };
  663. #ifdef __CRT_UUID_DECL
  664. __CRT_UUID_DECL(IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc)
  665. #endif
  666. #else
  667. typedef struct IDirectManipulationUpdateManagerVtbl {
  668. BEGIN_INTERFACE
  669. /*** IUnknown methods ***/
  670. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  671. IDirectManipulationUpdateManager *This,
  672. REFIID riid,
  673. void **ppvObject);
  674. ULONG (STDMETHODCALLTYPE *AddRef)(
  675. IDirectManipulationUpdateManager *This);
  676. ULONG (STDMETHODCALLTYPE *Release)(
  677. IDirectManipulationUpdateManager *This);
  678. /*** IDirectManipulationUpdateManager methods ***/
  679. HRESULT (STDMETHODCALLTYPE *RegisterWaitHandleCallback)(
  680. IDirectManipulationUpdateManager *This,
  681. HANDLE handle,
  682. IDirectManipulationUpdateHandler *handler,
  683. DWORD *cookie);
  684. HRESULT (STDMETHODCALLTYPE *UnregisterWaitHandleCallback)(
  685. IDirectManipulationUpdateManager *This,
  686. DWORD cookie);
  687. HRESULT (STDMETHODCALLTYPE *Update)(
  688. IDirectManipulationUpdateManager *This,
  689. IDirectManipulationFrameInfoProvider *provider);
  690. END_INTERFACE
  691. } IDirectManipulationUpdateManagerVtbl;
  692. interface IDirectManipulationUpdateManager {
  693. CONST_VTBL IDirectManipulationUpdateManagerVtbl* lpVtbl;
  694. };
  695. #ifdef COBJMACROS
  696. #ifndef WIDL_C_INLINE_WRAPPERS
  697. /*** IUnknown methods ***/
  698. #define IDirectManipulationUpdateManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  699. #define IDirectManipulationUpdateManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  700. #define IDirectManipulationUpdateManager_Release(This) (This)->lpVtbl->Release(This)
  701. /*** IDirectManipulationUpdateManager methods ***/
  702. #define IDirectManipulationUpdateManager_RegisterWaitHandleCallback(This,handle,handler,cookie) (This)->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie)
  703. #define IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(This,cookie) (This)->lpVtbl->UnregisterWaitHandleCallback(This,cookie)
  704. #define IDirectManipulationUpdateManager_Update(This,provider) (This)->lpVtbl->Update(This,provider)
  705. #else
  706. /*** IUnknown methods ***/
  707. static FORCEINLINE HRESULT IDirectManipulationUpdateManager_QueryInterface(IDirectManipulationUpdateManager* This,REFIID riid,void **ppvObject) {
  708. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  709. }
  710. static FORCEINLINE ULONG IDirectManipulationUpdateManager_AddRef(IDirectManipulationUpdateManager* This) {
  711. return This->lpVtbl->AddRef(This);
  712. }
  713. static FORCEINLINE ULONG IDirectManipulationUpdateManager_Release(IDirectManipulationUpdateManager* This) {
  714. return This->lpVtbl->Release(This);
  715. }
  716. /*** IDirectManipulationUpdateManager methods ***/
  717. static FORCEINLINE HRESULT IDirectManipulationUpdateManager_RegisterWaitHandleCallback(IDirectManipulationUpdateManager* This,HANDLE handle,IDirectManipulationUpdateHandler *handler,DWORD *cookie) {
  718. return This->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie);
  719. }
  720. static FORCEINLINE HRESULT IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(IDirectManipulationUpdateManager* This,DWORD cookie) {
  721. return This->lpVtbl->UnregisterWaitHandleCallback(This,cookie);
  722. }
  723. static FORCEINLINE HRESULT IDirectManipulationUpdateManager_Update(IDirectManipulationUpdateManager* This,IDirectManipulationFrameInfoProvider *provider) {
  724. return This->lpVtbl->Update(This,provider);
  725. }
  726. #endif
  727. #endif
  728. #endif
  729. #endif /* __IDirectManipulationUpdateManager_INTERFACE_DEFINED__ */
  730. /*****************************************************************************
  731. * IDirectManipulationCompositor interface
  732. */
  733. #ifndef __IDirectManipulationCompositor_INTERFACE_DEFINED__
  734. #define __IDirectManipulationCompositor_INTERFACE_DEFINED__
  735. DEFINE_GUID(IID_IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e);
  736. #if defined(__cplusplus) && !defined(CINTERFACE)
  737. MIDL_INTERFACE("537a0825-0387-4efa-b62f-71eb1f085a7e")
  738. IDirectManipulationCompositor : public IUnknown
  739. {
  740. virtual HRESULT STDMETHODCALLTYPE AddContent(
  741. IDirectManipulationContent *content,
  742. IUnknown *device,
  743. IUnknown *parent,
  744. IUnknown *child) = 0;
  745. virtual HRESULT STDMETHODCALLTYPE RemoveContent(
  746. IDirectManipulationContent *content) = 0;
  747. virtual HRESULT STDMETHODCALLTYPE SetUpdateManager(
  748. IDirectManipulationUpdateManager *manager) = 0;
  749. virtual HRESULT STDMETHODCALLTYPE Flush(
  750. ) = 0;
  751. };
  752. #ifdef __CRT_UUID_DECL
  753. __CRT_UUID_DECL(IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e)
  754. #endif
  755. #else
  756. typedef struct IDirectManipulationCompositorVtbl {
  757. BEGIN_INTERFACE
  758. /*** IUnknown methods ***/
  759. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  760. IDirectManipulationCompositor *This,
  761. REFIID riid,
  762. void **ppvObject);
  763. ULONG (STDMETHODCALLTYPE *AddRef)(
  764. IDirectManipulationCompositor *This);
  765. ULONG (STDMETHODCALLTYPE *Release)(
  766. IDirectManipulationCompositor *This);
  767. /*** IDirectManipulationCompositor methods ***/
  768. HRESULT (STDMETHODCALLTYPE *AddContent)(
  769. IDirectManipulationCompositor *This,
  770. IDirectManipulationContent *content,
  771. IUnknown *device,
  772. IUnknown *parent,
  773. IUnknown *child);
  774. HRESULT (STDMETHODCALLTYPE *RemoveContent)(
  775. IDirectManipulationCompositor *This,
  776. IDirectManipulationContent *content);
  777. HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
  778. IDirectManipulationCompositor *This,
  779. IDirectManipulationUpdateManager *manager);
  780. HRESULT (STDMETHODCALLTYPE *Flush)(
  781. IDirectManipulationCompositor *This);
  782. END_INTERFACE
  783. } IDirectManipulationCompositorVtbl;
  784. interface IDirectManipulationCompositor {
  785. CONST_VTBL IDirectManipulationCompositorVtbl* lpVtbl;
  786. };
  787. #ifdef COBJMACROS
  788. #ifndef WIDL_C_INLINE_WRAPPERS
  789. /*** IUnknown methods ***/
  790. #define IDirectManipulationCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  791. #define IDirectManipulationCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
  792. #define IDirectManipulationCompositor_Release(This) (This)->lpVtbl->Release(This)
  793. /*** IDirectManipulationCompositor methods ***/
  794. #define IDirectManipulationCompositor_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
  795. #define IDirectManipulationCompositor_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
  796. #define IDirectManipulationCompositor_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
  797. #define IDirectManipulationCompositor_Flush(This) (This)->lpVtbl->Flush(This)
  798. #else
  799. /*** IUnknown methods ***/
  800. static FORCEINLINE HRESULT IDirectManipulationCompositor_QueryInterface(IDirectManipulationCompositor* This,REFIID riid,void **ppvObject) {
  801. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  802. }
  803. static FORCEINLINE ULONG IDirectManipulationCompositor_AddRef(IDirectManipulationCompositor* This) {
  804. return This->lpVtbl->AddRef(This);
  805. }
  806. static FORCEINLINE ULONG IDirectManipulationCompositor_Release(IDirectManipulationCompositor* This) {
  807. return This->lpVtbl->Release(This);
  808. }
  809. /*** IDirectManipulationCompositor methods ***/
  810. static FORCEINLINE HRESULT IDirectManipulationCompositor_AddContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
  811. return This->lpVtbl->AddContent(This,content,device,parent,child);
  812. }
  813. static FORCEINLINE HRESULT IDirectManipulationCompositor_RemoveContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content) {
  814. return This->lpVtbl->RemoveContent(This,content);
  815. }
  816. static FORCEINLINE HRESULT IDirectManipulationCompositor_SetUpdateManager(IDirectManipulationCompositor* This,IDirectManipulationUpdateManager *manager) {
  817. return This->lpVtbl->SetUpdateManager(This,manager);
  818. }
  819. static FORCEINLINE HRESULT IDirectManipulationCompositor_Flush(IDirectManipulationCompositor* This) {
  820. return This->lpVtbl->Flush(This);
  821. }
  822. #endif
  823. #endif
  824. #endif
  825. #endif /* __IDirectManipulationCompositor_INTERFACE_DEFINED__ */
  826. /*****************************************************************************
  827. * IDirectManipulationViewport interface
  828. */
  829. #ifndef __IDirectManipulationViewport_INTERFACE_DEFINED__
  830. #define __IDirectManipulationViewport_INTERFACE_DEFINED__
  831. DEFINE_GUID(IID_IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d);
  832. #if defined(__cplusplus) && !defined(CINTERFACE)
  833. MIDL_INTERFACE("28b85a3d-60a0-48bd-9ba1-5ce8d9ea3a6d")
  834. IDirectManipulationViewport : public IUnknown
  835. {
  836. virtual HRESULT STDMETHODCALLTYPE Enable(
  837. ) = 0;
  838. virtual HRESULT STDMETHODCALLTYPE Disable(
  839. ) = 0;
  840. virtual HRESULT STDMETHODCALLTYPE SetContact(
  841. UINT32 id) = 0;
  842. virtual HRESULT STDMETHODCALLTYPE ReleaseContact(
  843. UINT32 id) = 0;
  844. virtual HRESULT STDMETHODCALLTYPE ReleaseAllContacts(
  845. ) = 0;
  846. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  847. DIRECTMANIPULATION_STATUS *status) = 0;
  848. virtual HRESULT STDMETHODCALLTYPE GetTag(
  849. REFIID riid,
  850. void **object,
  851. UINT32 *id) = 0;
  852. virtual HRESULT STDMETHODCALLTYPE SetTag(
  853. IUnknown *object,
  854. UINT32 id) = 0;
  855. virtual HRESULT STDMETHODCALLTYPE GetViewportRect(
  856. RECT *viewport) = 0;
  857. virtual HRESULT STDMETHODCALLTYPE SetViewportRect(
  858. const RECT *viewport) = 0;
  859. virtual HRESULT STDMETHODCALLTYPE ZoomToRect(
  860. const float left,
  861. const float top,
  862. const float right,
  863. const float bottom,
  864. WINBOOL animate) = 0;
  865. virtual HRESULT STDMETHODCALLTYPE SetViewportTransform(
  866. const float *matrix,
  867. DWORD count) = 0;
  868. virtual HRESULT STDMETHODCALLTYPE SyncDisplayTransform(
  869. const float *matrix,
  870. DWORD count) = 0;
  871. virtual HRESULT STDMETHODCALLTYPE GetPrimaryContent(
  872. REFIID riid,
  873. void **object) = 0;
  874. virtual HRESULT STDMETHODCALLTYPE AddContent(
  875. IDirectManipulationContent *content) = 0;
  876. virtual HRESULT STDMETHODCALLTYPE RemoveContent(
  877. IDirectManipulationContent *content) = 0;
  878. virtual HRESULT STDMETHODCALLTYPE SetViewportOptions(
  879. DIRECTMANIPULATION_VIEWPORT_OPTIONS options) = 0;
  880. virtual HRESULT STDMETHODCALLTYPE AddConfiguration(
  881. DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
  882. virtual HRESULT STDMETHODCALLTYPE RemoveConfiguration(
  883. DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
  884. virtual HRESULT STDMETHODCALLTYPE ActivateConfiguration(
  885. DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
  886. virtual HRESULT STDMETHODCALLTYPE SetManualGesture(
  887. DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) = 0;
  888. virtual HRESULT STDMETHODCALLTYPE SetChaining(
  889. DIRECTMANIPULATION_MOTION_TYPES enabledTypes) = 0;
  890. virtual HRESULT STDMETHODCALLTYPE AddEventHandler(
  891. HWND window,
  892. IDirectManipulationViewportEventHandler *eventHandler,
  893. DWORD *cookie) = 0;
  894. virtual HRESULT STDMETHODCALLTYPE RemoveEventHandler(
  895. DWORD cookie) = 0;
  896. virtual HRESULT STDMETHODCALLTYPE SetInputMode(
  897. DIRECTMANIPULATION_INPUT_MODE mode) = 0;
  898. virtual HRESULT STDMETHODCALLTYPE SetUpdateMode(
  899. DIRECTMANIPULATION_INPUT_MODE mode) = 0;
  900. virtual HRESULT STDMETHODCALLTYPE Stop(
  901. ) = 0;
  902. virtual HRESULT STDMETHODCALLTYPE Abandon(
  903. ) = 0;
  904. };
  905. #ifdef __CRT_UUID_DECL
  906. __CRT_UUID_DECL(IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d)
  907. #endif
  908. #else
  909. typedef struct IDirectManipulationViewportVtbl {
  910. BEGIN_INTERFACE
  911. /*** IUnknown methods ***/
  912. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  913. IDirectManipulationViewport *This,
  914. REFIID riid,
  915. void **ppvObject);
  916. ULONG (STDMETHODCALLTYPE *AddRef)(
  917. IDirectManipulationViewport *This);
  918. ULONG (STDMETHODCALLTYPE *Release)(
  919. IDirectManipulationViewport *This);
  920. /*** IDirectManipulationViewport methods ***/
  921. HRESULT (STDMETHODCALLTYPE *Enable)(
  922. IDirectManipulationViewport *This);
  923. HRESULT (STDMETHODCALLTYPE *Disable)(
  924. IDirectManipulationViewport *This);
  925. HRESULT (STDMETHODCALLTYPE *SetContact)(
  926. IDirectManipulationViewport *This,
  927. UINT32 id);
  928. HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
  929. IDirectManipulationViewport *This,
  930. UINT32 id);
  931. HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
  932. IDirectManipulationViewport *This);
  933. HRESULT (STDMETHODCALLTYPE *GetStatus)(
  934. IDirectManipulationViewport *This,
  935. DIRECTMANIPULATION_STATUS *status);
  936. HRESULT (STDMETHODCALLTYPE *GetTag)(
  937. IDirectManipulationViewport *This,
  938. REFIID riid,
  939. void **object,
  940. UINT32 *id);
  941. HRESULT (STDMETHODCALLTYPE *SetTag)(
  942. IDirectManipulationViewport *This,
  943. IUnknown *object,
  944. UINT32 id);
  945. HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
  946. IDirectManipulationViewport *This,
  947. RECT *viewport);
  948. HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
  949. IDirectManipulationViewport *This,
  950. const RECT *viewport);
  951. HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
  952. IDirectManipulationViewport *This,
  953. const float left,
  954. const float top,
  955. const float right,
  956. const float bottom,
  957. WINBOOL animate);
  958. HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
  959. IDirectManipulationViewport *This,
  960. const float *matrix,
  961. DWORD count);
  962. HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
  963. IDirectManipulationViewport *This,
  964. const float *matrix,
  965. DWORD count);
  966. HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
  967. IDirectManipulationViewport *This,
  968. REFIID riid,
  969. void **object);
  970. HRESULT (STDMETHODCALLTYPE *AddContent)(
  971. IDirectManipulationViewport *This,
  972. IDirectManipulationContent *content);
  973. HRESULT (STDMETHODCALLTYPE *RemoveContent)(
  974. IDirectManipulationViewport *This,
  975. IDirectManipulationContent *content);
  976. HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
  977. IDirectManipulationViewport *This,
  978. DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
  979. HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
  980. IDirectManipulationViewport *This,
  981. DIRECTMANIPULATION_CONFIGURATION configuration);
  982. HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
  983. IDirectManipulationViewport *This,
  984. DIRECTMANIPULATION_CONFIGURATION configuration);
  985. HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
  986. IDirectManipulationViewport *This,
  987. DIRECTMANIPULATION_CONFIGURATION configuration);
  988. HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
  989. IDirectManipulationViewport *This,
  990. DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
  991. HRESULT (STDMETHODCALLTYPE *SetChaining)(
  992. IDirectManipulationViewport *This,
  993. DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
  994. HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
  995. IDirectManipulationViewport *This,
  996. HWND window,
  997. IDirectManipulationViewportEventHandler *eventHandler,
  998. DWORD *cookie);
  999. HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
  1000. IDirectManipulationViewport *This,
  1001. DWORD cookie);
  1002. HRESULT (STDMETHODCALLTYPE *SetInputMode)(
  1003. IDirectManipulationViewport *This,
  1004. DIRECTMANIPULATION_INPUT_MODE mode);
  1005. HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
  1006. IDirectManipulationViewport *This,
  1007. DIRECTMANIPULATION_INPUT_MODE mode);
  1008. HRESULT (STDMETHODCALLTYPE *Stop)(
  1009. IDirectManipulationViewport *This);
  1010. HRESULT (STDMETHODCALLTYPE *Abandon)(
  1011. IDirectManipulationViewport *This);
  1012. END_INTERFACE
  1013. } IDirectManipulationViewportVtbl;
  1014. interface IDirectManipulationViewport {
  1015. CONST_VTBL IDirectManipulationViewportVtbl* lpVtbl;
  1016. };
  1017. #ifdef COBJMACROS
  1018. #ifndef WIDL_C_INLINE_WRAPPERS
  1019. /*** IUnknown methods ***/
  1020. #define IDirectManipulationViewport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1021. #define IDirectManipulationViewport_AddRef(This) (This)->lpVtbl->AddRef(This)
  1022. #define IDirectManipulationViewport_Release(This) (This)->lpVtbl->Release(This)
  1023. /*** IDirectManipulationViewport methods ***/
  1024. #define IDirectManipulationViewport_Enable(This) (This)->lpVtbl->Enable(This)
  1025. #define IDirectManipulationViewport_Disable(This) (This)->lpVtbl->Disable(This)
  1026. #define IDirectManipulationViewport_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
  1027. #define IDirectManipulationViewport_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
  1028. #define IDirectManipulationViewport_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
  1029. #define IDirectManipulationViewport_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
  1030. #define IDirectManipulationViewport_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
  1031. #define IDirectManipulationViewport_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
  1032. #define IDirectManipulationViewport_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
  1033. #define IDirectManipulationViewport_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
  1034. #define IDirectManipulationViewport_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
  1035. #define IDirectManipulationViewport_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
  1036. #define IDirectManipulationViewport_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
  1037. #define IDirectManipulationViewport_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
  1038. #define IDirectManipulationViewport_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
  1039. #define IDirectManipulationViewport_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
  1040. #define IDirectManipulationViewport_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
  1041. #define IDirectManipulationViewport_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
  1042. #define IDirectManipulationViewport_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
  1043. #define IDirectManipulationViewport_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
  1044. #define IDirectManipulationViewport_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
  1045. #define IDirectManipulationViewport_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
  1046. #define IDirectManipulationViewport_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
  1047. #define IDirectManipulationViewport_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
  1048. #define IDirectManipulationViewport_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
  1049. #define IDirectManipulationViewport_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
  1050. #define IDirectManipulationViewport_Stop(This) (This)->lpVtbl->Stop(This)
  1051. #define IDirectManipulationViewport_Abandon(This) (This)->lpVtbl->Abandon(This)
  1052. #else
  1053. /*** IUnknown methods ***/
  1054. static FORCEINLINE HRESULT IDirectManipulationViewport_QueryInterface(IDirectManipulationViewport* This,REFIID riid,void **ppvObject) {
  1055. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1056. }
  1057. static FORCEINLINE ULONG IDirectManipulationViewport_AddRef(IDirectManipulationViewport* This) {
  1058. return This->lpVtbl->AddRef(This);
  1059. }
  1060. static FORCEINLINE ULONG IDirectManipulationViewport_Release(IDirectManipulationViewport* This) {
  1061. return This->lpVtbl->Release(This);
  1062. }
  1063. /*** IDirectManipulationViewport methods ***/
  1064. static FORCEINLINE HRESULT IDirectManipulationViewport_Enable(IDirectManipulationViewport* This) {
  1065. return This->lpVtbl->Enable(This);
  1066. }
  1067. static FORCEINLINE HRESULT IDirectManipulationViewport_Disable(IDirectManipulationViewport* This) {
  1068. return This->lpVtbl->Disable(This);
  1069. }
  1070. static FORCEINLINE HRESULT IDirectManipulationViewport_SetContact(IDirectManipulationViewport* This,UINT32 id) {
  1071. return This->lpVtbl->SetContact(This,id);
  1072. }
  1073. static FORCEINLINE HRESULT IDirectManipulationViewport_ReleaseContact(IDirectManipulationViewport* This,UINT32 id) {
  1074. return This->lpVtbl->ReleaseContact(This,id);
  1075. }
  1076. static FORCEINLINE HRESULT IDirectManipulationViewport_ReleaseAllContacts(IDirectManipulationViewport* This) {
  1077. return This->lpVtbl->ReleaseAllContacts(This);
  1078. }
  1079. static FORCEINLINE HRESULT IDirectManipulationViewport_GetStatus(IDirectManipulationViewport* This,DIRECTMANIPULATION_STATUS *status) {
  1080. return This->lpVtbl->GetStatus(This,status);
  1081. }
  1082. static FORCEINLINE HRESULT IDirectManipulationViewport_GetTag(IDirectManipulationViewport* This,REFIID riid,void **object,UINT32 *id) {
  1083. return This->lpVtbl->GetTag(This,riid,object,id);
  1084. }
  1085. static FORCEINLINE HRESULT IDirectManipulationViewport_SetTag(IDirectManipulationViewport* This,IUnknown *object,UINT32 id) {
  1086. return This->lpVtbl->SetTag(This,object,id);
  1087. }
  1088. static FORCEINLINE HRESULT IDirectManipulationViewport_GetViewportRect(IDirectManipulationViewport* This,RECT *viewport) {
  1089. return This->lpVtbl->GetViewportRect(This,viewport);
  1090. }
  1091. static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportRect(IDirectManipulationViewport* This,const RECT *viewport) {
  1092. return This->lpVtbl->SetViewportRect(This,viewport);
  1093. }
  1094. static FORCEINLINE HRESULT IDirectManipulationViewport_ZoomToRect(IDirectManipulationViewport* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
  1095. return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
  1096. }
  1097. static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
  1098. return This->lpVtbl->SetViewportTransform(This,matrix,count);
  1099. }
  1100. static FORCEINLINE HRESULT IDirectManipulationViewport_SyncDisplayTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
  1101. return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
  1102. }
  1103. static FORCEINLINE HRESULT IDirectManipulationViewport_GetPrimaryContent(IDirectManipulationViewport* This,REFIID riid,void **object) {
  1104. return This->lpVtbl->GetPrimaryContent(This,riid,object);
  1105. }
  1106. static FORCEINLINE HRESULT IDirectManipulationViewport_AddContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
  1107. return This->lpVtbl->AddContent(This,content);
  1108. }
  1109. static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
  1110. return This->lpVtbl->RemoveContent(This,content);
  1111. }
  1112. static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportOptions(IDirectManipulationViewport* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
  1113. return This->lpVtbl->SetViewportOptions(This,options);
  1114. }
  1115. static FORCEINLINE HRESULT IDirectManipulationViewport_AddConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1116. return This->lpVtbl->AddConfiguration(This,configuration);
  1117. }
  1118. static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1119. return This->lpVtbl->RemoveConfiguration(This,configuration);
  1120. }
  1121. static FORCEINLINE HRESULT IDirectManipulationViewport_ActivateConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1122. return This->lpVtbl->ActivateConfiguration(This,configuration);
  1123. }
  1124. static FORCEINLINE HRESULT IDirectManipulationViewport_SetManualGesture(IDirectManipulationViewport* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
  1125. return This->lpVtbl->SetManualGesture(This,configuration);
  1126. }
  1127. static FORCEINLINE HRESULT IDirectManipulationViewport_SetChaining(IDirectManipulationViewport* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
  1128. return This->lpVtbl->SetChaining(This,enabledTypes);
  1129. }
  1130. static FORCEINLINE HRESULT IDirectManipulationViewport_AddEventHandler(IDirectManipulationViewport* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
  1131. return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
  1132. }
  1133. static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveEventHandler(IDirectManipulationViewport* This,DWORD cookie) {
  1134. return This->lpVtbl->RemoveEventHandler(This,cookie);
  1135. }
  1136. static FORCEINLINE HRESULT IDirectManipulationViewport_SetInputMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
  1137. return This->lpVtbl->SetInputMode(This,mode);
  1138. }
  1139. static FORCEINLINE HRESULT IDirectManipulationViewport_SetUpdateMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
  1140. return This->lpVtbl->SetUpdateMode(This,mode);
  1141. }
  1142. static FORCEINLINE HRESULT IDirectManipulationViewport_Stop(IDirectManipulationViewport* This) {
  1143. return This->lpVtbl->Stop(This);
  1144. }
  1145. static FORCEINLINE HRESULT IDirectManipulationViewport_Abandon(IDirectManipulationViewport* This) {
  1146. return This->lpVtbl->Abandon(This);
  1147. }
  1148. #endif
  1149. #endif
  1150. #endif
  1151. #endif /* __IDirectManipulationViewport_INTERFACE_DEFINED__ */
  1152. /*****************************************************************************
  1153. * IDirectManipulationViewport2 interface
  1154. */
  1155. #ifndef __IDirectManipulationViewport2_INTERFACE_DEFINED__
  1156. #define __IDirectManipulationViewport2_INTERFACE_DEFINED__
  1157. DEFINE_GUID(IID_IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a);
  1158. #if defined(__cplusplus) && !defined(CINTERFACE)
  1159. MIDL_INTERFACE("923ccaac-61e1-4385-b726-017af189882a")
  1160. IDirectManipulationViewport2 : public IDirectManipulationViewport
  1161. {
  1162. virtual HRESULT STDMETHODCALLTYPE AddBehavior(
  1163. IUnknown *behavior,
  1164. DWORD *cookie) = 0;
  1165. virtual HRESULT STDMETHODCALLTYPE RemoveBehavior(
  1166. DWORD cookie) = 0;
  1167. virtual HRESULT STDMETHODCALLTYPE RemoveAllBehaviors(
  1168. ) = 0;
  1169. };
  1170. #ifdef __CRT_UUID_DECL
  1171. __CRT_UUID_DECL(IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a)
  1172. #endif
  1173. #else
  1174. typedef struct IDirectManipulationViewport2Vtbl {
  1175. BEGIN_INTERFACE
  1176. /*** IUnknown methods ***/
  1177. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1178. IDirectManipulationViewport2 *This,
  1179. REFIID riid,
  1180. void **ppvObject);
  1181. ULONG (STDMETHODCALLTYPE *AddRef)(
  1182. IDirectManipulationViewport2 *This);
  1183. ULONG (STDMETHODCALLTYPE *Release)(
  1184. IDirectManipulationViewport2 *This);
  1185. /*** IDirectManipulationViewport methods ***/
  1186. HRESULT (STDMETHODCALLTYPE *Enable)(
  1187. IDirectManipulationViewport2 *This);
  1188. HRESULT (STDMETHODCALLTYPE *Disable)(
  1189. IDirectManipulationViewport2 *This);
  1190. HRESULT (STDMETHODCALLTYPE *SetContact)(
  1191. IDirectManipulationViewport2 *This,
  1192. UINT32 id);
  1193. HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
  1194. IDirectManipulationViewport2 *This,
  1195. UINT32 id);
  1196. HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
  1197. IDirectManipulationViewport2 *This);
  1198. HRESULT (STDMETHODCALLTYPE *GetStatus)(
  1199. IDirectManipulationViewport2 *This,
  1200. DIRECTMANIPULATION_STATUS *status);
  1201. HRESULT (STDMETHODCALLTYPE *GetTag)(
  1202. IDirectManipulationViewport2 *This,
  1203. REFIID riid,
  1204. void **object,
  1205. UINT32 *id);
  1206. HRESULT (STDMETHODCALLTYPE *SetTag)(
  1207. IDirectManipulationViewport2 *This,
  1208. IUnknown *object,
  1209. UINT32 id);
  1210. HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
  1211. IDirectManipulationViewport2 *This,
  1212. RECT *viewport);
  1213. HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
  1214. IDirectManipulationViewport2 *This,
  1215. const RECT *viewport);
  1216. HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
  1217. IDirectManipulationViewport2 *This,
  1218. const float left,
  1219. const float top,
  1220. const float right,
  1221. const float bottom,
  1222. WINBOOL animate);
  1223. HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
  1224. IDirectManipulationViewport2 *This,
  1225. const float *matrix,
  1226. DWORD count);
  1227. HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
  1228. IDirectManipulationViewport2 *This,
  1229. const float *matrix,
  1230. DWORD count);
  1231. HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
  1232. IDirectManipulationViewport2 *This,
  1233. REFIID riid,
  1234. void **object);
  1235. HRESULT (STDMETHODCALLTYPE *AddContent)(
  1236. IDirectManipulationViewport2 *This,
  1237. IDirectManipulationContent *content);
  1238. HRESULT (STDMETHODCALLTYPE *RemoveContent)(
  1239. IDirectManipulationViewport2 *This,
  1240. IDirectManipulationContent *content);
  1241. HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
  1242. IDirectManipulationViewport2 *This,
  1243. DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
  1244. HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
  1245. IDirectManipulationViewport2 *This,
  1246. DIRECTMANIPULATION_CONFIGURATION configuration);
  1247. HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
  1248. IDirectManipulationViewport2 *This,
  1249. DIRECTMANIPULATION_CONFIGURATION configuration);
  1250. HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
  1251. IDirectManipulationViewport2 *This,
  1252. DIRECTMANIPULATION_CONFIGURATION configuration);
  1253. HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
  1254. IDirectManipulationViewport2 *This,
  1255. DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
  1256. HRESULT (STDMETHODCALLTYPE *SetChaining)(
  1257. IDirectManipulationViewport2 *This,
  1258. DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
  1259. HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
  1260. IDirectManipulationViewport2 *This,
  1261. HWND window,
  1262. IDirectManipulationViewportEventHandler *eventHandler,
  1263. DWORD *cookie);
  1264. HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
  1265. IDirectManipulationViewport2 *This,
  1266. DWORD cookie);
  1267. HRESULT (STDMETHODCALLTYPE *SetInputMode)(
  1268. IDirectManipulationViewport2 *This,
  1269. DIRECTMANIPULATION_INPUT_MODE mode);
  1270. HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
  1271. IDirectManipulationViewport2 *This,
  1272. DIRECTMANIPULATION_INPUT_MODE mode);
  1273. HRESULT (STDMETHODCALLTYPE *Stop)(
  1274. IDirectManipulationViewport2 *This);
  1275. HRESULT (STDMETHODCALLTYPE *Abandon)(
  1276. IDirectManipulationViewport2 *This);
  1277. /*** IDirectManipulationViewport2 methods ***/
  1278. HRESULT (STDMETHODCALLTYPE *AddBehavior)(
  1279. IDirectManipulationViewport2 *This,
  1280. IUnknown *behavior,
  1281. DWORD *cookie);
  1282. HRESULT (STDMETHODCALLTYPE *RemoveBehavior)(
  1283. IDirectManipulationViewport2 *This,
  1284. DWORD cookie);
  1285. HRESULT (STDMETHODCALLTYPE *RemoveAllBehaviors)(
  1286. IDirectManipulationViewport2 *This);
  1287. END_INTERFACE
  1288. } IDirectManipulationViewport2Vtbl;
  1289. interface IDirectManipulationViewport2 {
  1290. CONST_VTBL IDirectManipulationViewport2Vtbl* lpVtbl;
  1291. };
  1292. #ifdef COBJMACROS
  1293. #ifndef WIDL_C_INLINE_WRAPPERS
  1294. /*** IUnknown methods ***/
  1295. #define IDirectManipulationViewport2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1296. #define IDirectManipulationViewport2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1297. #define IDirectManipulationViewport2_Release(This) (This)->lpVtbl->Release(This)
  1298. /*** IDirectManipulationViewport methods ***/
  1299. #define IDirectManipulationViewport2_Enable(This) (This)->lpVtbl->Enable(This)
  1300. #define IDirectManipulationViewport2_Disable(This) (This)->lpVtbl->Disable(This)
  1301. #define IDirectManipulationViewport2_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
  1302. #define IDirectManipulationViewport2_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
  1303. #define IDirectManipulationViewport2_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
  1304. #define IDirectManipulationViewport2_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
  1305. #define IDirectManipulationViewport2_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
  1306. #define IDirectManipulationViewport2_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
  1307. #define IDirectManipulationViewport2_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
  1308. #define IDirectManipulationViewport2_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
  1309. #define IDirectManipulationViewport2_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
  1310. #define IDirectManipulationViewport2_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
  1311. #define IDirectManipulationViewport2_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
  1312. #define IDirectManipulationViewport2_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
  1313. #define IDirectManipulationViewport2_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
  1314. #define IDirectManipulationViewport2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
  1315. #define IDirectManipulationViewport2_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
  1316. #define IDirectManipulationViewport2_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
  1317. #define IDirectManipulationViewport2_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
  1318. #define IDirectManipulationViewport2_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
  1319. #define IDirectManipulationViewport2_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
  1320. #define IDirectManipulationViewport2_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
  1321. #define IDirectManipulationViewport2_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
  1322. #define IDirectManipulationViewport2_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
  1323. #define IDirectManipulationViewport2_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
  1324. #define IDirectManipulationViewport2_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
  1325. #define IDirectManipulationViewport2_Stop(This) (This)->lpVtbl->Stop(This)
  1326. #define IDirectManipulationViewport2_Abandon(This) (This)->lpVtbl->Abandon(This)
  1327. /*** IDirectManipulationViewport2 methods ***/
  1328. #define IDirectManipulationViewport2_AddBehavior(This,behavior,cookie) (This)->lpVtbl->AddBehavior(This,behavior,cookie)
  1329. #define IDirectManipulationViewport2_RemoveBehavior(This,cookie) (This)->lpVtbl->RemoveBehavior(This,cookie)
  1330. #define IDirectManipulationViewport2_RemoveAllBehaviors(This) (This)->lpVtbl->RemoveAllBehaviors(This)
  1331. #else
  1332. /*** IUnknown methods ***/
  1333. static FORCEINLINE HRESULT IDirectManipulationViewport2_QueryInterface(IDirectManipulationViewport2* This,REFIID riid,void **ppvObject) {
  1334. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1335. }
  1336. static FORCEINLINE ULONG IDirectManipulationViewport2_AddRef(IDirectManipulationViewport2* This) {
  1337. return This->lpVtbl->AddRef(This);
  1338. }
  1339. static FORCEINLINE ULONG IDirectManipulationViewport2_Release(IDirectManipulationViewport2* This) {
  1340. return This->lpVtbl->Release(This);
  1341. }
  1342. /*** IDirectManipulationViewport methods ***/
  1343. static FORCEINLINE HRESULT IDirectManipulationViewport2_Enable(IDirectManipulationViewport2* This) {
  1344. return This->lpVtbl->Enable(This);
  1345. }
  1346. static FORCEINLINE HRESULT IDirectManipulationViewport2_Disable(IDirectManipulationViewport2* This) {
  1347. return This->lpVtbl->Disable(This);
  1348. }
  1349. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetContact(IDirectManipulationViewport2* This,UINT32 id) {
  1350. return This->lpVtbl->SetContact(This,id);
  1351. }
  1352. static FORCEINLINE HRESULT IDirectManipulationViewport2_ReleaseContact(IDirectManipulationViewport2* This,UINT32 id) {
  1353. return This->lpVtbl->ReleaseContact(This,id);
  1354. }
  1355. static FORCEINLINE HRESULT IDirectManipulationViewport2_ReleaseAllContacts(IDirectManipulationViewport2* This) {
  1356. return This->lpVtbl->ReleaseAllContacts(This);
  1357. }
  1358. static FORCEINLINE HRESULT IDirectManipulationViewport2_GetStatus(IDirectManipulationViewport2* This,DIRECTMANIPULATION_STATUS *status) {
  1359. return This->lpVtbl->GetStatus(This,status);
  1360. }
  1361. static FORCEINLINE HRESULT IDirectManipulationViewport2_GetTag(IDirectManipulationViewport2* This,REFIID riid,void **object,UINT32 *id) {
  1362. return This->lpVtbl->GetTag(This,riid,object,id);
  1363. }
  1364. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetTag(IDirectManipulationViewport2* This,IUnknown *object,UINT32 id) {
  1365. return This->lpVtbl->SetTag(This,object,id);
  1366. }
  1367. static FORCEINLINE HRESULT IDirectManipulationViewport2_GetViewportRect(IDirectManipulationViewport2* This,RECT *viewport) {
  1368. return This->lpVtbl->GetViewportRect(This,viewport);
  1369. }
  1370. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportRect(IDirectManipulationViewport2* This,const RECT *viewport) {
  1371. return This->lpVtbl->SetViewportRect(This,viewport);
  1372. }
  1373. static FORCEINLINE HRESULT IDirectManipulationViewport2_ZoomToRect(IDirectManipulationViewport2* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
  1374. return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
  1375. }
  1376. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
  1377. return This->lpVtbl->SetViewportTransform(This,matrix,count);
  1378. }
  1379. static FORCEINLINE HRESULT IDirectManipulationViewport2_SyncDisplayTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
  1380. return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
  1381. }
  1382. static FORCEINLINE HRESULT IDirectManipulationViewport2_GetPrimaryContent(IDirectManipulationViewport2* This,REFIID riid,void **object) {
  1383. return This->lpVtbl->GetPrimaryContent(This,riid,object);
  1384. }
  1385. static FORCEINLINE HRESULT IDirectManipulationViewport2_AddContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
  1386. return This->lpVtbl->AddContent(This,content);
  1387. }
  1388. static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
  1389. return This->lpVtbl->RemoveContent(This,content);
  1390. }
  1391. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportOptions(IDirectManipulationViewport2* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
  1392. return This->lpVtbl->SetViewportOptions(This,options);
  1393. }
  1394. static FORCEINLINE HRESULT IDirectManipulationViewport2_AddConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1395. return This->lpVtbl->AddConfiguration(This,configuration);
  1396. }
  1397. static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1398. return This->lpVtbl->RemoveConfiguration(This,configuration);
  1399. }
  1400. static FORCEINLINE HRESULT IDirectManipulationViewport2_ActivateConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
  1401. return This->lpVtbl->ActivateConfiguration(This,configuration);
  1402. }
  1403. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetManualGesture(IDirectManipulationViewport2* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
  1404. return This->lpVtbl->SetManualGesture(This,configuration);
  1405. }
  1406. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetChaining(IDirectManipulationViewport2* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
  1407. return This->lpVtbl->SetChaining(This,enabledTypes);
  1408. }
  1409. static FORCEINLINE HRESULT IDirectManipulationViewport2_AddEventHandler(IDirectManipulationViewport2* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
  1410. return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
  1411. }
  1412. static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveEventHandler(IDirectManipulationViewport2* This,DWORD cookie) {
  1413. return This->lpVtbl->RemoveEventHandler(This,cookie);
  1414. }
  1415. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetInputMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
  1416. return This->lpVtbl->SetInputMode(This,mode);
  1417. }
  1418. static FORCEINLINE HRESULT IDirectManipulationViewport2_SetUpdateMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
  1419. return This->lpVtbl->SetUpdateMode(This,mode);
  1420. }
  1421. static FORCEINLINE HRESULT IDirectManipulationViewport2_Stop(IDirectManipulationViewport2* This) {
  1422. return This->lpVtbl->Stop(This);
  1423. }
  1424. static FORCEINLINE HRESULT IDirectManipulationViewport2_Abandon(IDirectManipulationViewport2* This) {
  1425. return This->lpVtbl->Abandon(This);
  1426. }
  1427. /*** IDirectManipulationViewport2 methods ***/
  1428. static FORCEINLINE HRESULT IDirectManipulationViewport2_AddBehavior(IDirectManipulationViewport2* This,IUnknown *behavior,DWORD *cookie) {
  1429. return This->lpVtbl->AddBehavior(This,behavior,cookie);
  1430. }
  1431. static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveBehavior(IDirectManipulationViewport2* This,DWORD cookie) {
  1432. return This->lpVtbl->RemoveBehavior(This,cookie);
  1433. }
  1434. static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveAllBehaviors(IDirectManipulationViewport2* This) {
  1435. return This->lpVtbl->RemoveAllBehaviors(This);
  1436. }
  1437. #endif
  1438. #endif
  1439. #endif
  1440. #endif /* __IDirectManipulationViewport2_INTERFACE_DEFINED__ */
  1441. /*****************************************************************************
  1442. * IDirectManipulationViewportEventHandler interface
  1443. */
  1444. #ifndef __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
  1445. #define __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
  1446. DEFINE_GUID(IID_IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d);
  1447. #if defined(__cplusplus) && !defined(CINTERFACE)
  1448. MIDL_INTERFACE("952121da-d69f-45f9-b0f9-f23944321a6d")
  1449. IDirectManipulationViewportEventHandler : public IUnknown
  1450. {
  1451. virtual HRESULT STDMETHODCALLTYPE OnViewportStatusChanged(
  1452. IDirectManipulationViewport *viewport,
  1453. DIRECTMANIPULATION_STATUS current,
  1454. DIRECTMANIPULATION_STATUS previous) = 0;
  1455. virtual HRESULT STDMETHODCALLTYPE OnViewportUpdated(
  1456. IDirectManipulationViewport *viewport) = 0;
  1457. virtual HRESULT STDMETHODCALLTYPE OnContentUpdated(
  1458. IDirectManipulationViewport *viewport,
  1459. IDirectManipulationContent *content) = 0;
  1460. };
  1461. #ifdef __CRT_UUID_DECL
  1462. __CRT_UUID_DECL(IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d)
  1463. #endif
  1464. #else
  1465. typedef struct IDirectManipulationViewportEventHandlerVtbl {
  1466. BEGIN_INTERFACE
  1467. /*** IUnknown methods ***/
  1468. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1469. IDirectManipulationViewportEventHandler *This,
  1470. REFIID riid,
  1471. void **ppvObject);
  1472. ULONG (STDMETHODCALLTYPE *AddRef)(
  1473. IDirectManipulationViewportEventHandler *This);
  1474. ULONG (STDMETHODCALLTYPE *Release)(
  1475. IDirectManipulationViewportEventHandler *This);
  1476. /*** IDirectManipulationViewportEventHandler methods ***/
  1477. HRESULT (STDMETHODCALLTYPE *OnViewportStatusChanged)(
  1478. IDirectManipulationViewportEventHandler *This,
  1479. IDirectManipulationViewport *viewport,
  1480. DIRECTMANIPULATION_STATUS current,
  1481. DIRECTMANIPULATION_STATUS previous);
  1482. HRESULT (STDMETHODCALLTYPE *OnViewportUpdated)(
  1483. IDirectManipulationViewportEventHandler *This,
  1484. IDirectManipulationViewport *viewport);
  1485. HRESULT (STDMETHODCALLTYPE *OnContentUpdated)(
  1486. IDirectManipulationViewportEventHandler *This,
  1487. IDirectManipulationViewport *viewport,
  1488. IDirectManipulationContent *content);
  1489. END_INTERFACE
  1490. } IDirectManipulationViewportEventHandlerVtbl;
  1491. interface IDirectManipulationViewportEventHandler {
  1492. CONST_VTBL IDirectManipulationViewportEventHandlerVtbl* lpVtbl;
  1493. };
  1494. #ifdef COBJMACROS
  1495. #ifndef WIDL_C_INLINE_WRAPPERS
  1496. /*** IUnknown methods ***/
  1497. #define IDirectManipulationViewportEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1498. #define IDirectManipulationViewportEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  1499. #define IDirectManipulationViewportEventHandler_Release(This) (This)->lpVtbl->Release(This)
  1500. /*** IDirectManipulationViewportEventHandler methods ***/
  1501. #define IDirectManipulationViewportEventHandler_OnViewportStatusChanged(This,viewport,current,previous) (This)->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous)
  1502. #define IDirectManipulationViewportEventHandler_OnViewportUpdated(This,viewport) (This)->lpVtbl->OnViewportUpdated(This,viewport)
  1503. #define IDirectManipulationViewportEventHandler_OnContentUpdated(This,viewport,content) (This)->lpVtbl->OnContentUpdated(This,viewport,content)
  1504. #else
  1505. /*** IUnknown methods ***/
  1506. static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_QueryInterface(IDirectManipulationViewportEventHandler* This,REFIID riid,void **ppvObject) {
  1507. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1508. }
  1509. static FORCEINLINE ULONG IDirectManipulationViewportEventHandler_AddRef(IDirectManipulationViewportEventHandler* This) {
  1510. return This->lpVtbl->AddRef(This);
  1511. }
  1512. static FORCEINLINE ULONG IDirectManipulationViewportEventHandler_Release(IDirectManipulationViewportEventHandler* This) {
  1513. return This->lpVtbl->Release(This);
  1514. }
  1515. /*** IDirectManipulationViewportEventHandler methods ***/
  1516. static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnViewportStatusChanged(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,DIRECTMANIPULATION_STATUS current,DIRECTMANIPULATION_STATUS previous) {
  1517. return This->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous);
  1518. }
  1519. static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnViewportUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport) {
  1520. return This->lpVtbl->OnViewportUpdated(This,viewport);
  1521. }
  1522. static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnContentUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,IDirectManipulationContent *content) {
  1523. return This->lpVtbl->OnContentUpdated(This,viewport,content);
  1524. }
  1525. #endif
  1526. #endif
  1527. #endif
  1528. #endif /* __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__ */
  1529. /*****************************************************************************
  1530. * IDirectManipulationManager2 interface
  1531. */
  1532. #ifndef __IDirectManipulationManager2_INTERFACE_DEFINED__
  1533. #define __IDirectManipulationManager2_INTERFACE_DEFINED__
  1534. DEFINE_GUID(IID_IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e);
  1535. #if defined(__cplusplus) && !defined(CINTERFACE)
  1536. MIDL_INTERFACE("fa1005e9-3d16-484c-bfc9-62b61e56ec4e")
  1537. IDirectManipulationManager2 : public IDirectManipulationManager
  1538. {
  1539. virtual HRESULT STDMETHODCALLTYPE CreateBehavior(
  1540. REFCLSID clsid,
  1541. REFIID riid,
  1542. void **obj) = 0;
  1543. };
  1544. #ifdef __CRT_UUID_DECL
  1545. __CRT_UUID_DECL(IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e)
  1546. #endif
  1547. #else
  1548. typedef struct IDirectManipulationManager2Vtbl {
  1549. BEGIN_INTERFACE
  1550. /*** IUnknown methods ***/
  1551. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1552. IDirectManipulationManager2 *This,
  1553. REFIID riid,
  1554. void **ppvObject);
  1555. ULONG (STDMETHODCALLTYPE *AddRef)(
  1556. IDirectManipulationManager2 *This);
  1557. ULONG (STDMETHODCALLTYPE *Release)(
  1558. IDirectManipulationManager2 *This);
  1559. /*** IDirectManipulationManager methods ***/
  1560. HRESULT (STDMETHODCALLTYPE *Activate)(
  1561. IDirectManipulationManager2 *This,
  1562. HWND window);
  1563. HRESULT (STDMETHODCALLTYPE *Deactivate)(
  1564. IDirectManipulationManager2 *This,
  1565. HWND window);
  1566. HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
  1567. IDirectManipulationManager2 *This,
  1568. HWND window,
  1569. HWND hittest,
  1570. DIRECTMANIPULATION_HITTEST_TYPE type);
  1571. HRESULT (STDMETHODCALLTYPE *ProcessInput)(
  1572. IDirectManipulationManager2 *This,
  1573. const MSG *msg,
  1574. WINBOOL *handled);
  1575. HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
  1576. IDirectManipulationManager2 *This,
  1577. REFIID riid,
  1578. void **obj);
  1579. HRESULT (STDMETHODCALLTYPE *CreateViewport)(
  1580. IDirectManipulationManager2 *This,
  1581. IDirectManipulationFrameInfoProvider *frame,
  1582. HWND window,
  1583. REFIID riid,
  1584. void **obj);
  1585. HRESULT (STDMETHODCALLTYPE *CreateContent)(
  1586. IDirectManipulationManager2 *This,
  1587. IDirectManipulationFrameInfoProvider *frame,
  1588. REFCLSID clsid,
  1589. REFIID riid,
  1590. void **obj);
  1591. /*** IDirectManipulationManager2 methods ***/
  1592. HRESULT (STDMETHODCALLTYPE *CreateBehavior)(
  1593. IDirectManipulationManager2 *This,
  1594. REFCLSID clsid,
  1595. REFIID riid,
  1596. void **obj);
  1597. END_INTERFACE
  1598. } IDirectManipulationManager2Vtbl;
  1599. interface IDirectManipulationManager2 {
  1600. CONST_VTBL IDirectManipulationManager2Vtbl* lpVtbl;
  1601. };
  1602. #ifdef COBJMACROS
  1603. #ifndef WIDL_C_INLINE_WRAPPERS
  1604. /*** IUnknown methods ***/
  1605. #define IDirectManipulationManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1606. #define IDirectManipulationManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1607. #define IDirectManipulationManager2_Release(This) (This)->lpVtbl->Release(This)
  1608. /*** IDirectManipulationManager methods ***/
  1609. #define IDirectManipulationManager2_Activate(This,window) (This)->lpVtbl->Activate(This,window)
  1610. #define IDirectManipulationManager2_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
  1611. #define IDirectManipulationManager2_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
  1612. #define IDirectManipulationManager2_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
  1613. #define IDirectManipulationManager2_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
  1614. #define IDirectManipulationManager2_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
  1615. #define IDirectManipulationManager2_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
  1616. /*** IDirectManipulationManager2 methods ***/
  1617. #define IDirectManipulationManager2_CreateBehavior(This,clsid,riid,obj) (This)->lpVtbl->CreateBehavior(This,clsid,riid,obj)
  1618. #else
  1619. /*** IUnknown methods ***/
  1620. static FORCEINLINE HRESULT IDirectManipulationManager2_QueryInterface(IDirectManipulationManager2* This,REFIID riid,void **ppvObject) {
  1621. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1622. }
  1623. static FORCEINLINE ULONG IDirectManipulationManager2_AddRef(IDirectManipulationManager2* This) {
  1624. return This->lpVtbl->AddRef(This);
  1625. }
  1626. static FORCEINLINE ULONG IDirectManipulationManager2_Release(IDirectManipulationManager2* This) {
  1627. return This->lpVtbl->Release(This);
  1628. }
  1629. /*** IDirectManipulationManager methods ***/
  1630. static FORCEINLINE HRESULT IDirectManipulationManager2_Activate(IDirectManipulationManager2* This,HWND window) {
  1631. return This->lpVtbl->Activate(This,window);
  1632. }
  1633. static FORCEINLINE HRESULT IDirectManipulationManager2_Deactivate(IDirectManipulationManager2* This,HWND window) {
  1634. return This->lpVtbl->Deactivate(This,window);
  1635. }
  1636. static FORCEINLINE HRESULT IDirectManipulationManager2_RegisterHitTestTarget(IDirectManipulationManager2* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
  1637. return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
  1638. }
  1639. static FORCEINLINE HRESULT IDirectManipulationManager2_ProcessInput(IDirectManipulationManager2* This,const MSG *msg,WINBOOL *handled) {
  1640. return This->lpVtbl->ProcessInput(This,msg,handled);
  1641. }
  1642. static FORCEINLINE HRESULT IDirectManipulationManager2_GetUpdateManager(IDirectManipulationManager2* This,REFIID riid,void **obj) {
  1643. return This->lpVtbl->GetUpdateManager(This,riid,obj);
  1644. }
  1645. static FORCEINLINE HRESULT IDirectManipulationManager2_CreateViewport(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
  1646. return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
  1647. }
  1648. static FORCEINLINE HRESULT IDirectManipulationManager2_CreateContent(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
  1649. return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
  1650. }
  1651. /*** IDirectManipulationManager2 methods ***/
  1652. static FORCEINLINE HRESULT IDirectManipulationManager2_CreateBehavior(IDirectManipulationManager2* This,REFCLSID clsid,REFIID riid,void **obj) {
  1653. return This->lpVtbl->CreateBehavior(This,clsid,riid,obj);
  1654. }
  1655. #endif
  1656. #endif
  1657. #endif
  1658. #endif /* __IDirectManipulationManager2_INTERFACE_DEFINED__ */
  1659. /*****************************************************************************
  1660. * IDirectManipulationPrimaryContent interface
  1661. */
  1662. #ifndef __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
  1663. #define __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
  1664. DEFINE_GUID(IID_IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b);
  1665. #if defined(__cplusplus) && !defined(CINTERFACE)
  1666. MIDL_INTERFACE("c12851e4-1698-4625-b9b1-7ca3ec18630b")
  1667. IDirectManipulationPrimaryContent : public IUnknown
  1668. {
  1669. virtual HRESULT STDMETHODCALLTYPE SetSnapInterval(
  1670. DIRECTMANIPULATION_MOTION_TYPES motion,
  1671. float interval,
  1672. float offset) = 0;
  1673. virtual HRESULT STDMETHODCALLTYPE SetSnapPoints(
  1674. DIRECTMANIPULATION_MOTION_TYPES motion,
  1675. const float *points,
  1676. DWORD count) = 0;
  1677. virtual HRESULT STDMETHODCALLTYPE SetSnapType(
  1678. DIRECTMANIPULATION_MOTION_TYPES motion,
  1679. DIRECTMANIPULATION_SNAPPOINT_TYPE type) = 0;
  1680. virtual HRESULT STDMETHODCALLTYPE SetSnapCoordinate(
  1681. DIRECTMANIPULATION_MOTION_TYPES motion,
  1682. DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
  1683. float origin) = 0;
  1684. virtual HRESULT STDMETHODCALLTYPE SetZoomBoundaries(
  1685. float minimum,
  1686. float maximum) = 0;
  1687. virtual HRESULT STDMETHODCALLTYPE SetHorizontalAlignment(
  1688. DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) = 0;
  1689. virtual HRESULT STDMETHODCALLTYPE SetVerticalAlignment(
  1690. DIRECTMANIPULATION_VERTICALALIGNMENT alignment) = 0;
  1691. virtual HRESULT STDMETHODCALLTYPE GetInertiaEndTransform(
  1692. float *matrix,
  1693. DWORD count) = 0;
  1694. virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(
  1695. float *x,
  1696. float *y) = 0;
  1697. };
  1698. #ifdef __CRT_UUID_DECL
  1699. __CRT_UUID_DECL(IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b)
  1700. #endif
  1701. #else
  1702. typedef struct IDirectManipulationPrimaryContentVtbl {
  1703. BEGIN_INTERFACE
  1704. /*** IUnknown methods ***/
  1705. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1706. IDirectManipulationPrimaryContent *This,
  1707. REFIID riid,
  1708. void **ppvObject);
  1709. ULONG (STDMETHODCALLTYPE *AddRef)(
  1710. IDirectManipulationPrimaryContent *This);
  1711. ULONG (STDMETHODCALLTYPE *Release)(
  1712. IDirectManipulationPrimaryContent *This);
  1713. /*** IDirectManipulationPrimaryContent methods ***/
  1714. HRESULT (STDMETHODCALLTYPE *SetSnapInterval)(
  1715. IDirectManipulationPrimaryContent *This,
  1716. DIRECTMANIPULATION_MOTION_TYPES motion,
  1717. float interval,
  1718. float offset);
  1719. HRESULT (STDMETHODCALLTYPE *SetSnapPoints)(
  1720. IDirectManipulationPrimaryContent *This,
  1721. DIRECTMANIPULATION_MOTION_TYPES motion,
  1722. const float *points,
  1723. DWORD count);
  1724. HRESULT (STDMETHODCALLTYPE *SetSnapType)(
  1725. IDirectManipulationPrimaryContent *This,
  1726. DIRECTMANIPULATION_MOTION_TYPES motion,
  1727. DIRECTMANIPULATION_SNAPPOINT_TYPE type);
  1728. HRESULT (STDMETHODCALLTYPE *SetSnapCoordinate)(
  1729. IDirectManipulationPrimaryContent *This,
  1730. DIRECTMANIPULATION_MOTION_TYPES motion,
  1731. DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
  1732. float origin);
  1733. HRESULT (STDMETHODCALLTYPE *SetZoomBoundaries)(
  1734. IDirectManipulationPrimaryContent *This,
  1735. float minimum,
  1736. float maximum);
  1737. HRESULT (STDMETHODCALLTYPE *SetHorizontalAlignment)(
  1738. IDirectManipulationPrimaryContent *This,
  1739. DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment);
  1740. HRESULT (STDMETHODCALLTYPE *SetVerticalAlignment)(
  1741. IDirectManipulationPrimaryContent *This,
  1742. DIRECTMANIPULATION_VERTICALALIGNMENT alignment);
  1743. HRESULT (STDMETHODCALLTYPE *GetInertiaEndTransform)(
  1744. IDirectManipulationPrimaryContent *This,
  1745. float *matrix,
  1746. DWORD count);
  1747. HRESULT (STDMETHODCALLTYPE *GetCenterPoint)(
  1748. IDirectManipulationPrimaryContent *This,
  1749. float *x,
  1750. float *y);
  1751. END_INTERFACE
  1752. } IDirectManipulationPrimaryContentVtbl;
  1753. interface IDirectManipulationPrimaryContent {
  1754. CONST_VTBL IDirectManipulationPrimaryContentVtbl* lpVtbl;
  1755. };
  1756. #ifdef COBJMACROS
  1757. #ifndef WIDL_C_INLINE_WRAPPERS
  1758. /*** IUnknown methods ***/
  1759. #define IDirectManipulationPrimaryContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1760. #define IDirectManipulationPrimaryContent_AddRef(This) (This)->lpVtbl->AddRef(This)
  1761. #define IDirectManipulationPrimaryContent_Release(This) (This)->lpVtbl->Release(This)
  1762. /*** IDirectManipulationPrimaryContent methods ***/
  1763. #define IDirectManipulationPrimaryContent_SetSnapInterval(This,motion,interval,offset) (This)->lpVtbl->SetSnapInterval(This,motion,interval,offset)
  1764. #define IDirectManipulationPrimaryContent_SetSnapPoints(This,motion,points,count) (This)->lpVtbl->SetSnapPoints(This,motion,points,count)
  1765. #define IDirectManipulationPrimaryContent_SetSnapType(This,motion,type) (This)->lpVtbl->SetSnapType(This,motion,type)
  1766. #define IDirectManipulationPrimaryContent_SetSnapCoordinate(This,motion,coordinate,origin) (This)->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin)
  1767. #define IDirectManipulationPrimaryContent_SetZoomBoundaries(This,minimum,maximum) (This)->lpVtbl->SetZoomBoundaries(This,minimum,maximum)
  1768. #define IDirectManipulationPrimaryContent_SetHorizontalAlignment(This,alignment) (This)->lpVtbl->SetHorizontalAlignment(This,alignment)
  1769. #define IDirectManipulationPrimaryContent_SetVerticalAlignment(This,alignment) (This)->lpVtbl->SetVerticalAlignment(This,alignment)
  1770. #define IDirectManipulationPrimaryContent_GetInertiaEndTransform(This,matrix,count) (This)->lpVtbl->GetInertiaEndTransform(This,matrix,count)
  1771. #define IDirectManipulationPrimaryContent_GetCenterPoint(This,x,y) (This)->lpVtbl->GetCenterPoint(This,x,y)
  1772. #else
  1773. /*** IUnknown methods ***/
  1774. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_QueryInterface(IDirectManipulationPrimaryContent* This,REFIID riid,void **ppvObject) {
  1775. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1776. }
  1777. static FORCEINLINE ULONG IDirectManipulationPrimaryContent_AddRef(IDirectManipulationPrimaryContent* This) {
  1778. return This->lpVtbl->AddRef(This);
  1779. }
  1780. static FORCEINLINE ULONG IDirectManipulationPrimaryContent_Release(IDirectManipulationPrimaryContent* This) {
  1781. return This->lpVtbl->Release(This);
  1782. }
  1783. /*** IDirectManipulationPrimaryContent methods ***/
  1784. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapInterval(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,float interval,float offset) {
  1785. return This->lpVtbl->SetSnapInterval(This,motion,interval,offset);
  1786. }
  1787. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapPoints(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,const float *points,DWORD count) {
  1788. return This->lpVtbl->SetSnapPoints(This,motion,points,count);
  1789. }
  1790. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapType(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_TYPE type) {
  1791. return This->lpVtbl->SetSnapType(This,motion,type);
  1792. }
  1793. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapCoordinate(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,float origin) {
  1794. return This->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin);
  1795. }
  1796. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetZoomBoundaries(IDirectManipulationPrimaryContent* This,float minimum,float maximum) {
  1797. return This->lpVtbl->SetZoomBoundaries(This,minimum,maximum);
  1798. }
  1799. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetHorizontalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) {
  1800. return This->lpVtbl->SetHorizontalAlignment(This,alignment);
  1801. }
  1802. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetVerticalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_VERTICALALIGNMENT alignment) {
  1803. return This->lpVtbl->SetVerticalAlignment(This,alignment);
  1804. }
  1805. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_GetInertiaEndTransform(IDirectManipulationPrimaryContent* This,float *matrix,DWORD count) {
  1806. return This->lpVtbl->GetInertiaEndTransform(This,matrix,count);
  1807. }
  1808. static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_GetCenterPoint(IDirectManipulationPrimaryContent* This,float *x,float *y) {
  1809. return This->lpVtbl->GetCenterPoint(This,x,y);
  1810. }
  1811. #endif
  1812. #endif
  1813. #endif
  1814. #endif /* __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__ */
  1815. /*****************************************************************************
  1816. * IDirectManipulationCompositor2 interface
  1817. */
  1818. #ifndef __IDirectManipulationCompositor2_INTERFACE_DEFINED__
  1819. #define __IDirectManipulationCompositor2_INTERFACE_DEFINED__
  1820. DEFINE_GUID(IID_IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e);
  1821. #if defined(__cplusplus) && !defined(CINTERFACE)
  1822. MIDL_INTERFACE("d38c7822-f1cb-43cb-b4b9-ac0c767a412e")
  1823. IDirectManipulationCompositor2 : public IDirectManipulationCompositor
  1824. {
  1825. virtual HRESULT STDMETHODCALLTYPE AddContentWithCrossProcessChaining(
  1826. IDirectManipulationPrimaryContent *content,
  1827. IUnknown *device,
  1828. IUnknown *parentVisual,
  1829. IUnknown *childVisual) = 0;
  1830. };
  1831. #ifdef __CRT_UUID_DECL
  1832. __CRT_UUID_DECL(IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e)
  1833. #endif
  1834. #else
  1835. typedef struct IDirectManipulationCompositor2Vtbl {
  1836. BEGIN_INTERFACE
  1837. /*** IUnknown methods ***/
  1838. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1839. IDirectManipulationCompositor2 *This,
  1840. REFIID riid,
  1841. void **ppvObject);
  1842. ULONG (STDMETHODCALLTYPE *AddRef)(
  1843. IDirectManipulationCompositor2 *This);
  1844. ULONG (STDMETHODCALLTYPE *Release)(
  1845. IDirectManipulationCompositor2 *This);
  1846. /*** IDirectManipulationCompositor methods ***/
  1847. HRESULT (STDMETHODCALLTYPE *AddContent)(
  1848. IDirectManipulationCompositor2 *This,
  1849. IDirectManipulationContent *content,
  1850. IUnknown *device,
  1851. IUnknown *parent,
  1852. IUnknown *child);
  1853. HRESULT (STDMETHODCALLTYPE *RemoveContent)(
  1854. IDirectManipulationCompositor2 *This,
  1855. IDirectManipulationContent *content);
  1856. HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
  1857. IDirectManipulationCompositor2 *This,
  1858. IDirectManipulationUpdateManager *manager);
  1859. HRESULT (STDMETHODCALLTYPE *Flush)(
  1860. IDirectManipulationCompositor2 *This);
  1861. /*** IDirectManipulationCompositor2 methods ***/
  1862. HRESULT (STDMETHODCALLTYPE *AddContentWithCrossProcessChaining)(
  1863. IDirectManipulationCompositor2 *This,
  1864. IDirectManipulationPrimaryContent *content,
  1865. IUnknown *device,
  1866. IUnknown *parentVisual,
  1867. IUnknown *childVisual);
  1868. END_INTERFACE
  1869. } IDirectManipulationCompositor2Vtbl;
  1870. interface IDirectManipulationCompositor2 {
  1871. CONST_VTBL IDirectManipulationCompositor2Vtbl* lpVtbl;
  1872. };
  1873. #ifdef COBJMACROS
  1874. #ifndef WIDL_C_INLINE_WRAPPERS
  1875. /*** IUnknown methods ***/
  1876. #define IDirectManipulationCompositor2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1877. #define IDirectManipulationCompositor2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1878. #define IDirectManipulationCompositor2_Release(This) (This)->lpVtbl->Release(This)
  1879. /*** IDirectManipulationCompositor methods ***/
  1880. #define IDirectManipulationCompositor2_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
  1881. #define IDirectManipulationCompositor2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
  1882. #define IDirectManipulationCompositor2_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
  1883. #define IDirectManipulationCompositor2_Flush(This) (This)->lpVtbl->Flush(This)
  1884. /*** IDirectManipulationCompositor2 methods ***/
  1885. #define IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual) (This)->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual)
  1886. #else
  1887. /*** IUnknown methods ***/
  1888. static FORCEINLINE HRESULT IDirectManipulationCompositor2_QueryInterface(IDirectManipulationCompositor2* This,REFIID riid,void **ppvObject) {
  1889. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1890. }
  1891. static FORCEINLINE ULONG IDirectManipulationCompositor2_AddRef(IDirectManipulationCompositor2* This) {
  1892. return This->lpVtbl->AddRef(This);
  1893. }
  1894. static FORCEINLINE ULONG IDirectManipulationCompositor2_Release(IDirectManipulationCompositor2* This) {
  1895. return This->lpVtbl->Release(This);
  1896. }
  1897. /*** IDirectManipulationCompositor methods ***/
  1898. static FORCEINLINE HRESULT IDirectManipulationCompositor2_AddContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
  1899. return This->lpVtbl->AddContent(This,content,device,parent,child);
  1900. }
  1901. static FORCEINLINE HRESULT IDirectManipulationCompositor2_RemoveContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content) {
  1902. return This->lpVtbl->RemoveContent(This,content);
  1903. }
  1904. static FORCEINLINE HRESULT IDirectManipulationCompositor2_SetUpdateManager(IDirectManipulationCompositor2* This,IDirectManipulationUpdateManager *manager) {
  1905. return This->lpVtbl->SetUpdateManager(This,manager);
  1906. }
  1907. static FORCEINLINE HRESULT IDirectManipulationCompositor2_Flush(IDirectManipulationCompositor2* This) {
  1908. return This->lpVtbl->Flush(This);
  1909. }
  1910. /*** IDirectManipulationCompositor2 methods ***/
  1911. static FORCEINLINE HRESULT IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(IDirectManipulationCompositor2* This,IDirectManipulationPrimaryContent *content,IUnknown *device,IUnknown *parentVisual,IUnknown *childVisual) {
  1912. return This->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual);
  1913. }
  1914. #endif
  1915. #endif
  1916. #endif
  1917. #endif /* __IDirectManipulationCompositor2_INTERFACE_DEFINED__ */
  1918. #ifndef __DirectManipulation_LIBRARY_DEFINED__
  1919. #define __DirectManipulation_LIBRARY_DEFINED__
  1920. DEFINE_GUID(LIBID_DirectManipulation, 0x9fbedf98, 0xf6d8, 0x4e3b, 0xb4,0x88, 0xfa,0x66,0xdb,0xf5,0xe9,0xf3);
  1921. /*****************************************************************************
  1922. * DirectManipulationManager coclass
  1923. */
  1924. DEFINE_GUID(CLSID_DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
  1925. #ifdef __cplusplus
  1926. class DECLSPEC_UUID("54e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationManager;
  1927. #ifdef __CRT_UUID_DECL
  1928. __CRT_UUID_DECL(DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
  1929. #endif
  1930. #endif
  1931. /*****************************************************************************
  1932. * DirectManipulationSharedManager coclass
  1933. */
  1934. DEFINE_GUID(CLSID_DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5);
  1935. #ifdef __cplusplus
  1936. class DECLSPEC_UUID("99793286-77cc-4b57-96db-3b354f6f9fb5") DirectManipulationSharedManager;
  1937. #ifdef __CRT_UUID_DECL
  1938. __CRT_UUID_DECL(DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5)
  1939. #endif
  1940. #endif
  1941. /*****************************************************************************
  1942. * DCompManipulationCompositor coclass
  1943. */
  1944. DEFINE_GUID(CLSID_DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26);
  1945. #ifdef __cplusplus
  1946. class DECLSPEC_UUID("79dea627-a08a-43ac-8ef5-6900b9299126") DCompManipulationCompositor;
  1947. #ifdef __CRT_UUID_DECL
  1948. __CRT_UUID_DECL(DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26)
  1949. #endif
  1950. #endif
  1951. /*****************************************************************************
  1952. * DirectManipulationViewport coclass
  1953. */
  1954. DEFINE_GUID(CLSID_DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
  1955. #ifdef __cplusplus
  1956. class DECLSPEC_UUID("34e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationViewport;
  1957. #ifdef __CRT_UUID_DECL
  1958. __CRT_UUID_DECL(DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
  1959. #endif
  1960. #endif
  1961. #endif /* __DirectManipulation_LIBRARY_DEFINED__ */
  1962. /* Begin additional prototypes for all interfaces */
  1963. /* End additional prototypes */
  1964. #ifdef __cplusplus
  1965. }
  1966. #endif
  1967. #endif /* __directmanipulation_h__ */