propsys.h 171 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271
  1. /*** Autogenerated by WIDL 7.7 from include/propsys.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 __propsys_h__
  14. #define __propsys_h__
  15. /* Forward declarations */
  16. #ifndef __IInitializeWithFile_FWD_DEFINED__
  17. #define __IInitializeWithFile_FWD_DEFINED__
  18. typedef interface IInitializeWithFile IInitializeWithFile;
  19. #ifdef __cplusplus
  20. interface IInitializeWithFile;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IInitializeWithStream_FWD_DEFINED__
  24. #define __IInitializeWithStream_FWD_DEFINED__
  25. typedef interface IInitializeWithStream IInitializeWithStream;
  26. #ifdef __cplusplus
  27. interface IInitializeWithStream;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IPropertyStore_FWD_DEFINED__
  31. #define __IPropertyStore_FWD_DEFINED__
  32. typedef interface IPropertyStore IPropertyStore;
  33. #ifdef __cplusplus
  34. interface IPropertyStore;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __INamedPropertyStore_FWD_DEFINED__
  38. #define __INamedPropertyStore_FWD_DEFINED__
  39. typedef interface INamedPropertyStore INamedPropertyStore;
  40. #ifdef __cplusplus
  41. interface INamedPropertyStore;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IObjectWithPropertyKey_FWD_DEFINED__
  45. #define __IObjectWithPropertyKey_FWD_DEFINED__
  46. typedef interface IObjectWithPropertyKey IObjectWithPropertyKey;
  47. #ifdef __cplusplus
  48. interface IObjectWithPropertyKey;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IPropertyChange_FWD_DEFINED__
  52. #define __IPropertyChange_FWD_DEFINED__
  53. typedef interface IPropertyChange IPropertyChange;
  54. #ifdef __cplusplus
  55. interface IPropertyChange;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __IPropertyChangeArray_FWD_DEFINED__
  59. #define __IPropertyChangeArray_FWD_DEFINED__
  60. typedef interface IPropertyChangeArray IPropertyChangeArray;
  61. #ifdef __cplusplus
  62. interface IPropertyChangeArray;
  63. #endif /* __cplusplus */
  64. #endif
  65. #ifndef __IPropertyStoreCapabilities_FWD_DEFINED__
  66. #define __IPropertyStoreCapabilities_FWD_DEFINED__
  67. typedef interface IPropertyStoreCapabilities IPropertyStoreCapabilities;
  68. #ifdef __cplusplus
  69. interface IPropertyStoreCapabilities;
  70. #endif /* __cplusplus */
  71. #endif
  72. #ifndef __IPropertyStoreCache_FWD_DEFINED__
  73. #define __IPropertyStoreCache_FWD_DEFINED__
  74. typedef interface IPropertyStoreCache IPropertyStoreCache;
  75. #ifdef __cplusplus
  76. interface IPropertyStoreCache;
  77. #endif /* __cplusplus */
  78. #endif
  79. #ifndef __IPropertyEnumType_FWD_DEFINED__
  80. #define __IPropertyEnumType_FWD_DEFINED__
  81. typedef interface IPropertyEnumType IPropertyEnumType;
  82. #ifdef __cplusplus
  83. interface IPropertyEnumType;
  84. #endif /* __cplusplus */
  85. #endif
  86. #ifndef __IPropertyEnumType2_FWD_DEFINED__
  87. #define __IPropertyEnumType2_FWD_DEFINED__
  88. typedef interface IPropertyEnumType2 IPropertyEnumType2;
  89. #ifdef __cplusplus
  90. interface IPropertyEnumType2;
  91. #endif /* __cplusplus */
  92. #endif
  93. #ifndef __IPropertyEnumTypeList_FWD_DEFINED__
  94. #define __IPropertyEnumTypeList_FWD_DEFINED__
  95. typedef interface IPropertyEnumTypeList IPropertyEnumTypeList;
  96. #ifdef __cplusplus
  97. interface IPropertyEnumTypeList;
  98. #endif /* __cplusplus */
  99. #endif
  100. #ifndef __IPropertyDescription_FWD_DEFINED__
  101. #define __IPropertyDescription_FWD_DEFINED__
  102. typedef interface IPropertyDescription IPropertyDescription;
  103. #ifdef __cplusplus
  104. interface IPropertyDescription;
  105. #endif /* __cplusplus */
  106. #endif
  107. #ifndef __IPropertyDescription2_FWD_DEFINED__
  108. #define __IPropertyDescription2_FWD_DEFINED__
  109. typedef interface IPropertyDescription2 IPropertyDescription2;
  110. #ifdef __cplusplus
  111. interface IPropertyDescription2;
  112. #endif /* __cplusplus */
  113. #endif
  114. #ifndef __IPropertyDescriptionAliasInfo_FWD_DEFINED__
  115. #define __IPropertyDescriptionAliasInfo_FWD_DEFINED__
  116. typedef interface IPropertyDescriptionAliasInfo IPropertyDescriptionAliasInfo;
  117. #ifdef __cplusplus
  118. interface IPropertyDescriptionAliasInfo;
  119. #endif /* __cplusplus */
  120. #endif
  121. #ifndef __IPropertyDescriptionSearchInfo_FWD_DEFINED__
  122. #define __IPropertyDescriptionSearchInfo_FWD_DEFINED__
  123. typedef interface IPropertyDescriptionSearchInfo IPropertyDescriptionSearchInfo;
  124. #ifdef __cplusplus
  125. interface IPropertyDescriptionSearchInfo;
  126. #endif /* __cplusplus */
  127. #endif
  128. #ifndef __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
  129. #define __IPropertyDescriptionRelatedPropertyInfo_FWD_DEFINED__
  130. typedef interface IPropertyDescriptionRelatedPropertyInfo IPropertyDescriptionRelatedPropertyInfo;
  131. #ifdef __cplusplus
  132. interface IPropertyDescriptionRelatedPropertyInfo;
  133. #endif /* __cplusplus */
  134. #endif
  135. #ifndef __IPropertySystem_FWD_DEFINED__
  136. #define __IPropertySystem_FWD_DEFINED__
  137. typedef interface IPropertySystem IPropertySystem;
  138. #ifdef __cplusplus
  139. interface IPropertySystem;
  140. #endif /* __cplusplus */
  141. #endif
  142. #ifndef __IPropertyDescriptionList_FWD_DEFINED__
  143. #define __IPropertyDescriptionList_FWD_DEFINED__
  144. typedef interface IPropertyDescriptionList IPropertyDescriptionList;
  145. #ifdef __cplusplus
  146. interface IPropertyDescriptionList;
  147. #endif /* __cplusplus */
  148. #endif
  149. #ifndef __IPropertyStoreFactory_FWD_DEFINED__
  150. #define __IPropertyStoreFactory_FWD_DEFINED__
  151. typedef interface IPropertyStoreFactory IPropertyStoreFactory;
  152. #ifdef __cplusplus
  153. interface IPropertyStoreFactory;
  154. #endif /* __cplusplus */
  155. #endif
  156. #ifndef __IDelayedPropertyStoreFactory_FWD_DEFINED__
  157. #define __IDelayedPropertyStoreFactory_FWD_DEFINED__
  158. typedef interface IDelayedPropertyStoreFactory IDelayedPropertyStoreFactory;
  159. #ifdef __cplusplus
  160. interface IDelayedPropertyStoreFactory;
  161. #endif /* __cplusplus */
  162. #endif
  163. #ifndef __IPersistSerializedPropStorage_FWD_DEFINED__
  164. #define __IPersistSerializedPropStorage_FWD_DEFINED__
  165. typedef interface IPersistSerializedPropStorage IPersistSerializedPropStorage;
  166. #ifdef __cplusplus
  167. interface IPersistSerializedPropStorage;
  168. #endif /* __cplusplus */
  169. #endif
  170. #ifndef __IPersistSerializedPropStorage2_FWD_DEFINED__
  171. #define __IPersistSerializedPropStorage2_FWD_DEFINED__
  172. typedef interface IPersistSerializedPropStorage2 IPersistSerializedPropStorage2;
  173. #ifdef __cplusplus
  174. interface IPersistSerializedPropStorage2;
  175. #endif /* __cplusplus */
  176. #endif
  177. #ifndef __IPropertySystemChangeNotify_FWD_DEFINED__
  178. #define __IPropertySystemChangeNotify_FWD_DEFINED__
  179. typedef interface IPropertySystemChangeNotify IPropertySystemChangeNotify;
  180. #ifdef __cplusplus
  181. interface IPropertySystemChangeNotify;
  182. #endif /* __cplusplus */
  183. #endif
  184. #ifndef __ICreateObject_FWD_DEFINED__
  185. #define __ICreateObject_FWD_DEFINED__
  186. typedef interface ICreateObject ICreateObject;
  187. #ifdef __cplusplus
  188. interface ICreateObject;
  189. #endif /* __cplusplus */
  190. #endif
  191. #ifndef __InMemoryPropertyStore_FWD_DEFINED__
  192. #define __InMemoryPropertyStore_FWD_DEFINED__
  193. #ifdef __cplusplus
  194. typedef class InMemoryPropertyStore InMemoryPropertyStore;
  195. #else
  196. typedef struct InMemoryPropertyStore InMemoryPropertyStore;
  197. #endif /* defined __cplusplus */
  198. #endif /* defined __InMemoryPropertyStore_FWD_DEFINED__ */
  199. #ifndef __PropertySystem_FWD_DEFINED__
  200. #define __PropertySystem_FWD_DEFINED__
  201. #ifdef __cplusplus
  202. typedef class PropertySystem PropertySystem;
  203. #else
  204. typedef struct PropertySystem PropertySystem;
  205. #endif /* defined __cplusplus */
  206. #endif /* defined __PropertySystem_FWD_DEFINED__ */
  207. /* Headers for imported files */
  208. #include <objidl.h>
  209. #include <oleidl.h>
  210. #include <ocidl.h>
  211. #include <shtypes.h>
  212. #include <structuredquerycondition.h>
  213. #ifdef __cplusplus
  214. extern "C" {
  215. #endif
  216. /**
  217. * This file is part of the mingw-w64 runtime package.
  218. * No warranty is given; refer to the file DISCLAIMER within this package.
  219. */
  220. #include <winapifamily.h>
  221. #ifndef PSSTDAPI
  222. #ifdef _PROPSYS_
  223. #define PSSTDAPI STDAPI
  224. #define PSSTDAPI_(type) STDAPI_(type)
  225. #else
  226. #define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
  227. #define PSSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
  228. #endif
  229. #endif
  230. #if 0
  231. typedef PROPERTYKEY *REFPROPERTYKEY;
  232. #endif
  233. #include <propkeydef.h>
  234. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  235. /*****************************************************************************
  236. * IInitializeWithFile interface
  237. */
  238. #ifndef __IInitializeWithFile_INTERFACE_DEFINED__
  239. #define __IInitializeWithFile_INTERFACE_DEFINED__
  240. DEFINE_GUID(IID_IInitializeWithFile, 0xb7d14566, 0x0509, 0x4cce, 0xa7,0x1f, 0x0a,0x55,0x42,0x33,0xbd,0x9b);
  241. #if defined(__cplusplus) && !defined(CINTERFACE)
  242. MIDL_INTERFACE("b7d14566-0509-4cce-a71f-0a554233bd9b")
  243. IInitializeWithFile : public IUnknown
  244. {
  245. virtual HRESULT STDMETHODCALLTYPE Initialize(
  246. LPCWSTR pszFilePath,
  247. DWORD grfMode) = 0;
  248. };
  249. #ifdef __CRT_UUID_DECL
  250. __CRT_UUID_DECL(IInitializeWithFile, 0xb7d14566, 0x0509, 0x4cce, 0xa7,0x1f, 0x0a,0x55,0x42,0x33,0xbd,0x9b)
  251. #endif
  252. #else
  253. typedef struct IInitializeWithFileVtbl {
  254. BEGIN_INTERFACE
  255. /*** IUnknown methods ***/
  256. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  257. IInitializeWithFile *This,
  258. REFIID riid,
  259. void **ppvObject);
  260. ULONG (STDMETHODCALLTYPE *AddRef)(
  261. IInitializeWithFile *This);
  262. ULONG (STDMETHODCALLTYPE *Release)(
  263. IInitializeWithFile *This);
  264. /*** IInitializeWithFile methods ***/
  265. HRESULT (STDMETHODCALLTYPE *Initialize)(
  266. IInitializeWithFile *This,
  267. LPCWSTR pszFilePath,
  268. DWORD grfMode);
  269. END_INTERFACE
  270. } IInitializeWithFileVtbl;
  271. interface IInitializeWithFile {
  272. CONST_VTBL IInitializeWithFileVtbl* lpVtbl;
  273. };
  274. #ifdef COBJMACROS
  275. #ifndef WIDL_C_INLINE_WRAPPERS
  276. /*** IUnknown methods ***/
  277. #define IInitializeWithFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  278. #define IInitializeWithFile_AddRef(This) (This)->lpVtbl->AddRef(This)
  279. #define IInitializeWithFile_Release(This) (This)->lpVtbl->Release(This)
  280. /*** IInitializeWithFile methods ***/
  281. #define IInitializeWithFile_Initialize(This,pszFilePath,grfMode) (This)->lpVtbl->Initialize(This,pszFilePath,grfMode)
  282. #else
  283. /*** IUnknown methods ***/
  284. static FORCEINLINE HRESULT IInitializeWithFile_QueryInterface(IInitializeWithFile* This,REFIID riid,void **ppvObject) {
  285. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  286. }
  287. static FORCEINLINE ULONG IInitializeWithFile_AddRef(IInitializeWithFile* This) {
  288. return This->lpVtbl->AddRef(This);
  289. }
  290. static FORCEINLINE ULONG IInitializeWithFile_Release(IInitializeWithFile* This) {
  291. return This->lpVtbl->Release(This);
  292. }
  293. /*** IInitializeWithFile methods ***/
  294. static FORCEINLINE HRESULT IInitializeWithFile_Initialize(IInitializeWithFile* This,LPCWSTR pszFilePath,DWORD grfMode) {
  295. return This->lpVtbl->Initialize(This,pszFilePath,grfMode);
  296. }
  297. #endif
  298. #endif
  299. #endif
  300. #endif /* __IInitializeWithFile_INTERFACE_DEFINED__ */
  301. /*****************************************************************************
  302. * IInitializeWithStream interface
  303. */
  304. #ifndef __IInitializeWithStream_INTERFACE_DEFINED__
  305. #define __IInitializeWithStream_INTERFACE_DEFINED__
  306. DEFINE_GUID(IID_IInitializeWithStream, 0xb824b49d, 0x22ac, 0x4161, 0xac,0x8a, 0x99,0x16,0xe8,0xfa,0x3f,0x7f);
  307. #if defined(__cplusplus) && !defined(CINTERFACE)
  308. MIDL_INTERFACE("b824b49d-22ac-4161-ac8a-9916e8fa3f7f")
  309. IInitializeWithStream : public IUnknown
  310. {
  311. virtual HRESULT STDMETHODCALLTYPE Initialize(
  312. IStream *pstream,
  313. DWORD grfMode) = 0;
  314. };
  315. #ifdef __CRT_UUID_DECL
  316. __CRT_UUID_DECL(IInitializeWithStream, 0xb824b49d, 0x22ac, 0x4161, 0xac,0x8a, 0x99,0x16,0xe8,0xfa,0x3f,0x7f)
  317. #endif
  318. #else
  319. typedef struct IInitializeWithStreamVtbl {
  320. BEGIN_INTERFACE
  321. /*** IUnknown methods ***/
  322. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  323. IInitializeWithStream *This,
  324. REFIID riid,
  325. void **ppvObject);
  326. ULONG (STDMETHODCALLTYPE *AddRef)(
  327. IInitializeWithStream *This);
  328. ULONG (STDMETHODCALLTYPE *Release)(
  329. IInitializeWithStream *This);
  330. /*** IInitializeWithStream methods ***/
  331. HRESULT (STDMETHODCALLTYPE *Initialize)(
  332. IInitializeWithStream *This,
  333. IStream *pstream,
  334. DWORD grfMode);
  335. END_INTERFACE
  336. } IInitializeWithStreamVtbl;
  337. interface IInitializeWithStream {
  338. CONST_VTBL IInitializeWithStreamVtbl* lpVtbl;
  339. };
  340. #ifdef COBJMACROS
  341. #ifndef WIDL_C_INLINE_WRAPPERS
  342. /*** IUnknown methods ***/
  343. #define IInitializeWithStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  344. #define IInitializeWithStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  345. #define IInitializeWithStream_Release(This) (This)->lpVtbl->Release(This)
  346. /*** IInitializeWithStream methods ***/
  347. #define IInitializeWithStream_Initialize(This,pstream,grfMode) (This)->lpVtbl->Initialize(This,pstream,grfMode)
  348. #else
  349. /*** IUnknown methods ***/
  350. static FORCEINLINE HRESULT IInitializeWithStream_QueryInterface(IInitializeWithStream* This,REFIID riid,void **ppvObject) {
  351. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  352. }
  353. static FORCEINLINE ULONG IInitializeWithStream_AddRef(IInitializeWithStream* This) {
  354. return This->lpVtbl->AddRef(This);
  355. }
  356. static FORCEINLINE ULONG IInitializeWithStream_Release(IInitializeWithStream* This) {
  357. return This->lpVtbl->Release(This);
  358. }
  359. /*** IInitializeWithStream methods ***/
  360. static FORCEINLINE HRESULT IInitializeWithStream_Initialize(IInitializeWithStream* This,IStream *pstream,DWORD grfMode) {
  361. return This->lpVtbl->Initialize(This,pstream,grfMode);
  362. }
  363. #endif
  364. #endif
  365. #endif
  366. HRESULT STDMETHODCALLTYPE IInitializeWithStream_RemoteInitialize_Proxy(
  367. IInitializeWithStream* This,
  368. IStream *pstream,
  369. DWORD grfMode);
  370. void __RPC_STUB IInitializeWithStream_RemoteInitialize_Stub(
  371. IRpcStubBuffer* This,
  372. IRpcChannelBuffer* pRpcChannelBuffer,
  373. PRPC_MESSAGE pRpcMessage,
  374. DWORD* pdwStubPhase);
  375. HRESULT CALLBACK IInitializeWithStream_Initialize_Proxy(
  376. IInitializeWithStream* This,
  377. IStream *pstream,
  378. DWORD grfMode);
  379. HRESULT __RPC_STUB IInitializeWithStream_Initialize_Stub(
  380. IInitializeWithStream* This,
  381. IStream *pstream,
  382. DWORD grfMode);
  383. #endif /* __IInitializeWithStream_INTERFACE_DEFINED__ */
  384. #endif
  385. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  386. /*****************************************************************************
  387. * IPropertyStore interface
  388. */
  389. #ifndef __IPropertyStore_INTERFACE_DEFINED__
  390. #define __IPropertyStore_INTERFACE_DEFINED__
  391. DEFINE_GUID(IID_IPropertyStore, 0x886d8eeb, 0x8cf2, 0x4446, 0x8d,0x02, 0xcd,0xba,0x1d,0xbd,0xcf,0x99);
  392. #if defined(__cplusplus) && !defined(CINTERFACE)
  393. MIDL_INTERFACE("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99")
  394. IPropertyStore : public IUnknown
  395. {
  396. virtual HRESULT STDMETHODCALLTYPE GetCount(
  397. DWORD *cProps) = 0;
  398. virtual HRESULT STDMETHODCALLTYPE GetAt(
  399. DWORD iProp,
  400. PROPERTYKEY *pkey) = 0;
  401. virtual HRESULT STDMETHODCALLTYPE GetValue(
  402. REFPROPERTYKEY key,
  403. PROPVARIANT *pv) = 0;
  404. virtual HRESULT STDMETHODCALLTYPE SetValue(
  405. REFPROPERTYKEY key,
  406. REFPROPVARIANT propvar) = 0;
  407. virtual HRESULT STDMETHODCALLTYPE Commit(
  408. ) = 0;
  409. };
  410. #ifdef __CRT_UUID_DECL
  411. __CRT_UUID_DECL(IPropertyStore, 0x886d8eeb, 0x8cf2, 0x4446, 0x8d,0x02, 0xcd,0xba,0x1d,0xbd,0xcf,0x99)
  412. #endif
  413. #else
  414. typedef struct IPropertyStoreVtbl {
  415. BEGIN_INTERFACE
  416. /*** IUnknown methods ***/
  417. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  418. IPropertyStore *This,
  419. REFIID riid,
  420. void **ppvObject);
  421. ULONG (STDMETHODCALLTYPE *AddRef)(
  422. IPropertyStore *This);
  423. ULONG (STDMETHODCALLTYPE *Release)(
  424. IPropertyStore *This);
  425. /*** IPropertyStore methods ***/
  426. HRESULT (STDMETHODCALLTYPE *GetCount)(
  427. IPropertyStore *This,
  428. DWORD *cProps);
  429. HRESULT (STDMETHODCALLTYPE *GetAt)(
  430. IPropertyStore *This,
  431. DWORD iProp,
  432. PROPERTYKEY *pkey);
  433. HRESULT (STDMETHODCALLTYPE *GetValue)(
  434. IPropertyStore *This,
  435. REFPROPERTYKEY key,
  436. PROPVARIANT *pv);
  437. HRESULT (STDMETHODCALLTYPE *SetValue)(
  438. IPropertyStore *This,
  439. REFPROPERTYKEY key,
  440. REFPROPVARIANT propvar);
  441. HRESULT (STDMETHODCALLTYPE *Commit)(
  442. IPropertyStore *This);
  443. END_INTERFACE
  444. } IPropertyStoreVtbl;
  445. interface IPropertyStore {
  446. CONST_VTBL IPropertyStoreVtbl* lpVtbl;
  447. };
  448. #ifdef COBJMACROS
  449. #ifndef WIDL_C_INLINE_WRAPPERS
  450. /*** IUnknown methods ***/
  451. #define IPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  452. #define IPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
  453. #define IPropertyStore_Release(This) (This)->lpVtbl->Release(This)
  454. /*** IPropertyStore methods ***/
  455. #define IPropertyStore_GetCount(This,cProps) (This)->lpVtbl->GetCount(This,cProps)
  456. #define IPropertyStore_GetAt(This,iProp,pkey) (This)->lpVtbl->GetAt(This,iProp,pkey)
  457. #define IPropertyStore_GetValue(This,key,pv) (This)->lpVtbl->GetValue(This,key,pv)
  458. #define IPropertyStore_SetValue(This,key,propvar) (This)->lpVtbl->SetValue(This,key,propvar)
  459. #define IPropertyStore_Commit(This) (This)->lpVtbl->Commit(This)
  460. #else
  461. /*** IUnknown methods ***/
  462. static FORCEINLINE HRESULT IPropertyStore_QueryInterface(IPropertyStore* This,REFIID riid,void **ppvObject) {
  463. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  464. }
  465. static FORCEINLINE ULONG IPropertyStore_AddRef(IPropertyStore* This) {
  466. return This->lpVtbl->AddRef(This);
  467. }
  468. static FORCEINLINE ULONG IPropertyStore_Release(IPropertyStore* This) {
  469. return This->lpVtbl->Release(This);
  470. }
  471. /*** IPropertyStore methods ***/
  472. static FORCEINLINE HRESULT IPropertyStore_GetCount(IPropertyStore* This,DWORD *cProps) {
  473. return This->lpVtbl->GetCount(This,cProps);
  474. }
  475. static FORCEINLINE HRESULT IPropertyStore_GetAt(IPropertyStore* This,DWORD iProp,PROPERTYKEY *pkey) {
  476. return This->lpVtbl->GetAt(This,iProp,pkey);
  477. }
  478. static FORCEINLINE HRESULT IPropertyStore_GetValue(IPropertyStore* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
  479. return This->lpVtbl->GetValue(This,key,pv);
  480. }
  481. static FORCEINLINE HRESULT IPropertyStore_SetValue(IPropertyStore* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
  482. return This->lpVtbl->SetValue(This,key,propvar);
  483. }
  484. static FORCEINLINE HRESULT IPropertyStore_Commit(IPropertyStore* This) {
  485. return This->lpVtbl->Commit(This);
  486. }
  487. #endif
  488. #endif
  489. #endif
  490. #endif /* __IPropertyStore_INTERFACE_DEFINED__ */
  491. typedef IPropertyStore *LPPROPERTYSTORE;
  492. #endif
  493. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  494. /*****************************************************************************
  495. * INamedPropertyStore interface
  496. */
  497. #ifndef __INamedPropertyStore_INTERFACE_DEFINED__
  498. #define __INamedPropertyStore_INTERFACE_DEFINED__
  499. DEFINE_GUID(IID_INamedPropertyStore, 0x71604b0f, 0x97b0, 0x4764, 0x85,0x77, 0x2f,0x13,0xe9,0x8a,0x14,0x22);
  500. #if defined(__cplusplus) && !defined(CINTERFACE)
  501. MIDL_INTERFACE("71604b0f-97b0-4764-8577-2f13e98a1422")
  502. INamedPropertyStore : public IUnknown
  503. {
  504. virtual HRESULT STDMETHODCALLTYPE GetNamedValue(
  505. LPCWSTR pszName,
  506. PROPVARIANT *ppropvar) = 0;
  507. virtual HRESULT STDMETHODCALLTYPE SetNamedValue(
  508. LPCWSTR pszName,
  509. REFPROPVARIANT propvar) = 0;
  510. virtual HRESULT STDMETHODCALLTYPE GetNameCount(
  511. DWORD *pdwCount) = 0;
  512. virtual HRESULT STDMETHODCALLTYPE GetNameAt(
  513. DWORD iProp,
  514. BSTR *pbstrName) = 0;
  515. };
  516. #ifdef __CRT_UUID_DECL
  517. __CRT_UUID_DECL(INamedPropertyStore, 0x71604b0f, 0x97b0, 0x4764, 0x85,0x77, 0x2f,0x13,0xe9,0x8a,0x14,0x22)
  518. #endif
  519. #else
  520. typedef struct INamedPropertyStoreVtbl {
  521. BEGIN_INTERFACE
  522. /*** IUnknown methods ***/
  523. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  524. INamedPropertyStore *This,
  525. REFIID riid,
  526. void **ppvObject);
  527. ULONG (STDMETHODCALLTYPE *AddRef)(
  528. INamedPropertyStore *This);
  529. ULONG (STDMETHODCALLTYPE *Release)(
  530. INamedPropertyStore *This);
  531. /*** INamedPropertyStore methods ***/
  532. HRESULT (STDMETHODCALLTYPE *GetNamedValue)(
  533. INamedPropertyStore *This,
  534. LPCWSTR pszName,
  535. PROPVARIANT *ppropvar);
  536. HRESULT (STDMETHODCALLTYPE *SetNamedValue)(
  537. INamedPropertyStore *This,
  538. LPCWSTR pszName,
  539. REFPROPVARIANT propvar);
  540. HRESULT (STDMETHODCALLTYPE *GetNameCount)(
  541. INamedPropertyStore *This,
  542. DWORD *pdwCount);
  543. HRESULT (STDMETHODCALLTYPE *GetNameAt)(
  544. INamedPropertyStore *This,
  545. DWORD iProp,
  546. BSTR *pbstrName);
  547. END_INTERFACE
  548. } INamedPropertyStoreVtbl;
  549. interface INamedPropertyStore {
  550. CONST_VTBL INamedPropertyStoreVtbl* lpVtbl;
  551. };
  552. #ifdef COBJMACROS
  553. #ifndef WIDL_C_INLINE_WRAPPERS
  554. /*** IUnknown methods ***/
  555. #define INamedPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  556. #define INamedPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
  557. #define INamedPropertyStore_Release(This) (This)->lpVtbl->Release(This)
  558. /*** INamedPropertyStore methods ***/
  559. #define INamedPropertyStore_GetNamedValue(This,pszName,ppropvar) (This)->lpVtbl->GetNamedValue(This,pszName,ppropvar)
  560. #define INamedPropertyStore_SetNamedValue(This,pszName,propvar) (This)->lpVtbl->SetNamedValue(This,pszName,propvar)
  561. #define INamedPropertyStore_GetNameCount(This,pdwCount) (This)->lpVtbl->GetNameCount(This,pdwCount)
  562. #define INamedPropertyStore_GetNameAt(This,iProp,pbstrName) (This)->lpVtbl->GetNameAt(This,iProp,pbstrName)
  563. #else
  564. /*** IUnknown methods ***/
  565. static FORCEINLINE HRESULT INamedPropertyStore_QueryInterface(INamedPropertyStore* This,REFIID riid,void **ppvObject) {
  566. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  567. }
  568. static FORCEINLINE ULONG INamedPropertyStore_AddRef(INamedPropertyStore* This) {
  569. return This->lpVtbl->AddRef(This);
  570. }
  571. static FORCEINLINE ULONG INamedPropertyStore_Release(INamedPropertyStore* This) {
  572. return This->lpVtbl->Release(This);
  573. }
  574. /*** INamedPropertyStore methods ***/
  575. static FORCEINLINE HRESULT INamedPropertyStore_GetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,PROPVARIANT *ppropvar) {
  576. return This->lpVtbl->GetNamedValue(This,pszName,ppropvar);
  577. }
  578. static FORCEINLINE HRESULT INamedPropertyStore_SetNamedValue(INamedPropertyStore* This,LPCWSTR pszName,REFPROPVARIANT propvar) {
  579. return This->lpVtbl->SetNamedValue(This,pszName,propvar);
  580. }
  581. static FORCEINLINE HRESULT INamedPropertyStore_GetNameCount(INamedPropertyStore* This,DWORD *pdwCount) {
  582. return This->lpVtbl->GetNameCount(This,pdwCount);
  583. }
  584. static FORCEINLINE HRESULT INamedPropertyStore_GetNameAt(INamedPropertyStore* This,DWORD iProp,BSTR *pbstrName) {
  585. return This->lpVtbl->GetNameAt(This,iProp,pbstrName);
  586. }
  587. #endif
  588. #endif
  589. #endif
  590. #endif /* __INamedPropertyStore_INTERFACE_DEFINED__ */
  591. typedef enum GETPROPERTYSTOREFLAGS {
  592. GPS_DEFAULT = 0x0,
  593. GPS_HANDLERPROPERTIESONLY = 0x1,
  594. GPS_READWRITE = 0x2,
  595. GPS_TEMPORARY = 0x4,
  596. GPS_FASTPROPERTIESONLY = 0x8,
  597. GPS_OPENSLOWITEM = 0x10,
  598. GPS_DELAYCREATION = 0x20,
  599. GPS_BESTEFFORT = 0x40,
  600. GPS_NO_OPLOCK = 0x80,
  601. GPS_PREFERQUERYPROPERTIES = 0x100,
  602. GPS_MASK_VALID = 0x1ff
  603. } GETPROPERTYSTOREFLAGS;
  604. DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)
  605. /*****************************************************************************
  606. * IObjectWithPropertyKey interface
  607. */
  608. #ifndef __IObjectWithPropertyKey_INTERFACE_DEFINED__
  609. #define __IObjectWithPropertyKey_INTERFACE_DEFINED__
  610. DEFINE_GUID(IID_IObjectWithPropertyKey, 0xfc0ca0a7, 0xc316, 0x4fd2, 0x90,0x31, 0x3e,0x62,0x8e,0x6d,0x4f,0x23);
  611. #if defined(__cplusplus) && !defined(CINTERFACE)
  612. MIDL_INTERFACE("fc0ca0a7-c316-4fd2-9031-3e628e6d4f23")
  613. IObjectWithPropertyKey : public IUnknown
  614. {
  615. virtual HRESULT STDMETHODCALLTYPE SetPropertyKey(
  616. REFPROPERTYKEY key) = 0;
  617. virtual HRESULT STDMETHODCALLTYPE GetPropertyKey(
  618. PROPERTYKEY *pkey) = 0;
  619. };
  620. #ifdef __CRT_UUID_DECL
  621. __CRT_UUID_DECL(IObjectWithPropertyKey, 0xfc0ca0a7, 0xc316, 0x4fd2, 0x90,0x31, 0x3e,0x62,0x8e,0x6d,0x4f,0x23)
  622. #endif
  623. #else
  624. typedef struct IObjectWithPropertyKeyVtbl {
  625. BEGIN_INTERFACE
  626. /*** IUnknown methods ***/
  627. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  628. IObjectWithPropertyKey *This,
  629. REFIID riid,
  630. void **ppvObject);
  631. ULONG (STDMETHODCALLTYPE *AddRef)(
  632. IObjectWithPropertyKey *This);
  633. ULONG (STDMETHODCALLTYPE *Release)(
  634. IObjectWithPropertyKey *This);
  635. /*** IObjectWithPropertyKey methods ***/
  636. HRESULT (STDMETHODCALLTYPE *SetPropertyKey)(
  637. IObjectWithPropertyKey *This,
  638. REFPROPERTYKEY key);
  639. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  640. IObjectWithPropertyKey *This,
  641. PROPERTYKEY *pkey);
  642. END_INTERFACE
  643. } IObjectWithPropertyKeyVtbl;
  644. interface IObjectWithPropertyKey {
  645. CONST_VTBL IObjectWithPropertyKeyVtbl* lpVtbl;
  646. };
  647. #ifdef COBJMACROS
  648. #ifndef WIDL_C_INLINE_WRAPPERS
  649. /*** IUnknown methods ***/
  650. #define IObjectWithPropertyKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  651. #define IObjectWithPropertyKey_AddRef(This) (This)->lpVtbl->AddRef(This)
  652. #define IObjectWithPropertyKey_Release(This) (This)->lpVtbl->Release(This)
  653. /*** IObjectWithPropertyKey methods ***/
  654. #define IObjectWithPropertyKey_SetPropertyKey(This,key) (This)->lpVtbl->SetPropertyKey(This,key)
  655. #define IObjectWithPropertyKey_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  656. #else
  657. /*** IUnknown methods ***/
  658. static FORCEINLINE HRESULT IObjectWithPropertyKey_QueryInterface(IObjectWithPropertyKey* This,REFIID riid,void **ppvObject) {
  659. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  660. }
  661. static FORCEINLINE ULONG IObjectWithPropertyKey_AddRef(IObjectWithPropertyKey* This) {
  662. return This->lpVtbl->AddRef(This);
  663. }
  664. static FORCEINLINE ULONG IObjectWithPropertyKey_Release(IObjectWithPropertyKey* This) {
  665. return This->lpVtbl->Release(This);
  666. }
  667. /*** IObjectWithPropertyKey methods ***/
  668. static FORCEINLINE HRESULT IObjectWithPropertyKey_SetPropertyKey(IObjectWithPropertyKey* This,REFPROPERTYKEY key) {
  669. return This->lpVtbl->SetPropertyKey(This,key);
  670. }
  671. static FORCEINLINE HRESULT IObjectWithPropertyKey_GetPropertyKey(IObjectWithPropertyKey* This,PROPERTYKEY *pkey) {
  672. return This->lpVtbl->GetPropertyKey(This,pkey);
  673. }
  674. #endif
  675. #endif
  676. #endif
  677. #endif /* __IObjectWithPropertyKey_INTERFACE_DEFINED__ */
  678. typedef enum PKA_FLAGS {
  679. PKA_SET = 0,
  680. PKA_APPEND = 1,
  681. PKA_DELETE = 2
  682. } PKA_FLAGS;
  683. /*****************************************************************************
  684. * IPropertyChange interface
  685. */
  686. #ifndef __IPropertyChange_INTERFACE_DEFINED__
  687. #define __IPropertyChange_INTERFACE_DEFINED__
  688. DEFINE_GUID(IID_IPropertyChange, 0xf917bc8a, 0x1bba, 0x4478, 0xa2,0x45, 0x1b,0xde,0x03,0xeb,0x94,0x31);
  689. #if defined(__cplusplus) && !defined(CINTERFACE)
  690. MIDL_INTERFACE("f917bc8a-1bba-4478-a245-1bde03eb9431")
  691. IPropertyChange : public IObjectWithPropertyKey
  692. {
  693. virtual HRESULT STDMETHODCALLTYPE ApplyToPropVariant(
  694. REFPROPVARIANT propvarIn,
  695. PROPVARIANT *ppropvarOut) = 0;
  696. };
  697. #ifdef __CRT_UUID_DECL
  698. __CRT_UUID_DECL(IPropertyChange, 0xf917bc8a, 0x1bba, 0x4478, 0xa2,0x45, 0x1b,0xde,0x03,0xeb,0x94,0x31)
  699. #endif
  700. #else
  701. typedef struct IPropertyChangeVtbl {
  702. BEGIN_INTERFACE
  703. /*** IUnknown methods ***/
  704. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  705. IPropertyChange *This,
  706. REFIID riid,
  707. void **ppvObject);
  708. ULONG (STDMETHODCALLTYPE *AddRef)(
  709. IPropertyChange *This);
  710. ULONG (STDMETHODCALLTYPE *Release)(
  711. IPropertyChange *This);
  712. /*** IObjectWithPropertyKey methods ***/
  713. HRESULT (STDMETHODCALLTYPE *SetPropertyKey)(
  714. IPropertyChange *This,
  715. REFPROPERTYKEY key);
  716. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  717. IPropertyChange *This,
  718. PROPERTYKEY *pkey);
  719. /*** IPropertyChange methods ***/
  720. HRESULT (STDMETHODCALLTYPE *ApplyToPropVariant)(
  721. IPropertyChange *This,
  722. REFPROPVARIANT propvarIn,
  723. PROPVARIANT *ppropvarOut);
  724. END_INTERFACE
  725. } IPropertyChangeVtbl;
  726. interface IPropertyChange {
  727. CONST_VTBL IPropertyChangeVtbl* lpVtbl;
  728. };
  729. #ifdef COBJMACROS
  730. #ifndef WIDL_C_INLINE_WRAPPERS
  731. /*** IUnknown methods ***/
  732. #define IPropertyChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  733. #define IPropertyChange_AddRef(This) (This)->lpVtbl->AddRef(This)
  734. #define IPropertyChange_Release(This) (This)->lpVtbl->Release(This)
  735. /*** IObjectWithPropertyKey methods ***/
  736. #define IPropertyChange_SetPropertyKey(This,key) (This)->lpVtbl->SetPropertyKey(This,key)
  737. #define IPropertyChange_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  738. /*** IPropertyChange methods ***/
  739. #define IPropertyChange_ApplyToPropVariant(This,propvarIn,ppropvarOut) (This)->lpVtbl->ApplyToPropVariant(This,propvarIn,ppropvarOut)
  740. #else
  741. /*** IUnknown methods ***/
  742. static FORCEINLINE HRESULT IPropertyChange_QueryInterface(IPropertyChange* This,REFIID riid,void **ppvObject) {
  743. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  744. }
  745. static FORCEINLINE ULONG IPropertyChange_AddRef(IPropertyChange* This) {
  746. return This->lpVtbl->AddRef(This);
  747. }
  748. static FORCEINLINE ULONG IPropertyChange_Release(IPropertyChange* This) {
  749. return This->lpVtbl->Release(This);
  750. }
  751. /*** IObjectWithPropertyKey methods ***/
  752. static FORCEINLINE HRESULT IPropertyChange_SetPropertyKey(IPropertyChange* This,REFPROPERTYKEY key) {
  753. return This->lpVtbl->SetPropertyKey(This,key);
  754. }
  755. static FORCEINLINE HRESULT IPropertyChange_GetPropertyKey(IPropertyChange* This,PROPERTYKEY *pkey) {
  756. return This->lpVtbl->GetPropertyKey(This,pkey);
  757. }
  758. /*** IPropertyChange methods ***/
  759. static FORCEINLINE HRESULT IPropertyChange_ApplyToPropVariant(IPropertyChange* This,REFPROPVARIANT propvarIn,PROPVARIANT *ppropvarOut) {
  760. return This->lpVtbl->ApplyToPropVariant(This,propvarIn,ppropvarOut);
  761. }
  762. #endif
  763. #endif
  764. #endif
  765. #endif /* __IPropertyChange_INTERFACE_DEFINED__ */
  766. /*****************************************************************************
  767. * IPropertyChangeArray interface
  768. */
  769. #ifndef __IPropertyChangeArray_INTERFACE_DEFINED__
  770. #define __IPropertyChangeArray_INTERFACE_DEFINED__
  771. DEFINE_GUID(IID_IPropertyChangeArray, 0x380f5cad, 0x1b5e, 0x42f2, 0x80,0x5d, 0x63,0x7f,0xd3,0x92,0xd3,0x1e);
  772. #if defined(__cplusplus) && !defined(CINTERFACE)
  773. MIDL_INTERFACE("380f5cad-1b5e-42f2-805d-637fd392d31e")
  774. IPropertyChangeArray : public IUnknown
  775. {
  776. virtual HRESULT STDMETHODCALLTYPE GetCount(
  777. UINT *pcOperations) = 0;
  778. virtual HRESULT STDMETHODCALLTYPE GetAt(
  779. UINT iIndex,
  780. REFIID riid,
  781. void **ppv) = 0;
  782. virtual HRESULT STDMETHODCALLTYPE InsertAt(
  783. UINT iIndex,
  784. IPropertyChange *ppropChange) = 0;
  785. virtual HRESULT STDMETHODCALLTYPE Append(
  786. IPropertyChange *ppropChange) = 0;
  787. virtual HRESULT STDMETHODCALLTYPE AppendOrReplace(
  788. IPropertyChange *ppropChange) = 0;
  789. virtual HRESULT STDMETHODCALLTYPE RemoveAt(
  790. UINT iIndex) = 0;
  791. virtual HRESULT STDMETHODCALLTYPE IsKeyInArray(
  792. REFPROPERTYKEY key) = 0;
  793. };
  794. #ifdef __CRT_UUID_DECL
  795. __CRT_UUID_DECL(IPropertyChangeArray, 0x380f5cad, 0x1b5e, 0x42f2, 0x80,0x5d, 0x63,0x7f,0xd3,0x92,0xd3,0x1e)
  796. #endif
  797. #else
  798. typedef struct IPropertyChangeArrayVtbl {
  799. BEGIN_INTERFACE
  800. /*** IUnknown methods ***/
  801. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  802. IPropertyChangeArray *This,
  803. REFIID riid,
  804. void **ppvObject);
  805. ULONG (STDMETHODCALLTYPE *AddRef)(
  806. IPropertyChangeArray *This);
  807. ULONG (STDMETHODCALLTYPE *Release)(
  808. IPropertyChangeArray *This);
  809. /*** IPropertyChangeArray methods ***/
  810. HRESULT (STDMETHODCALLTYPE *GetCount)(
  811. IPropertyChangeArray *This,
  812. UINT *pcOperations);
  813. HRESULT (STDMETHODCALLTYPE *GetAt)(
  814. IPropertyChangeArray *This,
  815. UINT iIndex,
  816. REFIID riid,
  817. void **ppv);
  818. HRESULT (STDMETHODCALLTYPE *InsertAt)(
  819. IPropertyChangeArray *This,
  820. UINT iIndex,
  821. IPropertyChange *ppropChange);
  822. HRESULT (STDMETHODCALLTYPE *Append)(
  823. IPropertyChangeArray *This,
  824. IPropertyChange *ppropChange);
  825. HRESULT (STDMETHODCALLTYPE *AppendOrReplace)(
  826. IPropertyChangeArray *This,
  827. IPropertyChange *ppropChange);
  828. HRESULT (STDMETHODCALLTYPE *RemoveAt)(
  829. IPropertyChangeArray *This,
  830. UINT iIndex);
  831. HRESULT (STDMETHODCALLTYPE *IsKeyInArray)(
  832. IPropertyChangeArray *This,
  833. REFPROPERTYKEY key);
  834. END_INTERFACE
  835. } IPropertyChangeArrayVtbl;
  836. interface IPropertyChangeArray {
  837. CONST_VTBL IPropertyChangeArrayVtbl* lpVtbl;
  838. };
  839. #ifdef COBJMACROS
  840. #ifndef WIDL_C_INLINE_WRAPPERS
  841. /*** IUnknown methods ***/
  842. #define IPropertyChangeArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  843. #define IPropertyChangeArray_AddRef(This) (This)->lpVtbl->AddRef(This)
  844. #define IPropertyChangeArray_Release(This) (This)->lpVtbl->Release(This)
  845. /*** IPropertyChangeArray methods ***/
  846. #define IPropertyChangeArray_GetCount(This,pcOperations) (This)->lpVtbl->GetCount(This,pcOperations)
  847. #define IPropertyChangeArray_GetAt(This,iIndex,riid,ppv) (This)->lpVtbl->GetAt(This,iIndex,riid,ppv)
  848. #define IPropertyChangeArray_InsertAt(This,iIndex,ppropChange) (This)->lpVtbl->InsertAt(This,iIndex,ppropChange)
  849. #define IPropertyChangeArray_Append(This,ppropChange) (This)->lpVtbl->Append(This,ppropChange)
  850. #define IPropertyChangeArray_AppendOrReplace(This,ppropChange) (This)->lpVtbl->AppendOrReplace(This,ppropChange)
  851. #define IPropertyChangeArray_RemoveAt(This,iIndex) (This)->lpVtbl->RemoveAt(This,iIndex)
  852. #define IPropertyChangeArray_IsKeyInArray(This,key) (This)->lpVtbl->IsKeyInArray(This,key)
  853. #else
  854. /*** IUnknown methods ***/
  855. static FORCEINLINE HRESULT IPropertyChangeArray_QueryInterface(IPropertyChangeArray* This,REFIID riid,void **ppvObject) {
  856. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  857. }
  858. static FORCEINLINE ULONG IPropertyChangeArray_AddRef(IPropertyChangeArray* This) {
  859. return This->lpVtbl->AddRef(This);
  860. }
  861. static FORCEINLINE ULONG IPropertyChangeArray_Release(IPropertyChangeArray* This) {
  862. return This->lpVtbl->Release(This);
  863. }
  864. /*** IPropertyChangeArray methods ***/
  865. static FORCEINLINE HRESULT IPropertyChangeArray_GetCount(IPropertyChangeArray* This,UINT *pcOperations) {
  866. return This->lpVtbl->GetCount(This,pcOperations);
  867. }
  868. static FORCEINLINE HRESULT IPropertyChangeArray_GetAt(IPropertyChangeArray* This,UINT iIndex,REFIID riid,void **ppv) {
  869. return This->lpVtbl->GetAt(This,iIndex,riid,ppv);
  870. }
  871. static FORCEINLINE HRESULT IPropertyChangeArray_InsertAt(IPropertyChangeArray* This,UINT iIndex,IPropertyChange *ppropChange) {
  872. return This->lpVtbl->InsertAt(This,iIndex,ppropChange);
  873. }
  874. static FORCEINLINE HRESULT IPropertyChangeArray_Append(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
  875. return This->lpVtbl->Append(This,ppropChange);
  876. }
  877. static FORCEINLINE HRESULT IPropertyChangeArray_AppendOrReplace(IPropertyChangeArray* This,IPropertyChange *ppropChange) {
  878. return This->lpVtbl->AppendOrReplace(This,ppropChange);
  879. }
  880. static FORCEINLINE HRESULT IPropertyChangeArray_RemoveAt(IPropertyChangeArray* This,UINT iIndex) {
  881. return This->lpVtbl->RemoveAt(This,iIndex);
  882. }
  883. static FORCEINLINE HRESULT IPropertyChangeArray_IsKeyInArray(IPropertyChangeArray* This,REFPROPERTYKEY key) {
  884. return This->lpVtbl->IsKeyInArray(This,key);
  885. }
  886. #endif
  887. #endif
  888. #endif
  889. #endif /* __IPropertyChangeArray_INTERFACE_DEFINED__ */
  890. /*****************************************************************************
  891. * IPropertyStoreCapabilities interface
  892. */
  893. #ifndef __IPropertyStoreCapabilities_INTERFACE_DEFINED__
  894. #define __IPropertyStoreCapabilities_INTERFACE_DEFINED__
  895. DEFINE_GUID(IID_IPropertyStoreCapabilities, 0xc8e2d566, 0x186e, 0x4d49, 0xbf,0x41, 0x69,0x09,0xea,0xd5,0x6a,0xcc);
  896. #if defined(__cplusplus) && !defined(CINTERFACE)
  897. MIDL_INTERFACE("c8e2d566-186e-4d49-bf41-6909ead56acc")
  898. IPropertyStoreCapabilities : public IUnknown
  899. {
  900. virtual HRESULT STDMETHODCALLTYPE IsPropertyWritable(
  901. REFPROPERTYKEY key) = 0;
  902. };
  903. #ifdef __CRT_UUID_DECL
  904. __CRT_UUID_DECL(IPropertyStoreCapabilities, 0xc8e2d566, 0x186e, 0x4d49, 0xbf,0x41, 0x69,0x09,0xea,0xd5,0x6a,0xcc)
  905. #endif
  906. #else
  907. typedef struct IPropertyStoreCapabilitiesVtbl {
  908. BEGIN_INTERFACE
  909. /*** IUnknown methods ***/
  910. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  911. IPropertyStoreCapabilities *This,
  912. REFIID riid,
  913. void **ppvObject);
  914. ULONG (STDMETHODCALLTYPE *AddRef)(
  915. IPropertyStoreCapabilities *This);
  916. ULONG (STDMETHODCALLTYPE *Release)(
  917. IPropertyStoreCapabilities *This);
  918. /*** IPropertyStoreCapabilities methods ***/
  919. HRESULT (STDMETHODCALLTYPE *IsPropertyWritable)(
  920. IPropertyStoreCapabilities *This,
  921. REFPROPERTYKEY key);
  922. END_INTERFACE
  923. } IPropertyStoreCapabilitiesVtbl;
  924. interface IPropertyStoreCapabilities {
  925. CONST_VTBL IPropertyStoreCapabilitiesVtbl* lpVtbl;
  926. };
  927. #ifdef COBJMACROS
  928. #ifndef WIDL_C_INLINE_WRAPPERS
  929. /*** IUnknown methods ***/
  930. #define IPropertyStoreCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  931. #define IPropertyStoreCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
  932. #define IPropertyStoreCapabilities_Release(This) (This)->lpVtbl->Release(This)
  933. /*** IPropertyStoreCapabilities methods ***/
  934. #define IPropertyStoreCapabilities_IsPropertyWritable(This,key) (This)->lpVtbl->IsPropertyWritable(This,key)
  935. #else
  936. /*** IUnknown methods ***/
  937. static FORCEINLINE HRESULT IPropertyStoreCapabilities_QueryInterface(IPropertyStoreCapabilities* This,REFIID riid,void **ppvObject) {
  938. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  939. }
  940. static FORCEINLINE ULONG IPropertyStoreCapabilities_AddRef(IPropertyStoreCapabilities* This) {
  941. return This->lpVtbl->AddRef(This);
  942. }
  943. static FORCEINLINE ULONG IPropertyStoreCapabilities_Release(IPropertyStoreCapabilities* This) {
  944. return This->lpVtbl->Release(This);
  945. }
  946. /*** IPropertyStoreCapabilities methods ***/
  947. static FORCEINLINE HRESULT IPropertyStoreCapabilities_IsPropertyWritable(IPropertyStoreCapabilities* This,REFPROPERTYKEY key) {
  948. return This->lpVtbl->IsPropertyWritable(This,key);
  949. }
  950. #endif
  951. #endif
  952. #endif
  953. #endif /* __IPropertyStoreCapabilities_INTERFACE_DEFINED__ */
  954. /*****************************************************************************
  955. * IPropertyStoreCache interface
  956. */
  957. #ifndef __IPropertyStoreCache_INTERFACE_DEFINED__
  958. #define __IPropertyStoreCache_INTERFACE_DEFINED__
  959. typedef enum PSC_STATE {
  960. PSC_NORMAL = 0,
  961. PSC_NOTINSOURCE = 1,
  962. PSC_DIRTY = 2,
  963. PSC_READONLY = 3
  964. } PSC_STATE;
  965. DEFINE_GUID(IID_IPropertyStoreCache, 0x3017056d, 0x9a91, 0x4e90, 0x93,0x7d, 0x74,0x6c,0x72,0xab,0xbf,0x4f);
  966. #if defined(__cplusplus) && !defined(CINTERFACE)
  967. MIDL_INTERFACE("3017056d-9a91-4e90-937d-746c72abbf4f")
  968. IPropertyStoreCache : public IPropertyStore
  969. {
  970. virtual HRESULT STDMETHODCALLTYPE GetState(
  971. REFPROPERTYKEY key,
  972. PSC_STATE *pstate) = 0;
  973. virtual HRESULT STDMETHODCALLTYPE GetValueAndState(
  974. REFPROPERTYKEY key,
  975. PROPVARIANT *ppropvar,
  976. PSC_STATE *pstate) = 0;
  977. virtual HRESULT STDMETHODCALLTYPE SetState(
  978. REFPROPERTYKEY key,
  979. PSC_STATE state) = 0;
  980. virtual HRESULT STDMETHODCALLTYPE SetValueAndState(
  981. REFPROPERTYKEY key,
  982. const PROPVARIANT *ppropvar,
  983. PSC_STATE state) = 0;
  984. };
  985. #ifdef __CRT_UUID_DECL
  986. __CRT_UUID_DECL(IPropertyStoreCache, 0x3017056d, 0x9a91, 0x4e90, 0x93,0x7d, 0x74,0x6c,0x72,0xab,0xbf,0x4f)
  987. #endif
  988. #else
  989. typedef struct IPropertyStoreCacheVtbl {
  990. BEGIN_INTERFACE
  991. /*** IUnknown methods ***/
  992. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  993. IPropertyStoreCache *This,
  994. REFIID riid,
  995. void **ppvObject);
  996. ULONG (STDMETHODCALLTYPE *AddRef)(
  997. IPropertyStoreCache *This);
  998. ULONG (STDMETHODCALLTYPE *Release)(
  999. IPropertyStoreCache *This);
  1000. /*** IPropertyStore methods ***/
  1001. HRESULT (STDMETHODCALLTYPE *GetCount)(
  1002. IPropertyStoreCache *This,
  1003. DWORD *cProps);
  1004. HRESULT (STDMETHODCALLTYPE *GetAt)(
  1005. IPropertyStoreCache *This,
  1006. DWORD iProp,
  1007. PROPERTYKEY *pkey);
  1008. HRESULT (STDMETHODCALLTYPE *GetValue)(
  1009. IPropertyStoreCache *This,
  1010. REFPROPERTYKEY key,
  1011. PROPVARIANT *pv);
  1012. HRESULT (STDMETHODCALLTYPE *SetValue)(
  1013. IPropertyStoreCache *This,
  1014. REFPROPERTYKEY key,
  1015. REFPROPVARIANT propvar);
  1016. HRESULT (STDMETHODCALLTYPE *Commit)(
  1017. IPropertyStoreCache *This);
  1018. /*** IPropertyStoreCache methods ***/
  1019. HRESULT (STDMETHODCALLTYPE *GetState)(
  1020. IPropertyStoreCache *This,
  1021. REFPROPERTYKEY key,
  1022. PSC_STATE *pstate);
  1023. HRESULT (STDMETHODCALLTYPE *GetValueAndState)(
  1024. IPropertyStoreCache *This,
  1025. REFPROPERTYKEY key,
  1026. PROPVARIANT *ppropvar,
  1027. PSC_STATE *pstate);
  1028. HRESULT (STDMETHODCALLTYPE *SetState)(
  1029. IPropertyStoreCache *This,
  1030. REFPROPERTYKEY key,
  1031. PSC_STATE state);
  1032. HRESULT (STDMETHODCALLTYPE *SetValueAndState)(
  1033. IPropertyStoreCache *This,
  1034. REFPROPERTYKEY key,
  1035. const PROPVARIANT *ppropvar,
  1036. PSC_STATE state);
  1037. END_INTERFACE
  1038. } IPropertyStoreCacheVtbl;
  1039. interface IPropertyStoreCache {
  1040. CONST_VTBL IPropertyStoreCacheVtbl* lpVtbl;
  1041. };
  1042. #ifdef COBJMACROS
  1043. #ifndef WIDL_C_INLINE_WRAPPERS
  1044. /*** IUnknown methods ***/
  1045. #define IPropertyStoreCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1046. #define IPropertyStoreCache_AddRef(This) (This)->lpVtbl->AddRef(This)
  1047. #define IPropertyStoreCache_Release(This) (This)->lpVtbl->Release(This)
  1048. /*** IPropertyStore methods ***/
  1049. #define IPropertyStoreCache_GetCount(This,cProps) (This)->lpVtbl->GetCount(This,cProps)
  1050. #define IPropertyStoreCache_GetAt(This,iProp,pkey) (This)->lpVtbl->GetAt(This,iProp,pkey)
  1051. #define IPropertyStoreCache_GetValue(This,key,pv) (This)->lpVtbl->GetValue(This,key,pv)
  1052. #define IPropertyStoreCache_SetValue(This,key,propvar) (This)->lpVtbl->SetValue(This,key,propvar)
  1053. #define IPropertyStoreCache_Commit(This) (This)->lpVtbl->Commit(This)
  1054. /*** IPropertyStoreCache methods ***/
  1055. #define IPropertyStoreCache_GetState(This,key,pstate) (This)->lpVtbl->GetState(This,key,pstate)
  1056. #define IPropertyStoreCache_GetValueAndState(This,key,ppropvar,pstate) (This)->lpVtbl->GetValueAndState(This,key,ppropvar,pstate)
  1057. #define IPropertyStoreCache_SetState(This,key,state) (This)->lpVtbl->SetState(This,key,state)
  1058. #define IPropertyStoreCache_SetValueAndState(This,key,ppropvar,state) (This)->lpVtbl->SetValueAndState(This,key,ppropvar,state)
  1059. #else
  1060. /*** IUnknown methods ***/
  1061. static FORCEINLINE HRESULT IPropertyStoreCache_QueryInterface(IPropertyStoreCache* This,REFIID riid,void **ppvObject) {
  1062. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1063. }
  1064. static FORCEINLINE ULONG IPropertyStoreCache_AddRef(IPropertyStoreCache* This) {
  1065. return This->lpVtbl->AddRef(This);
  1066. }
  1067. static FORCEINLINE ULONG IPropertyStoreCache_Release(IPropertyStoreCache* This) {
  1068. return This->lpVtbl->Release(This);
  1069. }
  1070. /*** IPropertyStore methods ***/
  1071. static FORCEINLINE HRESULT IPropertyStoreCache_GetCount(IPropertyStoreCache* This,DWORD *cProps) {
  1072. return This->lpVtbl->GetCount(This,cProps);
  1073. }
  1074. static FORCEINLINE HRESULT IPropertyStoreCache_GetAt(IPropertyStoreCache* This,DWORD iProp,PROPERTYKEY *pkey) {
  1075. return This->lpVtbl->GetAt(This,iProp,pkey);
  1076. }
  1077. static FORCEINLINE HRESULT IPropertyStoreCache_GetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *pv) {
  1078. return This->lpVtbl->GetValue(This,key,pv);
  1079. }
  1080. static FORCEINLINE HRESULT IPropertyStoreCache_SetValue(IPropertyStoreCache* This,REFPROPERTYKEY key,REFPROPVARIANT propvar) {
  1081. return This->lpVtbl->SetValue(This,key,propvar);
  1082. }
  1083. static FORCEINLINE HRESULT IPropertyStoreCache_Commit(IPropertyStoreCache* This) {
  1084. return This->lpVtbl->Commit(This);
  1085. }
  1086. /*** IPropertyStoreCache methods ***/
  1087. static FORCEINLINE HRESULT IPropertyStoreCache_GetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE *pstate) {
  1088. return This->lpVtbl->GetState(This,key,pstate);
  1089. }
  1090. static FORCEINLINE HRESULT IPropertyStoreCache_GetValueAndState(IPropertyStoreCache* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar,PSC_STATE *pstate) {
  1091. return This->lpVtbl->GetValueAndState(This,key,ppropvar,pstate);
  1092. }
  1093. static FORCEINLINE HRESULT IPropertyStoreCache_SetState(IPropertyStoreCache* This,REFPROPERTYKEY key,PSC_STATE state) {
  1094. return This->lpVtbl->SetState(This,key,state);
  1095. }
  1096. static FORCEINLINE HRESULT IPropertyStoreCache_SetValueAndState(IPropertyStoreCache* This,REFPROPERTYKEY key,const PROPVARIANT *ppropvar,PSC_STATE state) {
  1097. return This->lpVtbl->SetValueAndState(This,key,ppropvar,state);
  1098. }
  1099. #endif
  1100. #endif
  1101. #endif
  1102. #endif /* __IPropertyStoreCache_INTERFACE_DEFINED__ */
  1103. /*****************************************************************************
  1104. * IPropertyEnumType interface
  1105. */
  1106. #ifndef __IPropertyEnumType_INTERFACE_DEFINED__
  1107. #define __IPropertyEnumType_INTERFACE_DEFINED__
  1108. typedef enum PROPENUMTYPE {
  1109. PET_DISCRETEVALUE = 0,
  1110. PET_RANGEDVALUE = 1,
  1111. PET_DEFAULTVALUE = 2,
  1112. PET_ENDRANGE = 3
  1113. } PROPENUMTYPE;
  1114. DEFINE_GUID(IID_IPropertyEnumType, 0x11e1fbf9, 0x2d56, 0x4a6b, 0x8d,0xb3, 0x7c,0xd1,0x93,0xa4,0x71,0xf2);
  1115. #if defined(__cplusplus) && !defined(CINTERFACE)
  1116. MIDL_INTERFACE("11e1fbf9-2d56-4a6b-8db3-7cd193a471f2")
  1117. IPropertyEnumType : public IUnknown
  1118. {
  1119. virtual HRESULT STDMETHODCALLTYPE GetEnumType(
  1120. PROPENUMTYPE *penumtype) = 0;
  1121. virtual HRESULT STDMETHODCALLTYPE GetValue(
  1122. PROPVARIANT *ppropvar) = 0;
  1123. virtual HRESULT STDMETHODCALLTYPE GetRangeMinValue(
  1124. PROPVARIANT *ppropvarMin) = 0;
  1125. virtual HRESULT STDMETHODCALLTYPE GetRangeSetValue(
  1126. PROPVARIANT *ppropvarSet) = 0;
  1127. virtual HRESULT STDMETHODCALLTYPE GetDisplayText(
  1128. LPWSTR *ppszDisplay) = 0;
  1129. };
  1130. #ifdef __CRT_UUID_DECL
  1131. __CRT_UUID_DECL(IPropertyEnumType, 0x11e1fbf9, 0x2d56, 0x4a6b, 0x8d,0xb3, 0x7c,0xd1,0x93,0xa4,0x71,0xf2)
  1132. #endif
  1133. #else
  1134. typedef struct IPropertyEnumTypeVtbl {
  1135. BEGIN_INTERFACE
  1136. /*** IUnknown methods ***/
  1137. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1138. IPropertyEnumType *This,
  1139. REFIID riid,
  1140. void **ppvObject);
  1141. ULONG (STDMETHODCALLTYPE *AddRef)(
  1142. IPropertyEnumType *This);
  1143. ULONG (STDMETHODCALLTYPE *Release)(
  1144. IPropertyEnumType *This);
  1145. /*** IPropertyEnumType methods ***/
  1146. HRESULT (STDMETHODCALLTYPE *GetEnumType)(
  1147. IPropertyEnumType *This,
  1148. PROPENUMTYPE *penumtype);
  1149. HRESULT (STDMETHODCALLTYPE *GetValue)(
  1150. IPropertyEnumType *This,
  1151. PROPVARIANT *ppropvar);
  1152. HRESULT (STDMETHODCALLTYPE *GetRangeMinValue)(
  1153. IPropertyEnumType *This,
  1154. PROPVARIANT *ppropvarMin);
  1155. HRESULT (STDMETHODCALLTYPE *GetRangeSetValue)(
  1156. IPropertyEnumType *This,
  1157. PROPVARIANT *ppropvarSet);
  1158. HRESULT (STDMETHODCALLTYPE *GetDisplayText)(
  1159. IPropertyEnumType *This,
  1160. LPWSTR *ppszDisplay);
  1161. END_INTERFACE
  1162. } IPropertyEnumTypeVtbl;
  1163. interface IPropertyEnumType {
  1164. CONST_VTBL IPropertyEnumTypeVtbl* lpVtbl;
  1165. };
  1166. #ifdef COBJMACROS
  1167. #ifndef WIDL_C_INLINE_WRAPPERS
  1168. /*** IUnknown methods ***/
  1169. #define IPropertyEnumType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1170. #define IPropertyEnumType_AddRef(This) (This)->lpVtbl->AddRef(This)
  1171. #define IPropertyEnumType_Release(This) (This)->lpVtbl->Release(This)
  1172. /*** IPropertyEnumType methods ***/
  1173. #define IPropertyEnumType_GetEnumType(This,penumtype) (This)->lpVtbl->GetEnumType(This,penumtype)
  1174. #define IPropertyEnumType_GetValue(This,ppropvar) (This)->lpVtbl->GetValue(This,ppropvar)
  1175. #define IPropertyEnumType_GetRangeMinValue(This,ppropvarMin) (This)->lpVtbl->GetRangeMinValue(This,ppropvarMin)
  1176. #define IPropertyEnumType_GetRangeSetValue(This,ppropvarSet) (This)->lpVtbl->GetRangeSetValue(This,ppropvarSet)
  1177. #define IPropertyEnumType_GetDisplayText(This,ppszDisplay) (This)->lpVtbl->GetDisplayText(This,ppszDisplay)
  1178. #else
  1179. /*** IUnknown methods ***/
  1180. static FORCEINLINE HRESULT IPropertyEnumType_QueryInterface(IPropertyEnumType* This,REFIID riid,void **ppvObject) {
  1181. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1182. }
  1183. static FORCEINLINE ULONG IPropertyEnumType_AddRef(IPropertyEnumType* This) {
  1184. return This->lpVtbl->AddRef(This);
  1185. }
  1186. static FORCEINLINE ULONG IPropertyEnumType_Release(IPropertyEnumType* This) {
  1187. return This->lpVtbl->Release(This);
  1188. }
  1189. /*** IPropertyEnumType methods ***/
  1190. static FORCEINLINE HRESULT IPropertyEnumType_GetEnumType(IPropertyEnumType* This,PROPENUMTYPE *penumtype) {
  1191. return This->lpVtbl->GetEnumType(This,penumtype);
  1192. }
  1193. static FORCEINLINE HRESULT IPropertyEnumType_GetValue(IPropertyEnumType* This,PROPVARIANT *ppropvar) {
  1194. return This->lpVtbl->GetValue(This,ppropvar);
  1195. }
  1196. static FORCEINLINE HRESULT IPropertyEnumType_GetRangeMinValue(IPropertyEnumType* This,PROPVARIANT *ppropvarMin) {
  1197. return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
  1198. }
  1199. static FORCEINLINE HRESULT IPropertyEnumType_GetRangeSetValue(IPropertyEnumType* This,PROPVARIANT *ppropvarSet) {
  1200. return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
  1201. }
  1202. static FORCEINLINE HRESULT IPropertyEnumType_GetDisplayText(IPropertyEnumType* This,LPWSTR *ppszDisplay) {
  1203. return This->lpVtbl->GetDisplayText(This,ppszDisplay);
  1204. }
  1205. #endif
  1206. #endif
  1207. #endif
  1208. #endif /* __IPropertyEnumType_INTERFACE_DEFINED__ */
  1209. /*****************************************************************************
  1210. * IPropertyEnumType2 interface
  1211. */
  1212. #ifndef __IPropertyEnumType2_INTERFACE_DEFINED__
  1213. #define __IPropertyEnumType2_INTERFACE_DEFINED__
  1214. DEFINE_GUID(IID_IPropertyEnumType2, 0x9b6e051c, 0x5ddd, 0x4321, 0x90,0x70, 0xfe,0x2a,0xcb,0x55,0xe7,0x94);
  1215. #if defined(__cplusplus) && !defined(CINTERFACE)
  1216. MIDL_INTERFACE("9b6e051c-5ddd-4321-9070-fe2acb55e794")
  1217. IPropertyEnumType2 : public IPropertyEnumType
  1218. {
  1219. virtual HRESULT STDMETHODCALLTYPE GetImageReference(
  1220. LPWSTR *ppszImageRes) = 0;
  1221. };
  1222. #ifdef __CRT_UUID_DECL
  1223. __CRT_UUID_DECL(IPropertyEnumType2, 0x9b6e051c, 0x5ddd, 0x4321, 0x90,0x70, 0xfe,0x2a,0xcb,0x55,0xe7,0x94)
  1224. #endif
  1225. #else
  1226. typedef struct IPropertyEnumType2Vtbl {
  1227. BEGIN_INTERFACE
  1228. /*** IUnknown methods ***/
  1229. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1230. IPropertyEnumType2 *This,
  1231. REFIID riid,
  1232. void **ppvObject);
  1233. ULONG (STDMETHODCALLTYPE *AddRef)(
  1234. IPropertyEnumType2 *This);
  1235. ULONG (STDMETHODCALLTYPE *Release)(
  1236. IPropertyEnumType2 *This);
  1237. /*** IPropertyEnumType methods ***/
  1238. HRESULT (STDMETHODCALLTYPE *GetEnumType)(
  1239. IPropertyEnumType2 *This,
  1240. PROPENUMTYPE *penumtype);
  1241. HRESULT (STDMETHODCALLTYPE *GetValue)(
  1242. IPropertyEnumType2 *This,
  1243. PROPVARIANT *ppropvar);
  1244. HRESULT (STDMETHODCALLTYPE *GetRangeMinValue)(
  1245. IPropertyEnumType2 *This,
  1246. PROPVARIANT *ppropvarMin);
  1247. HRESULT (STDMETHODCALLTYPE *GetRangeSetValue)(
  1248. IPropertyEnumType2 *This,
  1249. PROPVARIANT *ppropvarSet);
  1250. HRESULT (STDMETHODCALLTYPE *GetDisplayText)(
  1251. IPropertyEnumType2 *This,
  1252. LPWSTR *ppszDisplay);
  1253. /*** IPropertyEnumType2 methods ***/
  1254. HRESULT (STDMETHODCALLTYPE *GetImageReference)(
  1255. IPropertyEnumType2 *This,
  1256. LPWSTR *ppszImageRes);
  1257. END_INTERFACE
  1258. } IPropertyEnumType2Vtbl;
  1259. interface IPropertyEnumType2 {
  1260. CONST_VTBL IPropertyEnumType2Vtbl* lpVtbl;
  1261. };
  1262. #ifdef COBJMACROS
  1263. #ifndef WIDL_C_INLINE_WRAPPERS
  1264. /*** IUnknown methods ***/
  1265. #define IPropertyEnumType2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1266. #define IPropertyEnumType2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1267. #define IPropertyEnumType2_Release(This) (This)->lpVtbl->Release(This)
  1268. /*** IPropertyEnumType methods ***/
  1269. #define IPropertyEnumType2_GetEnumType(This,penumtype) (This)->lpVtbl->GetEnumType(This,penumtype)
  1270. #define IPropertyEnumType2_GetValue(This,ppropvar) (This)->lpVtbl->GetValue(This,ppropvar)
  1271. #define IPropertyEnumType2_GetRangeMinValue(This,ppropvarMin) (This)->lpVtbl->GetRangeMinValue(This,ppropvarMin)
  1272. #define IPropertyEnumType2_GetRangeSetValue(This,ppropvarSet) (This)->lpVtbl->GetRangeSetValue(This,ppropvarSet)
  1273. #define IPropertyEnumType2_GetDisplayText(This,ppszDisplay) (This)->lpVtbl->GetDisplayText(This,ppszDisplay)
  1274. /*** IPropertyEnumType2 methods ***/
  1275. #define IPropertyEnumType2_GetImageReference(This,ppszImageRes) (This)->lpVtbl->GetImageReference(This,ppszImageRes)
  1276. #else
  1277. /*** IUnknown methods ***/
  1278. static FORCEINLINE HRESULT IPropertyEnumType2_QueryInterface(IPropertyEnumType2* This,REFIID riid,void **ppvObject) {
  1279. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1280. }
  1281. static FORCEINLINE ULONG IPropertyEnumType2_AddRef(IPropertyEnumType2* This) {
  1282. return This->lpVtbl->AddRef(This);
  1283. }
  1284. static FORCEINLINE ULONG IPropertyEnumType2_Release(IPropertyEnumType2* This) {
  1285. return This->lpVtbl->Release(This);
  1286. }
  1287. /*** IPropertyEnumType methods ***/
  1288. static FORCEINLINE HRESULT IPropertyEnumType2_GetEnumType(IPropertyEnumType2* This,PROPENUMTYPE *penumtype) {
  1289. return This->lpVtbl->GetEnumType(This,penumtype);
  1290. }
  1291. static FORCEINLINE HRESULT IPropertyEnumType2_GetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvar) {
  1292. return This->lpVtbl->GetValue(This,ppropvar);
  1293. }
  1294. static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeMinValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarMin) {
  1295. return This->lpVtbl->GetRangeMinValue(This,ppropvarMin);
  1296. }
  1297. static FORCEINLINE HRESULT IPropertyEnumType2_GetRangeSetValue(IPropertyEnumType2* This,PROPVARIANT *ppropvarSet) {
  1298. return This->lpVtbl->GetRangeSetValue(This,ppropvarSet);
  1299. }
  1300. static FORCEINLINE HRESULT IPropertyEnumType2_GetDisplayText(IPropertyEnumType2* This,LPWSTR *ppszDisplay) {
  1301. return This->lpVtbl->GetDisplayText(This,ppszDisplay);
  1302. }
  1303. /*** IPropertyEnumType2 methods ***/
  1304. static FORCEINLINE HRESULT IPropertyEnumType2_GetImageReference(IPropertyEnumType2* This,LPWSTR *ppszImageRes) {
  1305. return This->lpVtbl->GetImageReference(This,ppszImageRes);
  1306. }
  1307. #endif
  1308. #endif
  1309. #endif
  1310. #endif /* __IPropertyEnumType2_INTERFACE_DEFINED__ */
  1311. /*****************************************************************************
  1312. * IPropertyEnumTypeList interface
  1313. */
  1314. #ifndef __IPropertyEnumTypeList_INTERFACE_DEFINED__
  1315. #define __IPropertyEnumTypeList_INTERFACE_DEFINED__
  1316. DEFINE_GUID(IID_IPropertyEnumTypeList, 0xa99400f4, 0x3d84, 0x4557, 0x94,0xba, 0x12,0x42,0xfb,0x2c,0xc9,0xa6);
  1317. #if defined(__cplusplus) && !defined(CINTERFACE)
  1318. MIDL_INTERFACE("a99400f4-3d84-4557-94ba-1242fb2cc9a6")
  1319. IPropertyEnumTypeList : public IUnknown
  1320. {
  1321. virtual HRESULT STDMETHODCALLTYPE GetCount(
  1322. UINT *pctypes) = 0;
  1323. virtual HRESULT STDMETHODCALLTYPE GetAt(
  1324. UINT itype,
  1325. REFIID riid,
  1326. void **ppv) = 0;
  1327. virtual HRESULT STDMETHODCALLTYPE GetConditionAt(
  1328. UINT nIndex,
  1329. REFIID riid,
  1330. void **ppv) = 0;
  1331. virtual HRESULT STDMETHODCALLTYPE FindMatchingIndex(
  1332. REFPROPVARIANT propvarCmp,
  1333. UINT *pnIndex) = 0;
  1334. };
  1335. #ifdef __CRT_UUID_DECL
  1336. __CRT_UUID_DECL(IPropertyEnumTypeList, 0xa99400f4, 0x3d84, 0x4557, 0x94,0xba, 0x12,0x42,0xfb,0x2c,0xc9,0xa6)
  1337. #endif
  1338. #else
  1339. typedef struct IPropertyEnumTypeListVtbl {
  1340. BEGIN_INTERFACE
  1341. /*** IUnknown methods ***/
  1342. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1343. IPropertyEnumTypeList *This,
  1344. REFIID riid,
  1345. void **ppvObject);
  1346. ULONG (STDMETHODCALLTYPE *AddRef)(
  1347. IPropertyEnumTypeList *This);
  1348. ULONG (STDMETHODCALLTYPE *Release)(
  1349. IPropertyEnumTypeList *This);
  1350. /*** IPropertyEnumTypeList methods ***/
  1351. HRESULT (STDMETHODCALLTYPE *GetCount)(
  1352. IPropertyEnumTypeList *This,
  1353. UINT *pctypes);
  1354. HRESULT (STDMETHODCALLTYPE *GetAt)(
  1355. IPropertyEnumTypeList *This,
  1356. UINT itype,
  1357. REFIID riid,
  1358. void **ppv);
  1359. HRESULT (STDMETHODCALLTYPE *GetConditionAt)(
  1360. IPropertyEnumTypeList *This,
  1361. UINT nIndex,
  1362. REFIID riid,
  1363. void **ppv);
  1364. HRESULT (STDMETHODCALLTYPE *FindMatchingIndex)(
  1365. IPropertyEnumTypeList *This,
  1366. REFPROPVARIANT propvarCmp,
  1367. UINT *pnIndex);
  1368. END_INTERFACE
  1369. } IPropertyEnumTypeListVtbl;
  1370. interface IPropertyEnumTypeList {
  1371. CONST_VTBL IPropertyEnumTypeListVtbl* lpVtbl;
  1372. };
  1373. #ifdef COBJMACROS
  1374. #ifndef WIDL_C_INLINE_WRAPPERS
  1375. /*** IUnknown methods ***/
  1376. #define IPropertyEnumTypeList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1377. #define IPropertyEnumTypeList_AddRef(This) (This)->lpVtbl->AddRef(This)
  1378. #define IPropertyEnumTypeList_Release(This) (This)->lpVtbl->Release(This)
  1379. /*** IPropertyEnumTypeList methods ***/
  1380. #define IPropertyEnumTypeList_GetCount(This,pctypes) (This)->lpVtbl->GetCount(This,pctypes)
  1381. #define IPropertyEnumTypeList_GetAt(This,itype,riid,ppv) (This)->lpVtbl->GetAt(This,itype,riid,ppv)
  1382. #define IPropertyEnumTypeList_GetConditionAt(This,nIndex,riid,ppv) (This)->lpVtbl->GetConditionAt(This,nIndex,riid,ppv)
  1383. #define IPropertyEnumTypeList_FindMatchingIndex(This,propvarCmp,pnIndex) (This)->lpVtbl->FindMatchingIndex(This,propvarCmp,pnIndex)
  1384. #else
  1385. /*** IUnknown methods ***/
  1386. static FORCEINLINE HRESULT IPropertyEnumTypeList_QueryInterface(IPropertyEnumTypeList* This,REFIID riid,void **ppvObject) {
  1387. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1388. }
  1389. static FORCEINLINE ULONG IPropertyEnumTypeList_AddRef(IPropertyEnumTypeList* This) {
  1390. return This->lpVtbl->AddRef(This);
  1391. }
  1392. static FORCEINLINE ULONG IPropertyEnumTypeList_Release(IPropertyEnumTypeList* This) {
  1393. return This->lpVtbl->Release(This);
  1394. }
  1395. /*** IPropertyEnumTypeList methods ***/
  1396. static FORCEINLINE HRESULT IPropertyEnumTypeList_GetCount(IPropertyEnumTypeList* This,UINT *pctypes) {
  1397. return This->lpVtbl->GetCount(This,pctypes);
  1398. }
  1399. static FORCEINLINE HRESULT IPropertyEnumTypeList_GetAt(IPropertyEnumTypeList* This,UINT itype,REFIID riid,void **ppv) {
  1400. return This->lpVtbl->GetAt(This,itype,riid,ppv);
  1401. }
  1402. static FORCEINLINE HRESULT IPropertyEnumTypeList_GetConditionAt(IPropertyEnumTypeList* This,UINT nIndex,REFIID riid,void **ppv) {
  1403. return This->lpVtbl->GetConditionAt(This,nIndex,riid,ppv);
  1404. }
  1405. static FORCEINLINE HRESULT IPropertyEnumTypeList_FindMatchingIndex(IPropertyEnumTypeList* This,REFPROPVARIANT propvarCmp,UINT *pnIndex) {
  1406. return This->lpVtbl->FindMatchingIndex(This,propvarCmp,pnIndex);
  1407. }
  1408. #endif
  1409. #endif
  1410. #endif
  1411. #endif /* __IPropertyEnumTypeList_INTERFACE_DEFINED__ */
  1412. /*****************************************************************************
  1413. * IPropertyDescription interface
  1414. */
  1415. #ifndef __IPropertyDescription_INTERFACE_DEFINED__
  1416. #define __IPropertyDescription_INTERFACE_DEFINED__
  1417. typedef enum PROPDESC_TYPE_FLAGS {
  1418. PDTF_DEFAULT = 0x0,
  1419. PDTF_MULTIPLEVALUES = 0x1,
  1420. PDTF_ISINNATE = 0x2,
  1421. PDTF_ISGROUP = 0x4,
  1422. PDTF_CANGROUPBY = 0x8,
  1423. PDTF_CANSTACKBY = 0x10,
  1424. PDTF_ISTREEPROPERTY = 0x20,
  1425. PDTF_INCLUDEINFULLTEXTQUERY = 0x40,
  1426. PDTF_ISVIEWABLE = 0x80,
  1427. PDTF_ISQUERYABLE = 0x100,
  1428. PDTF_CANBEPURGED = 0x200,
  1429. PDTF_SEARCHRAWVALUE = 0x400,
  1430. PDTF_ISSYSTEMPROPERTY = 0x80000000,
  1431. PDTF_MASK_ALL = 0x800007ff
  1432. } PROPDESC_TYPE_FLAGS;
  1433. DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)
  1434. typedef enum PROPDESC_VIEW_FLAGS {
  1435. PDVF_DEFAULT = 0x0,
  1436. PDVF_CENTERALIGN = 0x1,
  1437. PDVF_RIGHTALIGN = 0x2,
  1438. PDVF_BEGINNEWGROUP = 0x4,
  1439. PDVF_FILLAREA = 0x8,
  1440. PDVF_SORTDESCENDING = 0x10,
  1441. PDVF_SHOWONLYIFPRESENT = 0x20,
  1442. PDVF_SHOWBYDEFAULT = 0x40,
  1443. PDVF_SHOWINPRIMARYLIST = 0x80,
  1444. PDVF_SHOWINSECONDARYLIST = 0x100,
  1445. PDVF_HIDELABEL = 0x200,
  1446. PDVF_HIDDEN = 0x800,
  1447. PDVF_CANWRAP = 0x1000,
  1448. PDVF_MASK_ALL = 0x1bff
  1449. } PROPDESC_VIEW_FLAGS;
  1450. DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)
  1451. typedef enum PROPDESC_DISPLAYTYPE {
  1452. PDDT_STRING = 0,
  1453. PDDT_NUMBER = 1,
  1454. PDDT_BOOLEAN = 2,
  1455. PDDT_DATETIME = 3,
  1456. PDDT_ENUMERATED = 4
  1457. } PROPDESC_DISPLAYTYPE;
  1458. typedef enum PROPDESC_GROUPING_RANGE {
  1459. PDGR_DISCRETE = 0,
  1460. PDGR_ALPHANUMERIC = 1,
  1461. PDGR_SIZE = 2,
  1462. PDGR_DYNAMIC = 3,
  1463. PDGR_DATE = 4,
  1464. PDGR_PERCENT = 5,
  1465. PDGR_ENUMERATED = 6
  1466. } PROPDESC_GROUPING_RANGE;
  1467. typedef enum PROPDESC_FORMAT_FLAGS {
  1468. PDFF_DEFAULT = 0x0,
  1469. PDFF_PREFIXNAME = 0x1,
  1470. PDFF_FILENAME = 0x2,
  1471. PDFF_ALWAYSKB = 0x4,
  1472. PDFF_RESERVED_RIGHTTOLEFT = 0x8,
  1473. PDFF_SHORTTIME = 0x10,
  1474. PDFF_LONGTIME = 0x20,
  1475. PDFF_HIDETIME = 0x40,
  1476. PDFF_SHORTDATE = 0x80,
  1477. PDFF_LONGDATE = 0x100,
  1478. PDFF_HIDEDATE = 0x200,
  1479. PDFF_RELATIVEDATE = 0x400,
  1480. PDFF_USEEDITINVITATION = 0x800,
  1481. PDFF_READONLY = 0x1000,
  1482. PDFF_NOAUTOREADINGORDER = 0x2000
  1483. } PROPDESC_FORMAT_FLAGS;
  1484. DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)
  1485. typedef enum PROPDESC_SORTDESCRIPTION {
  1486. PDSD_GENERAL = 0,
  1487. PDSD_A_Z = 1,
  1488. PDSD_LOWEST_HIGHEST = 2,
  1489. PDSD_SMALLEST_BIGGEST = 3,
  1490. PDSD_OLDEST_NEWEST = 4
  1491. } PROPDESC_SORTDESCRIPTION;
  1492. typedef enum PROPDESC_RELATIVEDESCRIPTION_TYPE {
  1493. PDRDT_GENERAL = 0,
  1494. PDRDT_DATE = 1,
  1495. PDRDT_SIZE = 2,
  1496. PDRDT_COUNT = 3,
  1497. PDRDT_REVISION = 4,
  1498. PDRDT_LENGTH = 5,
  1499. PDRDT_DURATION = 6,
  1500. PDRDT_SPEED = 7,
  1501. PDRDT_RATE = 8,
  1502. PDRDT_RATING = 9,
  1503. PDRDT_PRIORITY = 10
  1504. } PROPDESC_RELATIVEDESCRIPTION_TYPE;
  1505. typedef enum PROPDESC_AGGREGATION_TYPE {
  1506. PDAT_DEFAULT = 0,
  1507. PDAT_FIRST = 1,
  1508. PDAT_SUM = 2,
  1509. PDAT_AVERAGE = 3,
  1510. PDAT_DATERANGE = 4,
  1511. PDAT_UNION = 5,
  1512. PDAT_MAX = 6,
  1513. PDAT_MIN = 7
  1514. } PROPDESC_AGGREGATION_TYPE;
  1515. typedef enum PROPDESC_CONDITION_TYPE {
  1516. PDCOT_NONE = 0,
  1517. PDCOT_STRING = 1,
  1518. PDCOT_SIZE = 2,
  1519. PDCOT_DATETIME = 3,
  1520. PDCOT_BOOLEAN = 4,
  1521. PDCOT_NUMBER = 5
  1522. } PROPDESC_CONDITION_TYPE;
  1523. DEFINE_GUID(IID_IPropertyDescription, 0x6f79d558, 0x3e96, 0x4549, 0xa1,0xd1, 0x7d,0x75,0xd2,0x28,0x88,0x14);
  1524. #if defined(__cplusplus) && !defined(CINTERFACE)
  1525. MIDL_INTERFACE("6f79d558-3e96-4549-a1d1-7d75d2288814")
  1526. IPropertyDescription : public IUnknown
  1527. {
  1528. virtual HRESULT STDMETHODCALLTYPE GetPropertyKey(
  1529. PROPERTYKEY *pkey) = 0;
  1530. virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
  1531. LPWSTR *ppszName) = 0;
  1532. virtual HRESULT STDMETHODCALLTYPE GetPropertyType(
  1533. VARTYPE *pvartype) = 0;
  1534. virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
  1535. LPWSTR *ppszName) = 0;
  1536. virtual HRESULT STDMETHODCALLTYPE GetEditInvitation(
  1537. LPWSTR *ppszInvite) = 0;
  1538. virtual HRESULT STDMETHODCALLTYPE GetTypeFlags(
  1539. PROPDESC_TYPE_FLAGS mask,
  1540. PROPDESC_TYPE_FLAGS *ppdtFlags) = 0;
  1541. virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
  1542. PROPDESC_VIEW_FLAGS *ppdvFlags) = 0;
  1543. virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnWidth(
  1544. UINT *pcxChars) = 0;
  1545. virtual HRESULT STDMETHODCALLTYPE GetDisplayType(
  1546. PROPDESC_DISPLAYTYPE *pdisplaytype) = 0;
  1547. virtual HRESULT STDMETHODCALLTYPE GetColumnState(
  1548. SHCOLSTATEF *pcsFlags) = 0;
  1549. virtual HRESULT STDMETHODCALLTYPE GetGroupingRange(
  1550. PROPDESC_GROUPING_RANGE *pgr) = 0;
  1551. virtual HRESULT STDMETHODCALLTYPE GetRelativeDescriptionType(
  1552. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) = 0;
  1553. virtual HRESULT STDMETHODCALLTYPE GetRelativeDescription(
  1554. REFPROPVARIANT propvar1,
  1555. REFPROPVARIANT propvar2,
  1556. LPWSTR *ppszDesc1,
  1557. LPWSTR *ppszDesc2) = 0;
  1558. virtual HRESULT STDMETHODCALLTYPE GetSortDescription(
  1559. PROPDESC_SORTDESCRIPTION *psd) = 0;
  1560. virtual HRESULT STDMETHODCALLTYPE GetSortDescriptionLabel(
  1561. WINBOOL fDescending,
  1562. LPWSTR *ppszDescription) = 0;
  1563. virtual HRESULT STDMETHODCALLTYPE GetAggregationType(
  1564. PROPDESC_AGGREGATION_TYPE *paggtype) = 0;
  1565. virtual HRESULT STDMETHODCALLTYPE GetConditionType(
  1566. PROPDESC_CONDITION_TYPE *pcontype,
  1567. CONDITION_OPERATION *popDefault) = 0;
  1568. virtual HRESULT STDMETHODCALLTYPE GetEnumTypeList(
  1569. REFIID riid,
  1570. void **ppv) = 0;
  1571. virtual HRESULT STDMETHODCALLTYPE CoerceToCanonicalValue(
  1572. PROPVARIANT *ppropvar) = 0;
  1573. virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
  1574. REFPROPVARIANT propvar,
  1575. PROPDESC_FORMAT_FLAGS pdfFlags,
  1576. LPWSTR *ppszDisplay) = 0;
  1577. virtual HRESULT STDMETHODCALLTYPE IsValueCanonical(
  1578. REFPROPVARIANT propvar) = 0;
  1579. };
  1580. #ifdef __CRT_UUID_DECL
  1581. __CRT_UUID_DECL(IPropertyDescription, 0x6f79d558, 0x3e96, 0x4549, 0xa1,0xd1, 0x7d,0x75,0xd2,0x28,0x88,0x14)
  1582. #endif
  1583. #else
  1584. typedef struct IPropertyDescriptionVtbl {
  1585. BEGIN_INTERFACE
  1586. /*** IUnknown methods ***/
  1587. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1588. IPropertyDescription *This,
  1589. REFIID riid,
  1590. void **ppvObject);
  1591. ULONG (STDMETHODCALLTYPE *AddRef)(
  1592. IPropertyDescription *This);
  1593. ULONG (STDMETHODCALLTYPE *Release)(
  1594. IPropertyDescription *This);
  1595. /*** IPropertyDescription methods ***/
  1596. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  1597. IPropertyDescription *This,
  1598. PROPERTYKEY *pkey);
  1599. HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  1600. IPropertyDescription *This,
  1601. LPWSTR *ppszName);
  1602. HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
  1603. IPropertyDescription *This,
  1604. VARTYPE *pvartype);
  1605. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  1606. IPropertyDescription *This,
  1607. LPWSTR *ppszName);
  1608. HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
  1609. IPropertyDescription *This,
  1610. LPWSTR *ppszInvite);
  1611. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  1612. IPropertyDescription *This,
  1613. PROPDESC_TYPE_FLAGS mask,
  1614. PROPDESC_TYPE_FLAGS *ppdtFlags);
  1615. HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
  1616. IPropertyDescription *This,
  1617. PROPDESC_VIEW_FLAGS *ppdvFlags);
  1618. HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
  1619. IPropertyDescription *This,
  1620. UINT *pcxChars);
  1621. HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
  1622. IPropertyDescription *This,
  1623. PROPDESC_DISPLAYTYPE *pdisplaytype);
  1624. HRESULT (STDMETHODCALLTYPE *GetColumnState)(
  1625. IPropertyDescription *This,
  1626. SHCOLSTATEF *pcsFlags);
  1627. HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
  1628. IPropertyDescription *This,
  1629. PROPDESC_GROUPING_RANGE *pgr);
  1630. HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
  1631. IPropertyDescription *This,
  1632. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  1633. HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
  1634. IPropertyDescription *This,
  1635. REFPROPVARIANT propvar1,
  1636. REFPROPVARIANT propvar2,
  1637. LPWSTR *ppszDesc1,
  1638. LPWSTR *ppszDesc2);
  1639. HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
  1640. IPropertyDescription *This,
  1641. PROPDESC_SORTDESCRIPTION *psd);
  1642. HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
  1643. IPropertyDescription *This,
  1644. WINBOOL fDescending,
  1645. LPWSTR *ppszDescription);
  1646. HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
  1647. IPropertyDescription *This,
  1648. PROPDESC_AGGREGATION_TYPE *paggtype);
  1649. HRESULT (STDMETHODCALLTYPE *GetConditionType)(
  1650. IPropertyDescription *This,
  1651. PROPDESC_CONDITION_TYPE *pcontype,
  1652. CONDITION_OPERATION *popDefault);
  1653. HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
  1654. IPropertyDescription *This,
  1655. REFIID riid,
  1656. void **ppv);
  1657. HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
  1658. IPropertyDescription *This,
  1659. PROPVARIANT *ppropvar);
  1660. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  1661. IPropertyDescription *This,
  1662. REFPROPVARIANT propvar,
  1663. PROPDESC_FORMAT_FLAGS pdfFlags,
  1664. LPWSTR *ppszDisplay);
  1665. HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
  1666. IPropertyDescription *This,
  1667. REFPROPVARIANT propvar);
  1668. END_INTERFACE
  1669. } IPropertyDescriptionVtbl;
  1670. interface IPropertyDescription {
  1671. CONST_VTBL IPropertyDescriptionVtbl* lpVtbl;
  1672. };
  1673. #ifdef COBJMACROS
  1674. #ifndef WIDL_C_INLINE_WRAPPERS
  1675. /*** IUnknown methods ***/
  1676. #define IPropertyDescription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1677. #define IPropertyDescription_AddRef(This) (This)->lpVtbl->AddRef(This)
  1678. #define IPropertyDescription_Release(This) (This)->lpVtbl->Release(This)
  1679. /*** IPropertyDescription methods ***/
  1680. #define IPropertyDescription_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  1681. #define IPropertyDescription_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
  1682. #define IPropertyDescription_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
  1683. #define IPropertyDescription_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
  1684. #define IPropertyDescription_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
  1685. #define IPropertyDescription_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
  1686. #define IPropertyDescription_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
  1687. #define IPropertyDescription_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
  1688. #define IPropertyDescription_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
  1689. #define IPropertyDescription_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
  1690. #define IPropertyDescription_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
  1691. #define IPropertyDescription_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
  1692. #define IPropertyDescription_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
  1693. #define IPropertyDescription_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
  1694. #define IPropertyDescription_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
  1695. #define IPropertyDescription_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
  1696. #define IPropertyDescription_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
  1697. #define IPropertyDescription_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
  1698. #define IPropertyDescription_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
  1699. #define IPropertyDescription_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
  1700. #define IPropertyDescription_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
  1701. #else
  1702. /*** IUnknown methods ***/
  1703. static FORCEINLINE HRESULT IPropertyDescription_QueryInterface(IPropertyDescription* This,REFIID riid,void **ppvObject) {
  1704. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1705. }
  1706. static FORCEINLINE ULONG IPropertyDescription_AddRef(IPropertyDescription* This) {
  1707. return This->lpVtbl->AddRef(This);
  1708. }
  1709. static FORCEINLINE ULONG IPropertyDescription_Release(IPropertyDescription* This) {
  1710. return This->lpVtbl->Release(This);
  1711. }
  1712. /*** IPropertyDescription methods ***/
  1713. static FORCEINLINE HRESULT IPropertyDescription_GetPropertyKey(IPropertyDescription* This,PROPERTYKEY *pkey) {
  1714. return This->lpVtbl->GetPropertyKey(This,pkey);
  1715. }
  1716. static FORCEINLINE HRESULT IPropertyDescription_GetCanonicalName(IPropertyDescription* This,LPWSTR *ppszName) {
  1717. return This->lpVtbl->GetCanonicalName(This,ppszName);
  1718. }
  1719. static FORCEINLINE HRESULT IPropertyDescription_GetPropertyType(IPropertyDescription* This,VARTYPE *pvartype) {
  1720. return This->lpVtbl->GetPropertyType(This,pvartype);
  1721. }
  1722. static FORCEINLINE HRESULT IPropertyDescription_GetDisplayName(IPropertyDescription* This,LPWSTR *ppszName) {
  1723. return This->lpVtbl->GetDisplayName(This,ppszName);
  1724. }
  1725. static FORCEINLINE HRESULT IPropertyDescription_GetEditInvitation(IPropertyDescription* This,LPWSTR *ppszInvite) {
  1726. return This->lpVtbl->GetEditInvitation(This,ppszInvite);
  1727. }
  1728. static FORCEINLINE HRESULT IPropertyDescription_GetTypeFlags(IPropertyDescription* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
  1729. return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
  1730. }
  1731. static FORCEINLINE HRESULT IPropertyDescription_GetViewFlags(IPropertyDescription* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
  1732. return This->lpVtbl->GetViewFlags(This,ppdvFlags);
  1733. }
  1734. static FORCEINLINE HRESULT IPropertyDescription_GetDefaultColumnWidth(IPropertyDescription* This,UINT *pcxChars) {
  1735. return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
  1736. }
  1737. static FORCEINLINE HRESULT IPropertyDescription_GetDisplayType(IPropertyDescription* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
  1738. return This->lpVtbl->GetDisplayType(This,pdisplaytype);
  1739. }
  1740. static FORCEINLINE HRESULT IPropertyDescription_GetColumnState(IPropertyDescription* This,SHCOLSTATEF *pcsFlags) {
  1741. return This->lpVtbl->GetColumnState(This,pcsFlags);
  1742. }
  1743. static FORCEINLINE HRESULT IPropertyDescription_GetGroupingRange(IPropertyDescription* This,PROPDESC_GROUPING_RANGE *pgr) {
  1744. return This->lpVtbl->GetGroupingRange(This,pgr);
  1745. }
  1746. static FORCEINLINE HRESULT IPropertyDescription_GetRelativeDescriptionType(IPropertyDescription* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
  1747. return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
  1748. }
  1749. static FORCEINLINE HRESULT IPropertyDescription_GetRelativeDescription(IPropertyDescription* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
  1750. return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
  1751. }
  1752. static FORCEINLINE HRESULT IPropertyDescription_GetSortDescription(IPropertyDescription* This,PROPDESC_SORTDESCRIPTION *psd) {
  1753. return This->lpVtbl->GetSortDescription(This,psd);
  1754. }
  1755. static FORCEINLINE HRESULT IPropertyDescription_GetSortDescriptionLabel(IPropertyDescription* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
  1756. return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
  1757. }
  1758. static FORCEINLINE HRESULT IPropertyDescription_GetAggregationType(IPropertyDescription* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
  1759. return This->lpVtbl->GetAggregationType(This,paggtype);
  1760. }
  1761. static FORCEINLINE HRESULT IPropertyDescription_GetConditionType(IPropertyDescription* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
  1762. return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
  1763. }
  1764. static FORCEINLINE HRESULT IPropertyDescription_GetEnumTypeList(IPropertyDescription* This,REFIID riid,void **ppv) {
  1765. return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
  1766. }
  1767. static FORCEINLINE HRESULT IPropertyDescription_CoerceToCanonicalValue(IPropertyDescription* This,PROPVARIANT *ppropvar) {
  1768. return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
  1769. }
  1770. static FORCEINLINE HRESULT IPropertyDescription_FormatForDisplay(IPropertyDescription* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
  1771. return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
  1772. }
  1773. static FORCEINLINE HRESULT IPropertyDescription_IsValueCanonical(IPropertyDescription* This,REFPROPVARIANT propvar) {
  1774. return This->lpVtbl->IsValueCanonical(This,propvar);
  1775. }
  1776. #endif
  1777. #endif
  1778. #endif
  1779. HRESULT STDMETHODCALLTYPE IPropertyDescription_RemoteCoerceToCanonicalValue_Proxy(
  1780. IPropertyDescription* This,
  1781. REFPROPVARIANT propvar,
  1782. PROPVARIANT *ppropvar);
  1783. void __RPC_STUB IPropertyDescription_RemoteCoerceToCanonicalValue_Stub(
  1784. IRpcStubBuffer* This,
  1785. IRpcChannelBuffer* pRpcChannelBuffer,
  1786. PRPC_MESSAGE pRpcMessage,
  1787. DWORD* pdwStubPhase);
  1788. HRESULT CALLBACK IPropertyDescription_CoerceToCanonicalValue_Proxy(
  1789. IPropertyDescription* This,
  1790. PROPVARIANT *ppropvar);
  1791. HRESULT __RPC_STUB IPropertyDescription_CoerceToCanonicalValue_Stub(
  1792. IPropertyDescription* This,
  1793. REFPROPVARIANT propvar,
  1794. PROPVARIANT *ppropvar);
  1795. #endif /* __IPropertyDescription_INTERFACE_DEFINED__ */
  1796. /*****************************************************************************
  1797. * IPropertyDescription2 interface
  1798. */
  1799. #ifndef __IPropertyDescription2_INTERFACE_DEFINED__
  1800. #define __IPropertyDescription2_INTERFACE_DEFINED__
  1801. DEFINE_GUID(IID_IPropertyDescription2, 0x57d2eded, 0x5062, 0x400e, 0xb1,0x07, 0x5d,0xae,0x79,0xfe,0x57,0xa6);
  1802. #if defined(__cplusplus) && !defined(CINTERFACE)
  1803. MIDL_INTERFACE("57d2eded-5062-400e-b107-5dae79fe57a6")
  1804. IPropertyDescription2 : public IPropertyDescription
  1805. {
  1806. virtual HRESULT STDMETHODCALLTYPE GetImageReferenceForValue(
  1807. REFPROPVARIANT propvar,
  1808. LPWSTR *ppszImageRes) = 0;
  1809. };
  1810. #ifdef __CRT_UUID_DECL
  1811. __CRT_UUID_DECL(IPropertyDescription2, 0x57d2eded, 0x5062, 0x400e, 0xb1,0x07, 0x5d,0xae,0x79,0xfe,0x57,0xa6)
  1812. #endif
  1813. #else
  1814. typedef struct IPropertyDescription2Vtbl {
  1815. BEGIN_INTERFACE
  1816. /*** IUnknown methods ***/
  1817. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  1818. IPropertyDescription2 *This,
  1819. REFIID riid,
  1820. void **ppvObject);
  1821. ULONG (STDMETHODCALLTYPE *AddRef)(
  1822. IPropertyDescription2 *This);
  1823. ULONG (STDMETHODCALLTYPE *Release)(
  1824. IPropertyDescription2 *This);
  1825. /*** IPropertyDescription methods ***/
  1826. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  1827. IPropertyDescription2 *This,
  1828. PROPERTYKEY *pkey);
  1829. HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  1830. IPropertyDescription2 *This,
  1831. LPWSTR *ppszName);
  1832. HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
  1833. IPropertyDescription2 *This,
  1834. VARTYPE *pvartype);
  1835. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  1836. IPropertyDescription2 *This,
  1837. LPWSTR *ppszName);
  1838. HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
  1839. IPropertyDescription2 *This,
  1840. LPWSTR *ppszInvite);
  1841. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  1842. IPropertyDescription2 *This,
  1843. PROPDESC_TYPE_FLAGS mask,
  1844. PROPDESC_TYPE_FLAGS *ppdtFlags);
  1845. HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
  1846. IPropertyDescription2 *This,
  1847. PROPDESC_VIEW_FLAGS *ppdvFlags);
  1848. HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
  1849. IPropertyDescription2 *This,
  1850. UINT *pcxChars);
  1851. HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
  1852. IPropertyDescription2 *This,
  1853. PROPDESC_DISPLAYTYPE *pdisplaytype);
  1854. HRESULT (STDMETHODCALLTYPE *GetColumnState)(
  1855. IPropertyDescription2 *This,
  1856. SHCOLSTATEF *pcsFlags);
  1857. HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
  1858. IPropertyDescription2 *This,
  1859. PROPDESC_GROUPING_RANGE *pgr);
  1860. HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
  1861. IPropertyDescription2 *This,
  1862. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  1863. HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
  1864. IPropertyDescription2 *This,
  1865. REFPROPVARIANT propvar1,
  1866. REFPROPVARIANT propvar2,
  1867. LPWSTR *ppszDesc1,
  1868. LPWSTR *ppszDesc2);
  1869. HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
  1870. IPropertyDescription2 *This,
  1871. PROPDESC_SORTDESCRIPTION *psd);
  1872. HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
  1873. IPropertyDescription2 *This,
  1874. WINBOOL fDescending,
  1875. LPWSTR *ppszDescription);
  1876. HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
  1877. IPropertyDescription2 *This,
  1878. PROPDESC_AGGREGATION_TYPE *paggtype);
  1879. HRESULT (STDMETHODCALLTYPE *GetConditionType)(
  1880. IPropertyDescription2 *This,
  1881. PROPDESC_CONDITION_TYPE *pcontype,
  1882. CONDITION_OPERATION *popDefault);
  1883. HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
  1884. IPropertyDescription2 *This,
  1885. REFIID riid,
  1886. void **ppv);
  1887. HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
  1888. IPropertyDescription2 *This,
  1889. PROPVARIANT *ppropvar);
  1890. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  1891. IPropertyDescription2 *This,
  1892. REFPROPVARIANT propvar,
  1893. PROPDESC_FORMAT_FLAGS pdfFlags,
  1894. LPWSTR *ppszDisplay);
  1895. HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
  1896. IPropertyDescription2 *This,
  1897. REFPROPVARIANT propvar);
  1898. /*** IPropertyDescription2 methods ***/
  1899. HRESULT (STDMETHODCALLTYPE *GetImageReferenceForValue)(
  1900. IPropertyDescription2 *This,
  1901. REFPROPVARIANT propvar,
  1902. LPWSTR *ppszImageRes);
  1903. END_INTERFACE
  1904. } IPropertyDescription2Vtbl;
  1905. interface IPropertyDescription2 {
  1906. CONST_VTBL IPropertyDescription2Vtbl* lpVtbl;
  1907. };
  1908. #ifdef COBJMACROS
  1909. #ifndef WIDL_C_INLINE_WRAPPERS
  1910. /*** IUnknown methods ***/
  1911. #define IPropertyDescription2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  1912. #define IPropertyDescription2_AddRef(This) (This)->lpVtbl->AddRef(This)
  1913. #define IPropertyDescription2_Release(This) (This)->lpVtbl->Release(This)
  1914. /*** IPropertyDescription methods ***/
  1915. #define IPropertyDescription2_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  1916. #define IPropertyDescription2_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
  1917. #define IPropertyDescription2_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
  1918. #define IPropertyDescription2_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
  1919. #define IPropertyDescription2_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
  1920. #define IPropertyDescription2_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
  1921. #define IPropertyDescription2_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
  1922. #define IPropertyDescription2_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
  1923. #define IPropertyDescription2_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
  1924. #define IPropertyDescription2_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
  1925. #define IPropertyDescription2_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
  1926. #define IPropertyDescription2_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
  1927. #define IPropertyDescription2_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
  1928. #define IPropertyDescription2_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
  1929. #define IPropertyDescription2_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
  1930. #define IPropertyDescription2_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
  1931. #define IPropertyDescription2_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
  1932. #define IPropertyDescription2_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
  1933. #define IPropertyDescription2_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
  1934. #define IPropertyDescription2_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
  1935. #define IPropertyDescription2_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
  1936. /*** IPropertyDescription2 methods ***/
  1937. #define IPropertyDescription2_GetImageReferenceForValue(This,propvar,ppszImageRes) (This)->lpVtbl->GetImageReferenceForValue(This,propvar,ppszImageRes)
  1938. #else
  1939. /*** IUnknown methods ***/
  1940. static FORCEINLINE HRESULT IPropertyDescription2_QueryInterface(IPropertyDescription2* This,REFIID riid,void **ppvObject) {
  1941. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  1942. }
  1943. static FORCEINLINE ULONG IPropertyDescription2_AddRef(IPropertyDescription2* This) {
  1944. return This->lpVtbl->AddRef(This);
  1945. }
  1946. static FORCEINLINE ULONG IPropertyDescription2_Release(IPropertyDescription2* This) {
  1947. return This->lpVtbl->Release(This);
  1948. }
  1949. /*** IPropertyDescription methods ***/
  1950. static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyKey(IPropertyDescription2* This,PROPERTYKEY *pkey) {
  1951. return This->lpVtbl->GetPropertyKey(This,pkey);
  1952. }
  1953. static FORCEINLINE HRESULT IPropertyDescription2_GetCanonicalName(IPropertyDescription2* This,LPWSTR *ppszName) {
  1954. return This->lpVtbl->GetCanonicalName(This,ppszName);
  1955. }
  1956. static FORCEINLINE HRESULT IPropertyDescription2_GetPropertyType(IPropertyDescription2* This,VARTYPE *pvartype) {
  1957. return This->lpVtbl->GetPropertyType(This,pvartype);
  1958. }
  1959. static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayName(IPropertyDescription2* This,LPWSTR *ppszName) {
  1960. return This->lpVtbl->GetDisplayName(This,ppszName);
  1961. }
  1962. static FORCEINLINE HRESULT IPropertyDescription2_GetEditInvitation(IPropertyDescription2* This,LPWSTR *ppszInvite) {
  1963. return This->lpVtbl->GetEditInvitation(This,ppszInvite);
  1964. }
  1965. static FORCEINLINE HRESULT IPropertyDescription2_GetTypeFlags(IPropertyDescription2* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
  1966. return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
  1967. }
  1968. static FORCEINLINE HRESULT IPropertyDescription2_GetViewFlags(IPropertyDescription2* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
  1969. return This->lpVtbl->GetViewFlags(This,ppdvFlags);
  1970. }
  1971. static FORCEINLINE HRESULT IPropertyDescription2_GetDefaultColumnWidth(IPropertyDescription2* This,UINT *pcxChars) {
  1972. return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
  1973. }
  1974. static FORCEINLINE HRESULT IPropertyDescription2_GetDisplayType(IPropertyDescription2* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
  1975. return This->lpVtbl->GetDisplayType(This,pdisplaytype);
  1976. }
  1977. static FORCEINLINE HRESULT IPropertyDescription2_GetColumnState(IPropertyDescription2* This,SHCOLSTATEF *pcsFlags) {
  1978. return This->lpVtbl->GetColumnState(This,pcsFlags);
  1979. }
  1980. static FORCEINLINE HRESULT IPropertyDescription2_GetGroupingRange(IPropertyDescription2* This,PROPDESC_GROUPING_RANGE *pgr) {
  1981. return This->lpVtbl->GetGroupingRange(This,pgr);
  1982. }
  1983. static FORCEINLINE HRESULT IPropertyDescription2_GetRelativeDescriptionType(IPropertyDescription2* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
  1984. return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
  1985. }
  1986. static FORCEINLINE HRESULT IPropertyDescription2_GetRelativeDescription(IPropertyDescription2* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
  1987. return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
  1988. }
  1989. static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescription(IPropertyDescription2* This,PROPDESC_SORTDESCRIPTION *psd) {
  1990. return This->lpVtbl->GetSortDescription(This,psd);
  1991. }
  1992. static FORCEINLINE HRESULT IPropertyDescription2_GetSortDescriptionLabel(IPropertyDescription2* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
  1993. return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
  1994. }
  1995. static FORCEINLINE HRESULT IPropertyDescription2_GetAggregationType(IPropertyDescription2* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
  1996. return This->lpVtbl->GetAggregationType(This,paggtype);
  1997. }
  1998. static FORCEINLINE HRESULT IPropertyDescription2_GetConditionType(IPropertyDescription2* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
  1999. return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
  2000. }
  2001. static FORCEINLINE HRESULT IPropertyDescription2_GetEnumTypeList(IPropertyDescription2* This,REFIID riid,void **ppv) {
  2002. return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
  2003. }
  2004. static FORCEINLINE HRESULT IPropertyDescription2_CoerceToCanonicalValue(IPropertyDescription2* This,PROPVARIANT *ppropvar) {
  2005. return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
  2006. }
  2007. static FORCEINLINE HRESULT IPropertyDescription2_FormatForDisplay(IPropertyDescription2* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
  2008. return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
  2009. }
  2010. static FORCEINLINE HRESULT IPropertyDescription2_IsValueCanonical(IPropertyDescription2* This,REFPROPVARIANT propvar) {
  2011. return This->lpVtbl->IsValueCanonical(This,propvar);
  2012. }
  2013. /*** IPropertyDescription2 methods ***/
  2014. static FORCEINLINE HRESULT IPropertyDescription2_GetImageReferenceForValue(IPropertyDescription2* This,REFPROPVARIANT propvar,LPWSTR *ppszImageRes) {
  2015. return This->lpVtbl->GetImageReferenceForValue(This,propvar,ppszImageRes);
  2016. }
  2017. #endif
  2018. #endif
  2019. #endif
  2020. #endif /* __IPropertyDescription2_INTERFACE_DEFINED__ */
  2021. /*****************************************************************************
  2022. * IPropertyDescriptionAliasInfo interface
  2023. */
  2024. #ifndef __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
  2025. #define __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__
  2026. DEFINE_GUID(IID_IPropertyDescriptionAliasInfo, 0xf67104fc, 0x2af9, 0x46fd, 0xb3,0x2d, 0x24,0x3c,0x14,0x04,0xf3,0xd1);
  2027. #if defined(__cplusplus) && !defined(CINTERFACE)
  2028. MIDL_INTERFACE("f67104fc-2af9-46fd-b32d-243c1404f3d1")
  2029. IPropertyDescriptionAliasInfo : public IPropertyDescription
  2030. {
  2031. virtual HRESULT STDMETHODCALLTYPE GetSortByAlias(
  2032. REFIID riid,
  2033. void **ppv) = 0;
  2034. virtual HRESULT STDMETHODCALLTYPE GetAdditionalSortByAliases(
  2035. REFIID riid,
  2036. void **ppv) = 0;
  2037. };
  2038. #ifdef __CRT_UUID_DECL
  2039. __CRT_UUID_DECL(IPropertyDescriptionAliasInfo, 0xf67104fc, 0x2af9, 0x46fd, 0xb3,0x2d, 0x24,0x3c,0x14,0x04,0xf3,0xd1)
  2040. #endif
  2041. #else
  2042. typedef struct IPropertyDescriptionAliasInfoVtbl {
  2043. BEGIN_INTERFACE
  2044. /*** IUnknown methods ***/
  2045. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2046. IPropertyDescriptionAliasInfo *This,
  2047. REFIID riid,
  2048. void **ppvObject);
  2049. ULONG (STDMETHODCALLTYPE *AddRef)(
  2050. IPropertyDescriptionAliasInfo *This);
  2051. ULONG (STDMETHODCALLTYPE *Release)(
  2052. IPropertyDescriptionAliasInfo *This);
  2053. /*** IPropertyDescription methods ***/
  2054. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  2055. IPropertyDescriptionAliasInfo *This,
  2056. PROPERTYKEY *pkey);
  2057. HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  2058. IPropertyDescriptionAliasInfo *This,
  2059. LPWSTR *ppszName);
  2060. HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
  2061. IPropertyDescriptionAliasInfo *This,
  2062. VARTYPE *pvartype);
  2063. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  2064. IPropertyDescriptionAliasInfo *This,
  2065. LPWSTR *ppszName);
  2066. HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
  2067. IPropertyDescriptionAliasInfo *This,
  2068. LPWSTR *ppszInvite);
  2069. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  2070. IPropertyDescriptionAliasInfo *This,
  2071. PROPDESC_TYPE_FLAGS mask,
  2072. PROPDESC_TYPE_FLAGS *ppdtFlags);
  2073. HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
  2074. IPropertyDescriptionAliasInfo *This,
  2075. PROPDESC_VIEW_FLAGS *ppdvFlags);
  2076. HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
  2077. IPropertyDescriptionAliasInfo *This,
  2078. UINT *pcxChars);
  2079. HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
  2080. IPropertyDescriptionAliasInfo *This,
  2081. PROPDESC_DISPLAYTYPE *pdisplaytype);
  2082. HRESULT (STDMETHODCALLTYPE *GetColumnState)(
  2083. IPropertyDescriptionAliasInfo *This,
  2084. SHCOLSTATEF *pcsFlags);
  2085. HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
  2086. IPropertyDescriptionAliasInfo *This,
  2087. PROPDESC_GROUPING_RANGE *pgr);
  2088. HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
  2089. IPropertyDescriptionAliasInfo *This,
  2090. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  2091. HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
  2092. IPropertyDescriptionAliasInfo *This,
  2093. REFPROPVARIANT propvar1,
  2094. REFPROPVARIANT propvar2,
  2095. LPWSTR *ppszDesc1,
  2096. LPWSTR *ppszDesc2);
  2097. HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
  2098. IPropertyDescriptionAliasInfo *This,
  2099. PROPDESC_SORTDESCRIPTION *psd);
  2100. HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
  2101. IPropertyDescriptionAliasInfo *This,
  2102. WINBOOL fDescending,
  2103. LPWSTR *ppszDescription);
  2104. HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
  2105. IPropertyDescriptionAliasInfo *This,
  2106. PROPDESC_AGGREGATION_TYPE *paggtype);
  2107. HRESULT (STDMETHODCALLTYPE *GetConditionType)(
  2108. IPropertyDescriptionAliasInfo *This,
  2109. PROPDESC_CONDITION_TYPE *pcontype,
  2110. CONDITION_OPERATION *popDefault);
  2111. HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
  2112. IPropertyDescriptionAliasInfo *This,
  2113. REFIID riid,
  2114. void **ppv);
  2115. HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
  2116. IPropertyDescriptionAliasInfo *This,
  2117. PROPVARIANT *ppropvar);
  2118. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  2119. IPropertyDescriptionAliasInfo *This,
  2120. REFPROPVARIANT propvar,
  2121. PROPDESC_FORMAT_FLAGS pdfFlags,
  2122. LPWSTR *ppszDisplay);
  2123. HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
  2124. IPropertyDescriptionAliasInfo *This,
  2125. REFPROPVARIANT propvar);
  2126. /*** IPropertyDescriptionAliasInfo methods ***/
  2127. HRESULT (STDMETHODCALLTYPE *GetSortByAlias)(
  2128. IPropertyDescriptionAliasInfo *This,
  2129. REFIID riid,
  2130. void **ppv);
  2131. HRESULT (STDMETHODCALLTYPE *GetAdditionalSortByAliases)(
  2132. IPropertyDescriptionAliasInfo *This,
  2133. REFIID riid,
  2134. void **ppv);
  2135. END_INTERFACE
  2136. } IPropertyDescriptionAliasInfoVtbl;
  2137. interface IPropertyDescriptionAliasInfo {
  2138. CONST_VTBL IPropertyDescriptionAliasInfoVtbl* lpVtbl;
  2139. };
  2140. #ifdef COBJMACROS
  2141. #ifndef WIDL_C_INLINE_WRAPPERS
  2142. /*** IUnknown methods ***/
  2143. #define IPropertyDescriptionAliasInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2144. #define IPropertyDescriptionAliasInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2145. #define IPropertyDescriptionAliasInfo_Release(This) (This)->lpVtbl->Release(This)
  2146. /*** IPropertyDescription methods ***/
  2147. #define IPropertyDescriptionAliasInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  2148. #define IPropertyDescriptionAliasInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
  2149. #define IPropertyDescriptionAliasInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
  2150. #define IPropertyDescriptionAliasInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
  2151. #define IPropertyDescriptionAliasInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
  2152. #define IPropertyDescriptionAliasInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
  2153. #define IPropertyDescriptionAliasInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
  2154. #define IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
  2155. #define IPropertyDescriptionAliasInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
  2156. #define IPropertyDescriptionAliasInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
  2157. #define IPropertyDescriptionAliasInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
  2158. #define IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
  2159. #define IPropertyDescriptionAliasInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
  2160. #define IPropertyDescriptionAliasInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
  2161. #define IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
  2162. #define IPropertyDescriptionAliasInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
  2163. #define IPropertyDescriptionAliasInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
  2164. #define IPropertyDescriptionAliasInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
  2165. #define IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
  2166. #define IPropertyDescriptionAliasInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
  2167. #define IPropertyDescriptionAliasInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
  2168. /*** IPropertyDescriptionAliasInfo methods ***/
  2169. #define IPropertyDescriptionAliasInfo_GetSortByAlias(This,riid,ppv) (This)->lpVtbl->GetSortByAlias(This,riid,ppv)
  2170. #define IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases(This,riid,ppv) (This)->lpVtbl->GetAdditionalSortByAliases(This,riid,ppv)
  2171. #else
  2172. /*** IUnknown methods ***/
  2173. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_QueryInterface(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppvObject) {
  2174. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2175. }
  2176. static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_AddRef(IPropertyDescriptionAliasInfo* This) {
  2177. return This->lpVtbl->AddRef(This);
  2178. }
  2179. static FORCEINLINE ULONG IPropertyDescriptionAliasInfo_Release(IPropertyDescriptionAliasInfo* This) {
  2180. return This->lpVtbl->Release(This);
  2181. }
  2182. /*** IPropertyDescription methods ***/
  2183. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyKey(IPropertyDescriptionAliasInfo* This,PROPERTYKEY *pkey) {
  2184. return This->lpVtbl->GetPropertyKey(This,pkey);
  2185. }
  2186. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetCanonicalName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
  2187. return This->lpVtbl->GetCanonicalName(This,ppszName);
  2188. }
  2189. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetPropertyType(IPropertyDescriptionAliasInfo* This,VARTYPE *pvartype) {
  2190. return This->lpVtbl->GetPropertyType(This,pvartype);
  2191. }
  2192. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayName(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszName) {
  2193. return This->lpVtbl->GetDisplayName(This,ppszName);
  2194. }
  2195. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEditInvitation(IPropertyDescriptionAliasInfo* This,LPWSTR *ppszInvite) {
  2196. return This->lpVtbl->GetEditInvitation(This,ppszInvite);
  2197. }
  2198. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetTypeFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
  2199. return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
  2200. }
  2201. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetViewFlags(IPropertyDescriptionAliasInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
  2202. return This->lpVtbl->GetViewFlags(This,ppdvFlags);
  2203. }
  2204. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDefaultColumnWidth(IPropertyDescriptionAliasInfo* This,UINT *pcxChars) {
  2205. return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
  2206. }
  2207. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetDisplayType(IPropertyDescriptionAliasInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
  2208. return This->lpVtbl->GetDisplayType(This,pdisplaytype);
  2209. }
  2210. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetColumnState(IPropertyDescriptionAliasInfo* This,SHCOLSTATEF *pcsFlags) {
  2211. return This->lpVtbl->GetColumnState(This,pcsFlags);
  2212. }
  2213. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetGroupingRange(IPropertyDescriptionAliasInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
  2214. return This->lpVtbl->GetGroupingRange(This,pgr);
  2215. }
  2216. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetRelativeDescriptionType(IPropertyDescriptionAliasInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
  2217. return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
  2218. }
  2219. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetRelativeDescription(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
  2220. return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
  2221. }
  2222. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescription(IPropertyDescriptionAliasInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
  2223. return This->lpVtbl->GetSortDescription(This,psd);
  2224. }
  2225. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortDescriptionLabel(IPropertyDescriptionAliasInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
  2226. return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
  2227. }
  2228. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetAggregationType(IPropertyDescriptionAliasInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
  2229. return This->lpVtbl->GetAggregationType(This,paggtype);
  2230. }
  2231. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetConditionType(IPropertyDescriptionAliasInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
  2232. return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
  2233. }
  2234. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetEnumTypeList(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
  2235. return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
  2236. }
  2237. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_CoerceToCanonicalValue(IPropertyDescriptionAliasInfo* This,PROPVARIANT *ppropvar) {
  2238. return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
  2239. }
  2240. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_FormatForDisplay(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
  2241. return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
  2242. }
  2243. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_IsValueCanonical(IPropertyDescriptionAliasInfo* This,REFPROPVARIANT propvar) {
  2244. return This->lpVtbl->IsValueCanonical(This,propvar);
  2245. }
  2246. /*** IPropertyDescriptionAliasInfo methods ***/
  2247. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetSortByAlias(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
  2248. return This->lpVtbl->GetSortByAlias(This,riid,ppv);
  2249. }
  2250. static FORCEINLINE HRESULT IPropertyDescriptionAliasInfo_GetAdditionalSortByAliases(IPropertyDescriptionAliasInfo* This,REFIID riid,void **ppv) {
  2251. return This->lpVtbl->GetAdditionalSortByAliases(This,riid,ppv);
  2252. }
  2253. #endif
  2254. #endif
  2255. #endif
  2256. #endif /* __IPropertyDescriptionAliasInfo_INTERFACE_DEFINED__ */
  2257. /*****************************************************************************
  2258. * IPropertyDescriptionSearchInfo interface
  2259. */
  2260. #ifndef __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
  2261. #define __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__
  2262. typedef enum PROPDESC_SEARCHINFO_FLAGS {
  2263. PDSIF_DEFAULT = 0x0,
  2264. PDSIF_ININVERTEDINDEX = 0x1,
  2265. PDSIF_ISCOLUMN = 0x2,
  2266. PDSIF_ISCOLUMNSPARSE = 0x4,
  2267. PDSIF_ALWAYSINCLUDE = 0x8,
  2268. PDSIF_USEFORTYPEAHEAD = 0x10
  2269. } PROPDESC_SEARCHINFO_FLAGS;
  2270. DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)
  2271. typedef enum PROPDESC_COLUMNINDEX_TYPE {
  2272. PDCIT_NONE = 0,
  2273. PDCIT_ONDISK = 1,
  2274. PDCIT_INMEMORY = 2,
  2275. PDCIT_ONDEMAND = 3,
  2276. PDCIT_ONDISKALL = 4,
  2277. PDCIT_ONDISKVECTOR = 5
  2278. } PROPDESC_COLUMNINDEX_TYPE;
  2279. DEFINE_GUID(IID_IPropertyDescriptionSearchInfo, 0x078f91bd, 0x29a2, 0x440f, 0x92,0x4e, 0x46,0xa2,0x91,0x52,0x45,0x20);
  2280. #if defined(__cplusplus) && !defined(CINTERFACE)
  2281. MIDL_INTERFACE("078f91bd-29a2-440f-924e-46a291524520")
  2282. IPropertyDescriptionSearchInfo : public IPropertyDescription
  2283. {
  2284. virtual HRESULT STDMETHODCALLTYPE GetSearchInfoFlags(
  2285. PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) = 0;
  2286. virtual HRESULT STDMETHODCALLTYPE GetColumnIndexType(
  2287. PROPDESC_COLUMNINDEX_TYPE *ppdciType) = 0;
  2288. virtual HRESULT STDMETHODCALLTYPE GetProjectionString(
  2289. LPWSTR *ppszProjection) = 0;
  2290. virtual HRESULT STDMETHODCALLTYPE GetMaxSize(
  2291. UINT *pcbMaxSize) = 0;
  2292. };
  2293. #ifdef __CRT_UUID_DECL
  2294. __CRT_UUID_DECL(IPropertyDescriptionSearchInfo, 0x078f91bd, 0x29a2, 0x440f, 0x92,0x4e, 0x46,0xa2,0x91,0x52,0x45,0x20)
  2295. #endif
  2296. #else
  2297. typedef struct IPropertyDescriptionSearchInfoVtbl {
  2298. BEGIN_INTERFACE
  2299. /*** IUnknown methods ***/
  2300. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2301. IPropertyDescriptionSearchInfo *This,
  2302. REFIID riid,
  2303. void **ppvObject);
  2304. ULONG (STDMETHODCALLTYPE *AddRef)(
  2305. IPropertyDescriptionSearchInfo *This);
  2306. ULONG (STDMETHODCALLTYPE *Release)(
  2307. IPropertyDescriptionSearchInfo *This);
  2308. /*** IPropertyDescription methods ***/
  2309. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  2310. IPropertyDescriptionSearchInfo *This,
  2311. PROPERTYKEY *pkey);
  2312. HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  2313. IPropertyDescriptionSearchInfo *This,
  2314. LPWSTR *ppszName);
  2315. HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
  2316. IPropertyDescriptionSearchInfo *This,
  2317. VARTYPE *pvartype);
  2318. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  2319. IPropertyDescriptionSearchInfo *This,
  2320. LPWSTR *ppszName);
  2321. HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
  2322. IPropertyDescriptionSearchInfo *This,
  2323. LPWSTR *ppszInvite);
  2324. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  2325. IPropertyDescriptionSearchInfo *This,
  2326. PROPDESC_TYPE_FLAGS mask,
  2327. PROPDESC_TYPE_FLAGS *ppdtFlags);
  2328. HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
  2329. IPropertyDescriptionSearchInfo *This,
  2330. PROPDESC_VIEW_FLAGS *ppdvFlags);
  2331. HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
  2332. IPropertyDescriptionSearchInfo *This,
  2333. UINT *pcxChars);
  2334. HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
  2335. IPropertyDescriptionSearchInfo *This,
  2336. PROPDESC_DISPLAYTYPE *pdisplaytype);
  2337. HRESULT (STDMETHODCALLTYPE *GetColumnState)(
  2338. IPropertyDescriptionSearchInfo *This,
  2339. SHCOLSTATEF *pcsFlags);
  2340. HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
  2341. IPropertyDescriptionSearchInfo *This,
  2342. PROPDESC_GROUPING_RANGE *pgr);
  2343. HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
  2344. IPropertyDescriptionSearchInfo *This,
  2345. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  2346. HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
  2347. IPropertyDescriptionSearchInfo *This,
  2348. REFPROPVARIANT propvar1,
  2349. REFPROPVARIANT propvar2,
  2350. LPWSTR *ppszDesc1,
  2351. LPWSTR *ppszDesc2);
  2352. HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
  2353. IPropertyDescriptionSearchInfo *This,
  2354. PROPDESC_SORTDESCRIPTION *psd);
  2355. HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
  2356. IPropertyDescriptionSearchInfo *This,
  2357. WINBOOL fDescending,
  2358. LPWSTR *ppszDescription);
  2359. HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
  2360. IPropertyDescriptionSearchInfo *This,
  2361. PROPDESC_AGGREGATION_TYPE *paggtype);
  2362. HRESULT (STDMETHODCALLTYPE *GetConditionType)(
  2363. IPropertyDescriptionSearchInfo *This,
  2364. PROPDESC_CONDITION_TYPE *pcontype,
  2365. CONDITION_OPERATION *popDefault);
  2366. HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
  2367. IPropertyDescriptionSearchInfo *This,
  2368. REFIID riid,
  2369. void **ppv);
  2370. HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
  2371. IPropertyDescriptionSearchInfo *This,
  2372. PROPVARIANT *ppropvar);
  2373. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  2374. IPropertyDescriptionSearchInfo *This,
  2375. REFPROPVARIANT propvar,
  2376. PROPDESC_FORMAT_FLAGS pdfFlags,
  2377. LPWSTR *ppszDisplay);
  2378. HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
  2379. IPropertyDescriptionSearchInfo *This,
  2380. REFPROPVARIANT propvar);
  2381. /*** IPropertyDescriptionSearchInfo methods ***/
  2382. HRESULT (STDMETHODCALLTYPE *GetSearchInfoFlags)(
  2383. IPropertyDescriptionSearchInfo *This,
  2384. PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags);
  2385. HRESULT (STDMETHODCALLTYPE *GetColumnIndexType)(
  2386. IPropertyDescriptionSearchInfo *This,
  2387. PROPDESC_COLUMNINDEX_TYPE *ppdciType);
  2388. HRESULT (STDMETHODCALLTYPE *GetProjectionString)(
  2389. IPropertyDescriptionSearchInfo *This,
  2390. LPWSTR *ppszProjection);
  2391. HRESULT (STDMETHODCALLTYPE *GetMaxSize)(
  2392. IPropertyDescriptionSearchInfo *This,
  2393. UINT *pcbMaxSize);
  2394. END_INTERFACE
  2395. } IPropertyDescriptionSearchInfoVtbl;
  2396. interface IPropertyDescriptionSearchInfo {
  2397. CONST_VTBL IPropertyDescriptionSearchInfoVtbl* lpVtbl;
  2398. };
  2399. #ifdef COBJMACROS
  2400. #ifndef WIDL_C_INLINE_WRAPPERS
  2401. /*** IUnknown methods ***/
  2402. #define IPropertyDescriptionSearchInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2403. #define IPropertyDescriptionSearchInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2404. #define IPropertyDescriptionSearchInfo_Release(This) (This)->lpVtbl->Release(This)
  2405. /*** IPropertyDescription methods ***/
  2406. #define IPropertyDescriptionSearchInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  2407. #define IPropertyDescriptionSearchInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
  2408. #define IPropertyDescriptionSearchInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
  2409. #define IPropertyDescriptionSearchInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
  2410. #define IPropertyDescriptionSearchInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
  2411. #define IPropertyDescriptionSearchInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
  2412. #define IPropertyDescriptionSearchInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
  2413. #define IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
  2414. #define IPropertyDescriptionSearchInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
  2415. #define IPropertyDescriptionSearchInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
  2416. #define IPropertyDescriptionSearchInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
  2417. #define IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
  2418. #define IPropertyDescriptionSearchInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
  2419. #define IPropertyDescriptionSearchInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
  2420. #define IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
  2421. #define IPropertyDescriptionSearchInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
  2422. #define IPropertyDescriptionSearchInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
  2423. #define IPropertyDescriptionSearchInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
  2424. #define IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
  2425. #define IPropertyDescriptionSearchInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
  2426. #define IPropertyDescriptionSearchInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
  2427. /*** IPropertyDescriptionSearchInfo methods ***/
  2428. #define IPropertyDescriptionSearchInfo_GetSearchInfoFlags(This,ppdsiFlags) (This)->lpVtbl->GetSearchInfoFlags(This,ppdsiFlags)
  2429. #define IPropertyDescriptionSearchInfo_GetColumnIndexType(This,ppdciType) (This)->lpVtbl->GetColumnIndexType(This,ppdciType)
  2430. #define IPropertyDescriptionSearchInfo_GetProjectionString(This,ppszProjection) (This)->lpVtbl->GetProjectionString(This,ppszProjection)
  2431. #define IPropertyDescriptionSearchInfo_GetMaxSize(This,pcbMaxSize) (This)->lpVtbl->GetMaxSize(This,pcbMaxSize)
  2432. #else
  2433. /*** IUnknown methods ***/
  2434. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_QueryInterface(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppvObject) {
  2435. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2436. }
  2437. static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_AddRef(IPropertyDescriptionSearchInfo* This) {
  2438. return This->lpVtbl->AddRef(This);
  2439. }
  2440. static FORCEINLINE ULONG IPropertyDescriptionSearchInfo_Release(IPropertyDescriptionSearchInfo* This) {
  2441. return This->lpVtbl->Release(This);
  2442. }
  2443. /*** IPropertyDescription methods ***/
  2444. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyKey(IPropertyDescriptionSearchInfo* This,PROPERTYKEY *pkey) {
  2445. return This->lpVtbl->GetPropertyKey(This,pkey);
  2446. }
  2447. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetCanonicalName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
  2448. return This->lpVtbl->GetCanonicalName(This,ppszName);
  2449. }
  2450. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetPropertyType(IPropertyDescriptionSearchInfo* This,VARTYPE *pvartype) {
  2451. return This->lpVtbl->GetPropertyType(This,pvartype);
  2452. }
  2453. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayName(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszName) {
  2454. return This->lpVtbl->GetDisplayName(This,ppszName);
  2455. }
  2456. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEditInvitation(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszInvite) {
  2457. return This->lpVtbl->GetEditInvitation(This,ppszInvite);
  2458. }
  2459. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetTypeFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
  2460. return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
  2461. }
  2462. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetViewFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
  2463. return This->lpVtbl->GetViewFlags(This,ppdvFlags);
  2464. }
  2465. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDefaultColumnWidth(IPropertyDescriptionSearchInfo* This,UINT *pcxChars) {
  2466. return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
  2467. }
  2468. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetDisplayType(IPropertyDescriptionSearchInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
  2469. return This->lpVtbl->GetDisplayType(This,pdisplaytype);
  2470. }
  2471. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnState(IPropertyDescriptionSearchInfo* This,SHCOLSTATEF *pcsFlags) {
  2472. return This->lpVtbl->GetColumnState(This,pcsFlags);
  2473. }
  2474. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetGroupingRange(IPropertyDescriptionSearchInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
  2475. return This->lpVtbl->GetGroupingRange(This,pgr);
  2476. }
  2477. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetRelativeDescriptionType(IPropertyDescriptionSearchInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
  2478. return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
  2479. }
  2480. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetRelativeDescription(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
  2481. return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
  2482. }
  2483. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescription(IPropertyDescriptionSearchInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
  2484. return This->lpVtbl->GetSortDescription(This,psd);
  2485. }
  2486. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSortDescriptionLabel(IPropertyDescriptionSearchInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
  2487. return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
  2488. }
  2489. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetAggregationType(IPropertyDescriptionSearchInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
  2490. return This->lpVtbl->GetAggregationType(This,paggtype);
  2491. }
  2492. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetConditionType(IPropertyDescriptionSearchInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
  2493. return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
  2494. }
  2495. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetEnumTypeList(IPropertyDescriptionSearchInfo* This,REFIID riid,void **ppv) {
  2496. return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
  2497. }
  2498. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_CoerceToCanonicalValue(IPropertyDescriptionSearchInfo* This,PROPVARIANT *ppropvar) {
  2499. return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
  2500. }
  2501. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_FormatForDisplay(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
  2502. return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
  2503. }
  2504. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_IsValueCanonical(IPropertyDescriptionSearchInfo* This,REFPROPVARIANT propvar) {
  2505. return This->lpVtbl->IsValueCanonical(This,propvar);
  2506. }
  2507. /*** IPropertyDescriptionSearchInfo methods ***/
  2508. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetSearchInfoFlags(IPropertyDescriptionSearchInfo* This,PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags) {
  2509. return This->lpVtbl->GetSearchInfoFlags(This,ppdsiFlags);
  2510. }
  2511. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetColumnIndexType(IPropertyDescriptionSearchInfo* This,PROPDESC_COLUMNINDEX_TYPE *ppdciType) {
  2512. return This->lpVtbl->GetColumnIndexType(This,ppdciType);
  2513. }
  2514. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetProjectionString(IPropertyDescriptionSearchInfo* This,LPWSTR *ppszProjection) {
  2515. return This->lpVtbl->GetProjectionString(This,ppszProjection);
  2516. }
  2517. static FORCEINLINE HRESULT IPropertyDescriptionSearchInfo_GetMaxSize(IPropertyDescriptionSearchInfo* This,UINT *pcbMaxSize) {
  2518. return This->lpVtbl->GetMaxSize(This,pcbMaxSize);
  2519. }
  2520. #endif
  2521. #endif
  2522. #endif
  2523. #endif /* __IPropertyDescriptionSearchInfo_INTERFACE_DEFINED__ */
  2524. /*****************************************************************************
  2525. * IPropertyDescriptionRelatedPropertyInfo interface
  2526. */
  2527. #ifndef __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__
  2528. #define __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__
  2529. DEFINE_GUID(IID_IPropertyDescriptionRelatedPropertyInfo, 0x507393f4, 0x2a3d, 0x4a60, 0xb5,0x9e, 0xd9,0xc7,0x57,0x16,0xc2,0xdd);
  2530. #if defined(__cplusplus) && !defined(CINTERFACE)
  2531. MIDL_INTERFACE("507393f4-2a3d-4a60-b59e-d9c75716c2dd")
  2532. IPropertyDescriptionRelatedPropertyInfo : public IPropertyDescription
  2533. {
  2534. virtual HRESULT STDMETHODCALLTYPE GetRelatedProperty(
  2535. LPCWSTR pszRelationshipName,
  2536. REFIID riid,
  2537. void **ppv) = 0;
  2538. };
  2539. #ifdef __CRT_UUID_DECL
  2540. __CRT_UUID_DECL(IPropertyDescriptionRelatedPropertyInfo, 0x507393f4, 0x2a3d, 0x4a60, 0xb5,0x9e, 0xd9,0xc7,0x57,0x16,0xc2,0xdd)
  2541. #endif
  2542. #else
  2543. typedef struct IPropertyDescriptionRelatedPropertyInfoVtbl {
  2544. BEGIN_INTERFACE
  2545. /*** IUnknown methods ***/
  2546. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2547. IPropertyDescriptionRelatedPropertyInfo *This,
  2548. REFIID riid,
  2549. void **ppvObject);
  2550. ULONG (STDMETHODCALLTYPE *AddRef)(
  2551. IPropertyDescriptionRelatedPropertyInfo *This);
  2552. ULONG (STDMETHODCALLTYPE *Release)(
  2553. IPropertyDescriptionRelatedPropertyInfo *This);
  2554. /*** IPropertyDescription methods ***/
  2555. HRESULT (STDMETHODCALLTYPE *GetPropertyKey)(
  2556. IPropertyDescriptionRelatedPropertyInfo *This,
  2557. PROPERTYKEY *pkey);
  2558. HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  2559. IPropertyDescriptionRelatedPropertyInfo *This,
  2560. LPWSTR *ppszName);
  2561. HRESULT (STDMETHODCALLTYPE *GetPropertyType)(
  2562. IPropertyDescriptionRelatedPropertyInfo *This,
  2563. VARTYPE *pvartype);
  2564. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  2565. IPropertyDescriptionRelatedPropertyInfo *This,
  2566. LPWSTR *ppszName);
  2567. HRESULT (STDMETHODCALLTYPE *GetEditInvitation)(
  2568. IPropertyDescriptionRelatedPropertyInfo *This,
  2569. LPWSTR *ppszInvite);
  2570. HRESULT (STDMETHODCALLTYPE *GetTypeFlags)(
  2571. IPropertyDescriptionRelatedPropertyInfo *This,
  2572. PROPDESC_TYPE_FLAGS mask,
  2573. PROPDESC_TYPE_FLAGS *ppdtFlags);
  2574. HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
  2575. IPropertyDescriptionRelatedPropertyInfo *This,
  2576. PROPDESC_VIEW_FLAGS *ppdvFlags);
  2577. HRESULT (STDMETHODCALLTYPE *GetDefaultColumnWidth)(
  2578. IPropertyDescriptionRelatedPropertyInfo *This,
  2579. UINT *pcxChars);
  2580. HRESULT (STDMETHODCALLTYPE *GetDisplayType)(
  2581. IPropertyDescriptionRelatedPropertyInfo *This,
  2582. PROPDESC_DISPLAYTYPE *pdisplaytype);
  2583. HRESULT (STDMETHODCALLTYPE *GetColumnState)(
  2584. IPropertyDescriptionRelatedPropertyInfo *This,
  2585. SHCOLSTATEF *pcsFlags);
  2586. HRESULT (STDMETHODCALLTYPE *GetGroupingRange)(
  2587. IPropertyDescriptionRelatedPropertyInfo *This,
  2588. PROPDESC_GROUPING_RANGE *pgr);
  2589. HRESULT (STDMETHODCALLTYPE *GetRelativeDescriptionType)(
  2590. IPropertyDescriptionRelatedPropertyInfo *This,
  2591. PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt);
  2592. HRESULT (STDMETHODCALLTYPE *GetRelativeDescription)(
  2593. IPropertyDescriptionRelatedPropertyInfo *This,
  2594. REFPROPVARIANT propvar1,
  2595. REFPROPVARIANT propvar2,
  2596. LPWSTR *ppszDesc1,
  2597. LPWSTR *ppszDesc2);
  2598. HRESULT (STDMETHODCALLTYPE *GetSortDescription)(
  2599. IPropertyDescriptionRelatedPropertyInfo *This,
  2600. PROPDESC_SORTDESCRIPTION *psd);
  2601. HRESULT (STDMETHODCALLTYPE *GetSortDescriptionLabel)(
  2602. IPropertyDescriptionRelatedPropertyInfo *This,
  2603. WINBOOL fDescending,
  2604. LPWSTR *ppszDescription);
  2605. HRESULT (STDMETHODCALLTYPE *GetAggregationType)(
  2606. IPropertyDescriptionRelatedPropertyInfo *This,
  2607. PROPDESC_AGGREGATION_TYPE *paggtype);
  2608. HRESULT (STDMETHODCALLTYPE *GetConditionType)(
  2609. IPropertyDescriptionRelatedPropertyInfo *This,
  2610. PROPDESC_CONDITION_TYPE *pcontype,
  2611. CONDITION_OPERATION *popDefault);
  2612. HRESULT (STDMETHODCALLTYPE *GetEnumTypeList)(
  2613. IPropertyDescriptionRelatedPropertyInfo *This,
  2614. REFIID riid,
  2615. void **ppv);
  2616. HRESULT (STDMETHODCALLTYPE *CoerceToCanonicalValue)(
  2617. IPropertyDescriptionRelatedPropertyInfo *This,
  2618. PROPVARIANT *ppropvar);
  2619. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  2620. IPropertyDescriptionRelatedPropertyInfo *This,
  2621. REFPROPVARIANT propvar,
  2622. PROPDESC_FORMAT_FLAGS pdfFlags,
  2623. LPWSTR *ppszDisplay);
  2624. HRESULT (STDMETHODCALLTYPE *IsValueCanonical)(
  2625. IPropertyDescriptionRelatedPropertyInfo *This,
  2626. REFPROPVARIANT propvar);
  2627. /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
  2628. HRESULT (STDMETHODCALLTYPE *GetRelatedProperty)(
  2629. IPropertyDescriptionRelatedPropertyInfo *This,
  2630. LPCWSTR pszRelationshipName,
  2631. REFIID riid,
  2632. void **ppv);
  2633. END_INTERFACE
  2634. } IPropertyDescriptionRelatedPropertyInfoVtbl;
  2635. interface IPropertyDescriptionRelatedPropertyInfo {
  2636. CONST_VTBL IPropertyDescriptionRelatedPropertyInfoVtbl* lpVtbl;
  2637. };
  2638. #ifdef COBJMACROS
  2639. #ifndef WIDL_C_INLINE_WRAPPERS
  2640. /*** IUnknown methods ***/
  2641. #define IPropertyDescriptionRelatedPropertyInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2642. #define IPropertyDescriptionRelatedPropertyInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  2643. #define IPropertyDescriptionRelatedPropertyInfo_Release(This) (This)->lpVtbl->Release(This)
  2644. /*** IPropertyDescription methods ***/
  2645. #define IPropertyDescriptionRelatedPropertyInfo_GetPropertyKey(This,pkey) (This)->lpVtbl->GetPropertyKey(This,pkey)
  2646. #define IPropertyDescriptionRelatedPropertyInfo_GetCanonicalName(This,ppszName) (This)->lpVtbl->GetCanonicalName(This,ppszName)
  2647. #define IPropertyDescriptionRelatedPropertyInfo_GetPropertyType(This,pvartype) (This)->lpVtbl->GetPropertyType(This,pvartype)
  2648. #define IPropertyDescriptionRelatedPropertyInfo_GetDisplayName(This,ppszName) (This)->lpVtbl->GetDisplayName(This,ppszName)
  2649. #define IPropertyDescriptionRelatedPropertyInfo_GetEditInvitation(This,ppszInvite) (This)->lpVtbl->GetEditInvitation(This,ppszInvite)
  2650. #define IPropertyDescriptionRelatedPropertyInfo_GetTypeFlags(This,mask,ppdtFlags) (This)->lpVtbl->GetTypeFlags(This,mask,ppdtFlags)
  2651. #define IPropertyDescriptionRelatedPropertyInfo_GetViewFlags(This,ppdvFlags) (This)->lpVtbl->GetViewFlags(This,ppdvFlags)
  2652. #define IPropertyDescriptionRelatedPropertyInfo_GetDefaultColumnWidth(This,pcxChars) (This)->lpVtbl->GetDefaultColumnWidth(This,pcxChars)
  2653. #define IPropertyDescriptionRelatedPropertyInfo_GetDisplayType(This,pdisplaytype) (This)->lpVtbl->GetDisplayType(This,pdisplaytype)
  2654. #define IPropertyDescriptionRelatedPropertyInfo_GetColumnState(This,pcsFlags) (This)->lpVtbl->GetColumnState(This,pcsFlags)
  2655. #define IPropertyDescriptionRelatedPropertyInfo_GetGroupingRange(This,pgr) (This)->lpVtbl->GetGroupingRange(This,pgr)
  2656. #define IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescriptionType(This,prdt) (This)->lpVtbl->GetRelativeDescriptionType(This,prdt)
  2657. #define IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2) (This)->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2)
  2658. #define IPropertyDescriptionRelatedPropertyInfo_GetSortDescription(This,psd) (This)->lpVtbl->GetSortDescription(This,psd)
  2659. #define IPropertyDescriptionRelatedPropertyInfo_GetSortDescriptionLabel(This,fDescending,ppszDescription) (This)->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription)
  2660. #define IPropertyDescriptionRelatedPropertyInfo_GetAggregationType(This,paggtype) (This)->lpVtbl->GetAggregationType(This,paggtype)
  2661. #define IPropertyDescriptionRelatedPropertyInfo_GetConditionType(This,pcontype,popDefault) (This)->lpVtbl->GetConditionType(This,pcontype,popDefault)
  2662. #define IPropertyDescriptionRelatedPropertyInfo_GetEnumTypeList(This,riid,ppv) (This)->lpVtbl->GetEnumTypeList(This,riid,ppv)
  2663. #define IPropertyDescriptionRelatedPropertyInfo_CoerceToCanonicalValue(This,ppropvar) (This)->lpVtbl->CoerceToCanonicalValue(This,ppropvar)
  2664. #define IPropertyDescriptionRelatedPropertyInfo_FormatForDisplay(This,propvar,pdfFlags,ppszDisplay) (This)->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay)
  2665. #define IPropertyDescriptionRelatedPropertyInfo_IsValueCanonical(This,propvar) (This)->lpVtbl->IsValueCanonical(This,propvar)
  2666. /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
  2667. #define IPropertyDescriptionRelatedPropertyInfo_GetRelatedProperty(This,pszRelationshipName,riid,ppv) (This)->lpVtbl->GetRelatedProperty(This,pszRelationshipName,riid,ppv)
  2668. #else
  2669. /*** IUnknown methods ***/
  2670. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_QueryInterface(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppvObject) {
  2671. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2672. }
  2673. static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_AddRef(IPropertyDescriptionRelatedPropertyInfo* This) {
  2674. return This->lpVtbl->AddRef(This);
  2675. }
  2676. static FORCEINLINE ULONG IPropertyDescriptionRelatedPropertyInfo_Release(IPropertyDescriptionRelatedPropertyInfo* This) {
  2677. return This->lpVtbl->Release(This);
  2678. }
  2679. /*** IPropertyDescription methods ***/
  2680. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyKey(IPropertyDescriptionRelatedPropertyInfo* This,PROPERTYKEY *pkey) {
  2681. return This->lpVtbl->GetPropertyKey(This,pkey);
  2682. }
  2683. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetCanonicalName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
  2684. return This->lpVtbl->GetCanonicalName(This,ppszName);
  2685. }
  2686. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetPropertyType(IPropertyDescriptionRelatedPropertyInfo* This,VARTYPE *pvartype) {
  2687. return This->lpVtbl->GetPropertyType(This,pvartype);
  2688. }
  2689. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayName(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszName) {
  2690. return This->lpVtbl->GetDisplayName(This,ppszName);
  2691. }
  2692. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEditInvitation(IPropertyDescriptionRelatedPropertyInfo* This,LPWSTR *ppszInvite) {
  2693. return This->lpVtbl->GetEditInvitation(This,ppszInvite);
  2694. }
  2695. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetTypeFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_TYPE_FLAGS mask,PROPDESC_TYPE_FLAGS *ppdtFlags) {
  2696. return This->lpVtbl->GetTypeFlags(This,mask,ppdtFlags);
  2697. }
  2698. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetViewFlags(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_VIEW_FLAGS *ppdvFlags) {
  2699. return This->lpVtbl->GetViewFlags(This,ppdvFlags);
  2700. }
  2701. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDefaultColumnWidth(IPropertyDescriptionRelatedPropertyInfo* This,UINT *pcxChars) {
  2702. return This->lpVtbl->GetDefaultColumnWidth(This,pcxChars);
  2703. }
  2704. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetDisplayType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_DISPLAYTYPE *pdisplaytype) {
  2705. return This->lpVtbl->GetDisplayType(This,pdisplaytype);
  2706. }
  2707. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetColumnState(IPropertyDescriptionRelatedPropertyInfo* This,SHCOLSTATEF *pcsFlags) {
  2708. return This->lpVtbl->GetColumnState(This,pcsFlags);
  2709. }
  2710. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetGroupingRange(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_GROUPING_RANGE *pgr) {
  2711. return This->lpVtbl->GetGroupingRange(This,pgr);
  2712. }
  2713. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescriptionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt) {
  2714. return This->lpVtbl->GetRelativeDescriptionType(This,prdt);
  2715. }
  2716. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelativeDescription(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar1,REFPROPVARIANT propvar2,LPWSTR *ppszDesc1,LPWSTR *ppszDesc2) {
  2717. return This->lpVtbl->GetRelativeDescription(This,propvar1,propvar2,ppszDesc1,ppszDesc2);
  2718. }
  2719. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescription(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_SORTDESCRIPTION *psd) {
  2720. return This->lpVtbl->GetSortDescription(This,psd);
  2721. }
  2722. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetSortDescriptionLabel(IPropertyDescriptionRelatedPropertyInfo* This,WINBOOL fDescending,LPWSTR *ppszDescription) {
  2723. return This->lpVtbl->GetSortDescriptionLabel(This,fDescending,ppszDescription);
  2724. }
  2725. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetAggregationType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_AGGREGATION_TYPE *paggtype) {
  2726. return This->lpVtbl->GetAggregationType(This,paggtype);
  2727. }
  2728. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetConditionType(IPropertyDescriptionRelatedPropertyInfo* This,PROPDESC_CONDITION_TYPE *pcontype,CONDITION_OPERATION *popDefault) {
  2729. return This->lpVtbl->GetConditionType(This,pcontype,popDefault);
  2730. }
  2731. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetEnumTypeList(IPropertyDescriptionRelatedPropertyInfo* This,REFIID riid,void **ppv) {
  2732. return This->lpVtbl->GetEnumTypeList(This,riid,ppv);
  2733. }
  2734. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_CoerceToCanonicalValue(IPropertyDescriptionRelatedPropertyInfo* This,PROPVARIANT *ppropvar) {
  2735. return This->lpVtbl->CoerceToCanonicalValue(This,ppropvar);
  2736. }
  2737. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_FormatForDisplay(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdfFlags,LPWSTR *ppszDisplay) {
  2738. return This->lpVtbl->FormatForDisplay(This,propvar,pdfFlags,ppszDisplay);
  2739. }
  2740. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_IsValueCanonical(IPropertyDescriptionRelatedPropertyInfo* This,REFPROPVARIANT propvar) {
  2741. return This->lpVtbl->IsValueCanonical(This,propvar);
  2742. }
  2743. /*** IPropertyDescriptionRelatedPropertyInfo methods ***/
  2744. static FORCEINLINE HRESULT IPropertyDescriptionRelatedPropertyInfo_GetRelatedProperty(IPropertyDescriptionRelatedPropertyInfo* This,LPCWSTR pszRelationshipName,REFIID riid,void **ppv) {
  2745. return This->lpVtbl->GetRelatedProperty(This,pszRelationshipName,riid,ppv);
  2746. }
  2747. #endif
  2748. #endif
  2749. #endif
  2750. #endif /* __IPropertyDescriptionRelatedPropertyInfo_INTERFACE_DEFINED__ */
  2751. typedef enum PROPDESC_ENUMFILTER {
  2752. PDEF_ALL = 0,
  2753. PDEF_SYSTEM = 1,
  2754. PDEF_NONSYSTEM = 2,
  2755. PDEF_VIEWABLE = 3,
  2756. PDEF_QUERYABLE = 4,
  2757. PDEF_INFULLTEXTQUERY = 5,
  2758. PDEF_COLUMN = 6
  2759. } PROPDESC_ENUMFILTER;
  2760. /*****************************************************************************
  2761. * IPropertySystem interface
  2762. */
  2763. #ifndef __IPropertySystem_INTERFACE_DEFINED__
  2764. #define __IPropertySystem_INTERFACE_DEFINED__
  2765. DEFINE_GUID(IID_IPropertySystem, 0xca724e8a, 0xc3e6, 0x442b, 0x88,0xa4, 0x6f,0xb0,0xdb,0x80,0x35,0xa3);
  2766. #if defined(__cplusplus) && !defined(CINTERFACE)
  2767. MIDL_INTERFACE("ca724e8a-c3e6-442b-88a4-6fb0db8035a3")
  2768. IPropertySystem : public IUnknown
  2769. {
  2770. virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
  2771. REFPROPERTYKEY propkey,
  2772. REFIID riid,
  2773. void **ppv) = 0;
  2774. virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionByName(
  2775. LPCWSTR pszCanonicalName,
  2776. REFIID riid,
  2777. void **ppv) = 0;
  2778. virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionListFromString(
  2779. LPCWSTR pszPropList,
  2780. REFIID riid,
  2781. void **ppv) = 0;
  2782. virtual HRESULT STDMETHODCALLTYPE EnumeratePropertyDescriptions(
  2783. PROPDESC_ENUMFILTER filterOn,
  2784. REFIID riid,
  2785. void **ppv) = 0;
  2786. virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
  2787. REFPROPERTYKEY key,
  2788. REFPROPVARIANT propvar,
  2789. PROPDESC_FORMAT_FLAGS pdff,
  2790. LPWSTR pszText,
  2791. DWORD cchText) = 0;
  2792. virtual HRESULT STDMETHODCALLTYPE FormatForDisplayAlloc(
  2793. REFPROPERTYKEY key,
  2794. REFPROPVARIANT propvar,
  2795. PROPDESC_FORMAT_FLAGS pdff,
  2796. LPWSTR *ppszDisplay) = 0;
  2797. virtual HRESULT STDMETHODCALLTYPE RegisterPropertySchema(
  2798. LPCWSTR pszPath) = 0;
  2799. virtual HRESULT STDMETHODCALLTYPE UnregisterPropertySchema(
  2800. LPCWSTR pszPath) = 0;
  2801. virtual HRESULT STDMETHODCALLTYPE RefreshPropertySchema(
  2802. ) = 0;
  2803. };
  2804. #ifdef __CRT_UUID_DECL
  2805. __CRT_UUID_DECL(IPropertySystem, 0xca724e8a, 0xc3e6, 0x442b, 0x88,0xa4, 0x6f,0xb0,0xdb,0x80,0x35,0xa3)
  2806. #endif
  2807. #else
  2808. typedef struct IPropertySystemVtbl {
  2809. BEGIN_INTERFACE
  2810. /*** IUnknown methods ***/
  2811. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2812. IPropertySystem *This,
  2813. REFIID riid,
  2814. void **ppvObject);
  2815. ULONG (STDMETHODCALLTYPE *AddRef)(
  2816. IPropertySystem *This);
  2817. ULONG (STDMETHODCALLTYPE *Release)(
  2818. IPropertySystem *This);
  2819. /*** IPropertySystem methods ***/
  2820. HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
  2821. IPropertySystem *This,
  2822. REFPROPERTYKEY propkey,
  2823. REFIID riid,
  2824. void **ppv);
  2825. HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionByName)(
  2826. IPropertySystem *This,
  2827. LPCWSTR pszCanonicalName,
  2828. REFIID riid,
  2829. void **ppv);
  2830. HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionListFromString)(
  2831. IPropertySystem *This,
  2832. LPCWSTR pszPropList,
  2833. REFIID riid,
  2834. void **ppv);
  2835. HRESULT (STDMETHODCALLTYPE *EnumeratePropertyDescriptions)(
  2836. IPropertySystem *This,
  2837. PROPDESC_ENUMFILTER filterOn,
  2838. REFIID riid,
  2839. void **ppv);
  2840. HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  2841. IPropertySystem *This,
  2842. REFPROPERTYKEY key,
  2843. REFPROPVARIANT propvar,
  2844. PROPDESC_FORMAT_FLAGS pdff,
  2845. LPWSTR pszText,
  2846. DWORD cchText);
  2847. HRESULT (STDMETHODCALLTYPE *FormatForDisplayAlloc)(
  2848. IPropertySystem *This,
  2849. REFPROPERTYKEY key,
  2850. REFPROPVARIANT propvar,
  2851. PROPDESC_FORMAT_FLAGS pdff,
  2852. LPWSTR *ppszDisplay);
  2853. HRESULT (STDMETHODCALLTYPE *RegisterPropertySchema)(
  2854. IPropertySystem *This,
  2855. LPCWSTR pszPath);
  2856. HRESULT (STDMETHODCALLTYPE *UnregisterPropertySchema)(
  2857. IPropertySystem *This,
  2858. LPCWSTR pszPath);
  2859. HRESULT (STDMETHODCALLTYPE *RefreshPropertySchema)(
  2860. IPropertySystem *This);
  2861. END_INTERFACE
  2862. } IPropertySystemVtbl;
  2863. interface IPropertySystem {
  2864. CONST_VTBL IPropertySystemVtbl* lpVtbl;
  2865. };
  2866. #ifdef COBJMACROS
  2867. #ifndef WIDL_C_INLINE_WRAPPERS
  2868. /*** IUnknown methods ***/
  2869. #define IPropertySystem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2870. #define IPropertySystem_AddRef(This) (This)->lpVtbl->AddRef(This)
  2871. #define IPropertySystem_Release(This) (This)->lpVtbl->Release(This)
  2872. /*** IPropertySystem methods ***/
  2873. #define IPropertySystem_GetPropertyDescription(This,propkey,riid,ppv) (This)->lpVtbl->GetPropertyDescription(This,propkey,riid,ppv)
  2874. #define IPropertySystem_GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv)
  2875. #define IPropertySystem_GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv)
  2876. #define IPropertySystem_EnumeratePropertyDescriptions(This,filterOn,riid,ppv) (This)->lpVtbl->EnumeratePropertyDescriptions(This,filterOn,riid,ppv)
  2877. #define IPropertySystem_FormatForDisplay(This,key,propvar,pdff,pszText,cchText) (This)->lpVtbl->FormatForDisplay(This,key,propvar,pdff,pszText,cchText)
  2878. #define IPropertySystem_FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay) (This)->lpVtbl->FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay)
  2879. #define IPropertySystem_RegisterPropertySchema(This,pszPath) (This)->lpVtbl->RegisterPropertySchema(This,pszPath)
  2880. #define IPropertySystem_UnregisterPropertySchema(This,pszPath) (This)->lpVtbl->UnregisterPropertySchema(This,pszPath)
  2881. #define IPropertySystem_RefreshPropertySchema(This) (This)->lpVtbl->RefreshPropertySchema(This)
  2882. #else
  2883. /*** IUnknown methods ***/
  2884. static FORCEINLINE HRESULT IPropertySystem_QueryInterface(IPropertySystem* This,REFIID riid,void **ppvObject) {
  2885. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2886. }
  2887. static FORCEINLINE ULONG IPropertySystem_AddRef(IPropertySystem* This) {
  2888. return This->lpVtbl->AddRef(This);
  2889. }
  2890. static FORCEINLINE ULONG IPropertySystem_Release(IPropertySystem* This) {
  2891. return This->lpVtbl->Release(This);
  2892. }
  2893. /*** IPropertySystem methods ***/
  2894. static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescription(IPropertySystem* This,REFPROPERTYKEY propkey,REFIID riid,void **ppv) {
  2895. return This->lpVtbl->GetPropertyDescription(This,propkey,riid,ppv);
  2896. }
  2897. static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionByName(IPropertySystem* This,LPCWSTR pszCanonicalName,REFIID riid,void **ppv) {
  2898. return This->lpVtbl->GetPropertyDescriptionByName(This,pszCanonicalName,riid,ppv);
  2899. }
  2900. static FORCEINLINE HRESULT IPropertySystem_GetPropertyDescriptionListFromString(IPropertySystem* This,LPCWSTR pszPropList,REFIID riid,void **ppv) {
  2901. return This->lpVtbl->GetPropertyDescriptionListFromString(This,pszPropList,riid,ppv);
  2902. }
  2903. static FORCEINLINE HRESULT IPropertySystem_EnumeratePropertyDescriptions(IPropertySystem* This,PROPDESC_ENUMFILTER filterOn,REFIID riid,void **ppv) {
  2904. return This->lpVtbl->EnumeratePropertyDescriptions(This,filterOn,riid,ppv);
  2905. }
  2906. static FORCEINLINE HRESULT IPropertySystem_FormatForDisplay(IPropertySystem* This,REFPROPERTYKEY key,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdff,LPWSTR pszText,DWORD cchText) {
  2907. return This->lpVtbl->FormatForDisplay(This,key,propvar,pdff,pszText,cchText);
  2908. }
  2909. static FORCEINLINE HRESULT IPropertySystem_FormatForDisplayAlloc(IPropertySystem* This,REFPROPERTYKEY key,REFPROPVARIANT propvar,PROPDESC_FORMAT_FLAGS pdff,LPWSTR *ppszDisplay) {
  2910. return This->lpVtbl->FormatForDisplayAlloc(This,key,propvar,pdff,ppszDisplay);
  2911. }
  2912. static FORCEINLINE HRESULT IPropertySystem_RegisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
  2913. return This->lpVtbl->RegisterPropertySchema(This,pszPath);
  2914. }
  2915. static FORCEINLINE HRESULT IPropertySystem_UnregisterPropertySchema(IPropertySystem* This,LPCWSTR pszPath) {
  2916. return This->lpVtbl->UnregisterPropertySchema(This,pszPath);
  2917. }
  2918. static FORCEINLINE HRESULT IPropertySystem_RefreshPropertySchema(IPropertySystem* This) {
  2919. return This->lpVtbl->RefreshPropertySchema(This);
  2920. }
  2921. #endif
  2922. #endif
  2923. #endif
  2924. #endif /* __IPropertySystem_INTERFACE_DEFINED__ */
  2925. /*****************************************************************************
  2926. * IPropertyDescriptionList interface
  2927. */
  2928. #ifndef __IPropertyDescriptionList_INTERFACE_DEFINED__
  2929. #define __IPropertyDescriptionList_INTERFACE_DEFINED__
  2930. DEFINE_GUID(IID_IPropertyDescriptionList, 0x1f9fc1d0, 0xc39b, 0x4b26, 0x81,0x7f, 0x01,0x19,0x67,0xd3,0x44,0x0e);
  2931. #if defined(__cplusplus) && !defined(CINTERFACE)
  2932. MIDL_INTERFACE("1f9fc1d0-c39b-4b26-817f-011967d3440e")
  2933. IPropertyDescriptionList : public IUnknown
  2934. {
  2935. virtual HRESULT STDMETHODCALLTYPE GetCount(
  2936. UINT *pcElem) = 0;
  2937. virtual HRESULT STDMETHODCALLTYPE GetAt(
  2938. UINT iElem,
  2939. REFIID riid,
  2940. void **ppv) = 0;
  2941. };
  2942. #ifdef __CRT_UUID_DECL
  2943. __CRT_UUID_DECL(IPropertyDescriptionList, 0x1f9fc1d0, 0xc39b, 0x4b26, 0x81,0x7f, 0x01,0x19,0x67,0xd3,0x44,0x0e)
  2944. #endif
  2945. #else
  2946. typedef struct IPropertyDescriptionListVtbl {
  2947. BEGIN_INTERFACE
  2948. /*** IUnknown methods ***/
  2949. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  2950. IPropertyDescriptionList *This,
  2951. REFIID riid,
  2952. void **ppvObject);
  2953. ULONG (STDMETHODCALLTYPE *AddRef)(
  2954. IPropertyDescriptionList *This);
  2955. ULONG (STDMETHODCALLTYPE *Release)(
  2956. IPropertyDescriptionList *This);
  2957. /*** IPropertyDescriptionList methods ***/
  2958. HRESULT (STDMETHODCALLTYPE *GetCount)(
  2959. IPropertyDescriptionList *This,
  2960. UINT *pcElem);
  2961. HRESULT (STDMETHODCALLTYPE *GetAt)(
  2962. IPropertyDescriptionList *This,
  2963. UINT iElem,
  2964. REFIID riid,
  2965. void **ppv);
  2966. END_INTERFACE
  2967. } IPropertyDescriptionListVtbl;
  2968. interface IPropertyDescriptionList {
  2969. CONST_VTBL IPropertyDescriptionListVtbl* lpVtbl;
  2970. };
  2971. #ifdef COBJMACROS
  2972. #ifndef WIDL_C_INLINE_WRAPPERS
  2973. /*** IUnknown methods ***/
  2974. #define IPropertyDescriptionList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2975. #define IPropertyDescriptionList_AddRef(This) (This)->lpVtbl->AddRef(This)
  2976. #define IPropertyDescriptionList_Release(This) (This)->lpVtbl->Release(This)
  2977. /*** IPropertyDescriptionList methods ***/
  2978. #define IPropertyDescriptionList_GetCount(This,pcElem) (This)->lpVtbl->GetCount(This,pcElem)
  2979. #define IPropertyDescriptionList_GetAt(This,iElem,riid,ppv) (This)->lpVtbl->GetAt(This,iElem,riid,ppv)
  2980. #else
  2981. /*** IUnknown methods ***/
  2982. static FORCEINLINE HRESULT IPropertyDescriptionList_QueryInterface(IPropertyDescriptionList* This,REFIID riid,void **ppvObject) {
  2983. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  2984. }
  2985. static FORCEINLINE ULONG IPropertyDescriptionList_AddRef(IPropertyDescriptionList* This) {
  2986. return This->lpVtbl->AddRef(This);
  2987. }
  2988. static FORCEINLINE ULONG IPropertyDescriptionList_Release(IPropertyDescriptionList* This) {
  2989. return This->lpVtbl->Release(This);
  2990. }
  2991. /*** IPropertyDescriptionList methods ***/
  2992. static FORCEINLINE HRESULT IPropertyDescriptionList_GetCount(IPropertyDescriptionList* This,UINT *pcElem) {
  2993. return This->lpVtbl->GetCount(This,pcElem);
  2994. }
  2995. static FORCEINLINE HRESULT IPropertyDescriptionList_GetAt(IPropertyDescriptionList* This,UINT iElem,REFIID riid,void **ppv) {
  2996. return This->lpVtbl->GetAt(This,iElem,riid,ppv);
  2997. }
  2998. #endif
  2999. #endif
  3000. #endif
  3001. #endif /* __IPropertyDescriptionList_INTERFACE_DEFINED__ */
  3002. /*****************************************************************************
  3003. * IPropertyStoreFactory interface
  3004. */
  3005. #ifndef __IPropertyStoreFactory_INTERFACE_DEFINED__
  3006. #define __IPropertyStoreFactory_INTERFACE_DEFINED__
  3007. DEFINE_GUID(IID_IPropertyStoreFactory, 0xbc110b6d, 0x57e8, 0x4148, 0xa9,0xc6, 0x91,0x01,0x5a,0xb2,0xf3,0xa5);
  3008. #if defined(__cplusplus) && !defined(CINTERFACE)
  3009. MIDL_INTERFACE("bc110b6d-57e8-4148-a9c6-91015ab2f3a5")
  3010. IPropertyStoreFactory : public IUnknown
  3011. {
  3012. virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
  3013. GETPROPERTYSTOREFLAGS flags,
  3014. IUnknown *pUnkFactory,
  3015. REFIID riid,
  3016. void **ppv) = 0;
  3017. virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
  3018. const PROPERTYKEY *rgKeys,
  3019. UINT cKeys,
  3020. GETPROPERTYSTOREFLAGS flags,
  3021. REFIID riid,
  3022. void **ppv) = 0;
  3023. };
  3024. #ifdef __CRT_UUID_DECL
  3025. __CRT_UUID_DECL(IPropertyStoreFactory, 0xbc110b6d, 0x57e8, 0x4148, 0xa9,0xc6, 0x91,0x01,0x5a,0xb2,0xf3,0xa5)
  3026. #endif
  3027. #else
  3028. typedef struct IPropertyStoreFactoryVtbl {
  3029. BEGIN_INTERFACE
  3030. /*** IUnknown methods ***/
  3031. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3032. IPropertyStoreFactory *This,
  3033. REFIID riid,
  3034. void **ppvObject);
  3035. ULONG (STDMETHODCALLTYPE *AddRef)(
  3036. IPropertyStoreFactory *This);
  3037. ULONG (STDMETHODCALLTYPE *Release)(
  3038. IPropertyStoreFactory *This);
  3039. /*** IPropertyStoreFactory methods ***/
  3040. HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
  3041. IPropertyStoreFactory *This,
  3042. GETPROPERTYSTOREFLAGS flags,
  3043. IUnknown *pUnkFactory,
  3044. REFIID riid,
  3045. void **ppv);
  3046. HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
  3047. IPropertyStoreFactory *This,
  3048. const PROPERTYKEY *rgKeys,
  3049. UINT cKeys,
  3050. GETPROPERTYSTOREFLAGS flags,
  3051. REFIID riid,
  3052. void **ppv);
  3053. END_INTERFACE
  3054. } IPropertyStoreFactoryVtbl;
  3055. interface IPropertyStoreFactory {
  3056. CONST_VTBL IPropertyStoreFactoryVtbl* lpVtbl;
  3057. };
  3058. #ifdef COBJMACROS
  3059. #ifndef WIDL_C_INLINE_WRAPPERS
  3060. /*** IUnknown methods ***/
  3061. #define IPropertyStoreFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3062. #define IPropertyStoreFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  3063. #define IPropertyStoreFactory_Release(This) (This)->lpVtbl->Release(This)
  3064. /*** IPropertyStoreFactory methods ***/
  3065. #define IPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv)
  3066. #define IPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
  3067. #else
  3068. /*** IUnknown methods ***/
  3069. static FORCEINLINE HRESULT IPropertyStoreFactory_QueryInterface(IPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
  3070. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3071. }
  3072. static FORCEINLINE ULONG IPropertyStoreFactory_AddRef(IPropertyStoreFactory* This) {
  3073. return This->lpVtbl->AddRef(This);
  3074. }
  3075. static FORCEINLINE ULONG IPropertyStoreFactory_Release(IPropertyStoreFactory* This) {
  3076. return This->lpVtbl->Release(This);
  3077. }
  3078. /*** IPropertyStoreFactory methods ***/
  3079. static FORCEINLINE HRESULT IPropertyStoreFactory_GetPropertyStore(IPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,IUnknown *pUnkFactory,REFIID riid,void **ppv) {
  3080. return This->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv);
  3081. }
  3082. static FORCEINLINE HRESULT IPropertyStoreFactory_GetPropertyStoreForKeys(IPropertyStoreFactory* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
  3083. return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
  3084. }
  3085. #endif
  3086. #endif
  3087. #endif
  3088. #endif /* __IPropertyStoreFactory_INTERFACE_DEFINED__ */
  3089. /*****************************************************************************
  3090. * IDelayedPropertyStoreFactory interface
  3091. */
  3092. #ifndef __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
  3093. #define __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__
  3094. DEFINE_GUID(IID_IDelayedPropertyStoreFactory, 0x40d4577f, 0xe237, 0x4bdb, 0xbd,0x69, 0x58,0xf0,0x89,0x43,0x1b,0x6a);
  3095. #if defined(__cplusplus) && !defined(CINTERFACE)
  3096. MIDL_INTERFACE("40d4577f-e237-4bdb-bd69-58f089431b6a")
  3097. IDelayedPropertyStoreFactory : public IPropertyStoreFactory
  3098. {
  3099. virtual HRESULT STDMETHODCALLTYPE GetDelayedPropertyStore(
  3100. GETPROPERTYSTOREFLAGS flags,
  3101. DWORD dwStoreId,
  3102. REFIID riid,
  3103. void **ppv) = 0;
  3104. };
  3105. #ifdef __CRT_UUID_DECL
  3106. __CRT_UUID_DECL(IDelayedPropertyStoreFactory, 0x40d4577f, 0xe237, 0x4bdb, 0xbd,0x69, 0x58,0xf0,0x89,0x43,0x1b,0x6a)
  3107. #endif
  3108. #else
  3109. typedef struct IDelayedPropertyStoreFactoryVtbl {
  3110. BEGIN_INTERFACE
  3111. /*** IUnknown methods ***/
  3112. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3113. IDelayedPropertyStoreFactory *This,
  3114. REFIID riid,
  3115. void **ppvObject);
  3116. ULONG (STDMETHODCALLTYPE *AddRef)(
  3117. IDelayedPropertyStoreFactory *This);
  3118. ULONG (STDMETHODCALLTYPE *Release)(
  3119. IDelayedPropertyStoreFactory *This);
  3120. /*** IPropertyStoreFactory methods ***/
  3121. HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
  3122. IDelayedPropertyStoreFactory *This,
  3123. GETPROPERTYSTOREFLAGS flags,
  3124. IUnknown *pUnkFactory,
  3125. REFIID riid,
  3126. void **ppv);
  3127. HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
  3128. IDelayedPropertyStoreFactory *This,
  3129. const PROPERTYKEY *rgKeys,
  3130. UINT cKeys,
  3131. GETPROPERTYSTOREFLAGS flags,
  3132. REFIID riid,
  3133. void **ppv);
  3134. /*** IDelayedPropertyStoreFactory methods ***/
  3135. HRESULT (STDMETHODCALLTYPE *GetDelayedPropertyStore)(
  3136. IDelayedPropertyStoreFactory *This,
  3137. GETPROPERTYSTOREFLAGS flags,
  3138. DWORD dwStoreId,
  3139. REFIID riid,
  3140. void **ppv);
  3141. END_INTERFACE
  3142. } IDelayedPropertyStoreFactoryVtbl;
  3143. interface IDelayedPropertyStoreFactory {
  3144. CONST_VTBL IDelayedPropertyStoreFactoryVtbl* lpVtbl;
  3145. };
  3146. #ifdef COBJMACROS
  3147. #ifndef WIDL_C_INLINE_WRAPPERS
  3148. /*** IUnknown methods ***/
  3149. #define IDelayedPropertyStoreFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3150. #define IDelayedPropertyStoreFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  3151. #define IDelayedPropertyStoreFactory_Release(This) (This)->lpVtbl->Release(This)
  3152. /*** IPropertyStoreFactory methods ***/
  3153. #define IDelayedPropertyStoreFactory_GetPropertyStore(This,flags,pUnkFactory,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv)
  3154. #define IDelayedPropertyStoreFactory_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
  3155. /*** IDelayedPropertyStoreFactory methods ***/
  3156. #define IDelayedPropertyStoreFactory_GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv) (This)->lpVtbl->GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv)
  3157. #else
  3158. /*** IUnknown methods ***/
  3159. static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_QueryInterface(IDelayedPropertyStoreFactory* This,REFIID riid,void **ppvObject) {
  3160. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3161. }
  3162. static FORCEINLINE ULONG IDelayedPropertyStoreFactory_AddRef(IDelayedPropertyStoreFactory* This) {
  3163. return This->lpVtbl->AddRef(This);
  3164. }
  3165. static FORCEINLINE ULONG IDelayedPropertyStoreFactory_Release(IDelayedPropertyStoreFactory* This) {
  3166. return This->lpVtbl->Release(This);
  3167. }
  3168. /*** IPropertyStoreFactory methods ***/
  3169. static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetPropertyStore(IDelayedPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,IUnknown *pUnkFactory,REFIID riid,void **ppv) {
  3170. return This->lpVtbl->GetPropertyStore(This,flags,pUnkFactory,riid,ppv);
  3171. }
  3172. static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetPropertyStoreForKeys(IDelayedPropertyStoreFactory* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
  3173. return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
  3174. }
  3175. /*** IDelayedPropertyStoreFactory methods ***/
  3176. static FORCEINLINE HRESULT IDelayedPropertyStoreFactory_GetDelayedPropertyStore(IDelayedPropertyStoreFactory* This,GETPROPERTYSTOREFLAGS flags,DWORD dwStoreId,REFIID riid,void **ppv) {
  3177. return This->lpVtbl->GetDelayedPropertyStore(This,flags,dwStoreId,riid,ppv);
  3178. }
  3179. #endif
  3180. #endif
  3181. #endif
  3182. #endif /* __IDelayedPropertyStoreFactory_INTERFACE_DEFINED__ */
  3183. enum _PERSIST_SPROPSTORE_FLAGS {
  3184. FPSPS_DEFAULT = 0x0,
  3185. FPSPS_READONLY = 0x1,
  3186. FPSPS_TREAT_NEW_VALUES_AS_DIRTY = 0x2
  3187. };
  3188. typedef int PERSIST_SPROPSTORE_FLAGS;
  3189. typedef struct tagSERIALIZEDPROPSTORAGE SERIALIZEDPROPSTORAGE;
  3190. typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
  3191. typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
  3192. /*****************************************************************************
  3193. * IPersistSerializedPropStorage interface
  3194. */
  3195. #ifndef __IPersistSerializedPropStorage_INTERFACE_DEFINED__
  3196. #define __IPersistSerializedPropStorage_INTERFACE_DEFINED__
  3197. DEFINE_GUID(IID_IPersistSerializedPropStorage, 0xe318ad57, 0x0aa0, 0x450f, 0xac,0xa5, 0x6f,0xab,0x71,0x03,0xd9,0x17);
  3198. #if defined(__cplusplus) && !defined(CINTERFACE)
  3199. MIDL_INTERFACE("e318ad57-0aa0-450f-aca5-6fab7103d917")
  3200. IPersistSerializedPropStorage : public IUnknown
  3201. {
  3202. virtual HRESULT STDMETHODCALLTYPE SetFlags(
  3203. PERSIST_SPROPSTORE_FLAGS flags) = 0;
  3204. virtual HRESULT STDMETHODCALLTYPE SetPropertyStorage(
  3205. PCUSERIALIZEDPROPSTORAGE psps,
  3206. DWORD cb) = 0;
  3207. virtual HRESULT STDMETHODCALLTYPE GetPropertyStorage(
  3208. SERIALIZEDPROPSTORAGE **ppsps,
  3209. DWORD *pcb) = 0;
  3210. };
  3211. #ifdef __CRT_UUID_DECL
  3212. __CRT_UUID_DECL(IPersistSerializedPropStorage, 0xe318ad57, 0x0aa0, 0x450f, 0xac,0xa5, 0x6f,0xab,0x71,0x03,0xd9,0x17)
  3213. #endif
  3214. #else
  3215. typedef struct IPersistSerializedPropStorageVtbl {
  3216. BEGIN_INTERFACE
  3217. /*** IUnknown methods ***/
  3218. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3219. IPersistSerializedPropStorage *This,
  3220. REFIID riid,
  3221. void **ppvObject);
  3222. ULONG (STDMETHODCALLTYPE *AddRef)(
  3223. IPersistSerializedPropStorage *This);
  3224. ULONG (STDMETHODCALLTYPE *Release)(
  3225. IPersistSerializedPropStorage *This);
  3226. /*** IPersistSerializedPropStorage methods ***/
  3227. HRESULT (STDMETHODCALLTYPE *SetFlags)(
  3228. IPersistSerializedPropStorage *This,
  3229. PERSIST_SPROPSTORE_FLAGS flags);
  3230. HRESULT (STDMETHODCALLTYPE *SetPropertyStorage)(
  3231. IPersistSerializedPropStorage *This,
  3232. PCUSERIALIZEDPROPSTORAGE psps,
  3233. DWORD cb);
  3234. HRESULT (STDMETHODCALLTYPE *GetPropertyStorage)(
  3235. IPersistSerializedPropStorage *This,
  3236. SERIALIZEDPROPSTORAGE **ppsps,
  3237. DWORD *pcb);
  3238. END_INTERFACE
  3239. } IPersistSerializedPropStorageVtbl;
  3240. interface IPersistSerializedPropStorage {
  3241. CONST_VTBL IPersistSerializedPropStorageVtbl* lpVtbl;
  3242. };
  3243. #ifdef COBJMACROS
  3244. #ifndef WIDL_C_INLINE_WRAPPERS
  3245. /*** IUnknown methods ***/
  3246. #define IPersistSerializedPropStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3247. #define IPersistSerializedPropStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
  3248. #define IPersistSerializedPropStorage_Release(This) (This)->lpVtbl->Release(This)
  3249. /*** IPersistSerializedPropStorage methods ***/
  3250. #define IPersistSerializedPropStorage_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
  3251. #define IPersistSerializedPropStorage_SetPropertyStorage(This,psps,cb) (This)->lpVtbl->SetPropertyStorage(This,psps,cb)
  3252. #define IPersistSerializedPropStorage_GetPropertyStorage(This,ppsps,pcb) (This)->lpVtbl->GetPropertyStorage(This,ppsps,pcb)
  3253. #else
  3254. /*** IUnknown methods ***/
  3255. static FORCEINLINE HRESULT IPersistSerializedPropStorage_QueryInterface(IPersistSerializedPropStorage* This,REFIID riid,void **ppvObject) {
  3256. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3257. }
  3258. static FORCEINLINE ULONG IPersistSerializedPropStorage_AddRef(IPersistSerializedPropStorage* This) {
  3259. return This->lpVtbl->AddRef(This);
  3260. }
  3261. static FORCEINLINE ULONG IPersistSerializedPropStorage_Release(IPersistSerializedPropStorage* This) {
  3262. return This->lpVtbl->Release(This);
  3263. }
  3264. /*** IPersistSerializedPropStorage methods ***/
  3265. static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetFlags(IPersistSerializedPropStorage* This,PERSIST_SPROPSTORE_FLAGS flags) {
  3266. return This->lpVtbl->SetFlags(This,flags);
  3267. }
  3268. static FORCEINLINE HRESULT IPersistSerializedPropStorage_SetPropertyStorage(IPersistSerializedPropStorage* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
  3269. return This->lpVtbl->SetPropertyStorage(This,psps,cb);
  3270. }
  3271. static FORCEINLINE HRESULT IPersistSerializedPropStorage_GetPropertyStorage(IPersistSerializedPropStorage* This,SERIALIZEDPROPSTORAGE **ppsps,DWORD *pcb) {
  3272. return This->lpVtbl->GetPropertyStorage(This,ppsps,pcb);
  3273. }
  3274. #endif
  3275. #endif
  3276. #endif
  3277. #endif /* __IPersistSerializedPropStorage_INTERFACE_DEFINED__ */
  3278. /*****************************************************************************
  3279. * IPersistSerializedPropStorage2 interface
  3280. */
  3281. #ifndef __IPersistSerializedPropStorage2_INTERFACE_DEFINED__
  3282. #define __IPersistSerializedPropStorage2_INTERFACE_DEFINED__
  3283. DEFINE_GUID(IID_IPersistSerializedPropStorage2, 0x77effa68, 0x4f98, 0x4366, 0xba,0x72, 0x57,0x3b,0x3d,0x88,0x05,0x71);
  3284. #if defined(__cplusplus) && !defined(CINTERFACE)
  3285. MIDL_INTERFACE("77effa68-4f98-4366-ba72-573b3d880571")
  3286. IPersistSerializedPropStorage2 : public IPersistSerializedPropStorage
  3287. {
  3288. virtual HRESULT STDMETHODCALLTYPE GetPropertyStorageSize(
  3289. DWORD *pcb) = 0;
  3290. virtual HRESULT STDMETHODCALLTYPE GetPropertyStorageBuffer(
  3291. SERIALIZEDPROPSTORAGE *psps,
  3292. DWORD cb,
  3293. DWORD *pcbWritten) = 0;
  3294. };
  3295. #ifdef __CRT_UUID_DECL
  3296. __CRT_UUID_DECL(IPersistSerializedPropStorage2, 0x77effa68, 0x4f98, 0x4366, 0xba,0x72, 0x57,0x3b,0x3d,0x88,0x05,0x71)
  3297. #endif
  3298. #else
  3299. typedef struct IPersistSerializedPropStorage2Vtbl {
  3300. BEGIN_INTERFACE
  3301. /*** IUnknown methods ***/
  3302. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3303. IPersistSerializedPropStorage2 *This,
  3304. REFIID riid,
  3305. void **ppvObject);
  3306. ULONG (STDMETHODCALLTYPE *AddRef)(
  3307. IPersistSerializedPropStorage2 *This);
  3308. ULONG (STDMETHODCALLTYPE *Release)(
  3309. IPersistSerializedPropStorage2 *This);
  3310. /*** IPersistSerializedPropStorage methods ***/
  3311. HRESULT (STDMETHODCALLTYPE *SetFlags)(
  3312. IPersistSerializedPropStorage2 *This,
  3313. PERSIST_SPROPSTORE_FLAGS flags);
  3314. HRESULT (STDMETHODCALLTYPE *SetPropertyStorage)(
  3315. IPersistSerializedPropStorage2 *This,
  3316. PCUSERIALIZEDPROPSTORAGE psps,
  3317. DWORD cb);
  3318. HRESULT (STDMETHODCALLTYPE *GetPropertyStorage)(
  3319. IPersistSerializedPropStorage2 *This,
  3320. SERIALIZEDPROPSTORAGE **ppsps,
  3321. DWORD *pcb);
  3322. /*** IPersistSerializedPropStorage2 methods ***/
  3323. HRESULT (STDMETHODCALLTYPE *GetPropertyStorageSize)(
  3324. IPersistSerializedPropStorage2 *This,
  3325. DWORD *pcb);
  3326. HRESULT (STDMETHODCALLTYPE *GetPropertyStorageBuffer)(
  3327. IPersistSerializedPropStorage2 *This,
  3328. SERIALIZEDPROPSTORAGE *psps,
  3329. DWORD cb,
  3330. DWORD *pcbWritten);
  3331. END_INTERFACE
  3332. } IPersistSerializedPropStorage2Vtbl;
  3333. interface IPersistSerializedPropStorage2 {
  3334. CONST_VTBL IPersistSerializedPropStorage2Vtbl* lpVtbl;
  3335. };
  3336. #ifdef COBJMACROS
  3337. #ifndef WIDL_C_INLINE_WRAPPERS
  3338. /*** IUnknown methods ***/
  3339. #define IPersistSerializedPropStorage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3340. #define IPersistSerializedPropStorage2_AddRef(This) (This)->lpVtbl->AddRef(This)
  3341. #define IPersistSerializedPropStorage2_Release(This) (This)->lpVtbl->Release(This)
  3342. /*** IPersistSerializedPropStorage methods ***/
  3343. #define IPersistSerializedPropStorage2_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
  3344. #define IPersistSerializedPropStorage2_SetPropertyStorage(This,psps,cb) (This)->lpVtbl->SetPropertyStorage(This,psps,cb)
  3345. #define IPersistSerializedPropStorage2_GetPropertyStorage(This,ppsps,pcb) (This)->lpVtbl->GetPropertyStorage(This,ppsps,pcb)
  3346. /*** IPersistSerializedPropStorage2 methods ***/
  3347. #define IPersistSerializedPropStorage2_GetPropertyStorageSize(This,pcb) (This)->lpVtbl->GetPropertyStorageSize(This,pcb)
  3348. #define IPersistSerializedPropStorage2_GetPropertyStorageBuffer(This,psps,cb,pcbWritten) (This)->lpVtbl->GetPropertyStorageBuffer(This,psps,cb,pcbWritten)
  3349. #else
  3350. /*** IUnknown methods ***/
  3351. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_QueryInterface(IPersistSerializedPropStorage2* This,REFIID riid,void **ppvObject) {
  3352. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3353. }
  3354. static FORCEINLINE ULONG IPersistSerializedPropStorage2_AddRef(IPersistSerializedPropStorage2* This) {
  3355. return This->lpVtbl->AddRef(This);
  3356. }
  3357. static FORCEINLINE ULONG IPersistSerializedPropStorage2_Release(IPersistSerializedPropStorage2* This) {
  3358. return This->lpVtbl->Release(This);
  3359. }
  3360. /*** IPersistSerializedPropStorage methods ***/
  3361. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetFlags(IPersistSerializedPropStorage2* This,PERSIST_SPROPSTORE_FLAGS flags) {
  3362. return This->lpVtbl->SetFlags(This,flags);
  3363. }
  3364. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_SetPropertyStorage(IPersistSerializedPropStorage2* This,PCUSERIALIZEDPROPSTORAGE psps,DWORD cb) {
  3365. return This->lpVtbl->SetPropertyStorage(This,psps,cb);
  3366. }
  3367. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorage(IPersistSerializedPropStorage2* This,SERIALIZEDPROPSTORAGE **ppsps,DWORD *pcb) {
  3368. return This->lpVtbl->GetPropertyStorage(This,ppsps,pcb);
  3369. }
  3370. /*** IPersistSerializedPropStorage2 methods ***/
  3371. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorageSize(IPersistSerializedPropStorage2* This,DWORD *pcb) {
  3372. return This->lpVtbl->GetPropertyStorageSize(This,pcb);
  3373. }
  3374. static FORCEINLINE HRESULT IPersistSerializedPropStorage2_GetPropertyStorageBuffer(IPersistSerializedPropStorage2* This,SERIALIZEDPROPSTORAGE *psps,DWORD cb,DWORD *pcbWritten) {
  3375. return This->lpVtbl->GetPropertyStorageBuffer(This,psps,cb,pcbWritten);
  3376. }
  3377. #endif
  3378. #endif
  3379. #endif
  3380. #endif /* __IPersistSerializedPropStorage2_INTERFACE_DEFINED__ */
  3381. /*****************************************************************************
  3382. * IPropertySystemChangeNotify interface
  3383. */
  3384. #ifndef __IPropertySystemChangeNotify_INTERFACE_DEFINED__
  3385. #define __IPropertySystemChangeNotify_INTERFACE_DEFINED__
  3386. DEFINE_GUID(IID_IPropertySystemChangeNotify, 0xfa955fd9, 0x38be, 0x4879, 0xa6,0xce, 0x82,0x4c,0xf5,0x2d,0x60,0x9f);
  3387. #if defined(__cplusplus) && !defined(CINTERFACE)
  3388. MIDL_INTERFACE("fa955fd9-38be-4879-a6ce-824cf52d609f")
  3389. IPropertySystemChangeNotify : public IUnknown
  3390. {
  3391. virtual HRESULT STDMETHODCALLTYPE SchemaRefreshed(
  3392. ) = 0;
  3393. };
  3394. #ifdef __CRT_UUID_DECL
  3395. __CRT_UUID_DECL(IPropertySystemChangeNotify, 0xfa955fd9, 0x38be, 0x4879, 0xa6,0xce, 0x82,0x4c,0xf5,0x2d,0x60,0x9f)
  3396. #endif
  3397. #else
  3398. typedef struct IPropertySystemChangeNotifyVtbl {
  3399. BEGIN_INTERFACE
  3400. /*** IUnknown methods ***/
  3401. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3402. IPropertySystemChangeNotify *This,
  3403. REFIID riid,
  3404. void **ppvObject);
  3405. ULONG (STDMETHODCALLTYPE *AddRef)(
  3406. IPropertySystemChangeNotify *This);
  3407. ULONG (STDMETHODCALLTYPE *Release)(
  3408. IPropertySystemChangeNotify *This);
  3409. /*** IPropertySystemChangeNotify methods ***/
  3410. HRESULT (STDMETHODCALLTYPE *SchemaRefreshed)(
  3411. IPropertySystemChangeNotify *This);
  3412. END_INTERFACE
  3413. } IPropertySystemChangeNotifyVtbl;
  3414. interface IPropertySystemChangeNotify {
  3415. CONST_VTBL IPropertySystemChangeNotifyVtbl* lpVtbl;
  3416. };
  3417. #ifdef COBJMACROS
  3418. #ifndef WIDL_C_INLINE_WRAPPERS
  3419. /*** IUnknown methods ***/
  3420. #define IPropertySystemChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3421. #define IPropertySystemChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  3422. #define IPropertySystemChangeNotify_Release(This) (This)->lpVtbl->Release(This)
  3423. /*** IPropertySystemChangeNotify methods ***/
  3424. #define IPropertySystemChangeNotify_SchemaRefreshed(This) (This)->lpVtbl->SchemaRefreshed(This)
  3425. #else
  3426. /*** IUnknown methods ***/
  3427. static FORCEINLINE HRESULT IPropertySystemChangeNotify_QueryInterface(IPropertySystemChangeNotify* This,REFIID riid,void **ppvObject) {
  3428. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3429. }
  3430. static FORCEINLINE ULONG IPropertySystemChangeNotify_AddRef(IPropertySystemChangeNotify* This) {
  3431. return This->lpVtbl->AddRef(This);
  3432. }
  3433. static FORCEINLINE ULONG IPropertySystemChangeNotify_Release(IPropertySystemChangeNotify* This) {
  3434. return This->lpVtbl->Release(This);
  3435. }
  3436. /*** IPropertySystemChangeNotify methods ***/
  3437. static FORCEINLINE HRESULT IPropertySystemChangeNotify_SchemaRefreshed(IPropertySystemChangeNotify* This) {
  3438. return This->lpVtbl->SchemaRefreshed(This);
  3439. }
  3440. #endif
  3441. #endif
  3442. #endif
  3443. #endif /* __IPropertySystemChangeNotify_INTERFACE_DEFINED__ */
  3444. /*****************************************************************************
  3445. * ICreateObject interface
  3446. */
  3447. #ifndef __ICreateObject_INTERFACE_DEFINED__
  3448. #define __ICreateObject_INTERFACE_DEFINED__
  3449. DEFINE_GUID(IID_ICreateObject, 0x75121952, 0xe0d0, 0x43e5, 0x93,0x80, 0x1d,0x80,0x48,0x3a,0xcf,0x72);
  3450. #if defined(__cplusplus) && !defined(CINTERFACE)
  3451. MIDL_INTERFACE("75121952-e0d0-43e5-9380-1d80483acf72")
  3452. ICreateObject : public IUnknown
  3453. {
  3454. virtual HRESULT STDMETHODCALLTYPE CreateObject(
  3455. REFCLSID clsid,
  3456. IUnknown *pUnkOuter,
  3457. REFIID riid,
  3458. void **ppv) = 0;
  3459. };
  3460. #ifdef __CRT_UUID_DECL
  3461. __CRT_UUID_DECL(ICreateObject, 0x75121952, 0xe0d0, 0x43e5, 0x93,0x80, 0x1d,0x80,0x48,0x3a,0xcf,0x72)
  3462. #endif
  3463. #else
  3464. typedef struct ICreateObjectVtbl {
  3465. BEGIN_INTERFACE
  3466. /*** IUnknown methods ***/
  3467. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  3468. ICreateObject *This,
  3469. REFIID riid,
  3470. void **ppvObject);
  3471. ULONG (STDMETHODCALLTYPE *AddRef)(
  3472. ICreateObject *This);
  3473. ULONG (STDMETHODCALLTYPE *Release)(
  3474. ICreateObject *This);
  3475. /*** ICreateObject methods ***/
  3476. HRESULT (STDMETHODCALLTYPE *CreateObject)(
  3477. ICreateObject *This,
  3478. REFCLSID clsid,
  3479. IUnknown *pUnkOuter,
  3480. REFIID riid,
  3481. void **ppv);
  3482. END_INTERFACE
  3483. } ICreateObjectVtbl;
  3484. interface ICreateObject {
  3485. CONST_VTBL ICreateObjectVtbl* lpVtbl;
  3486. };
  3487. #ifdef COBJMACROS
  3488. #ifndef WIDL_C_INLINE_WRAPPERS
  3489. /*** IUnknown methods ***/
  3490. #define ICreateObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  3491. #define ICreateObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  3492. #define ICreateObject_Release(This) (This)->lpVtbl->Release(This)
  3493. /*** ICreateObject methods ***/
  3494. #define ICreateObject_CreateObject(This,clsid,pUnkOuter,riid,ppv) (This)->lpVtbl->CreateObject(This,clsid,pUnkOuter,riid,ppv)
  3495. #else
  3496. /*** IUnknown methods ***/
  3497. static FORCEINLINE HRESULT ICreateObject_QueryInterface(ICreateObject* This,REFIID riid,void **ppvObject) {
  3498. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  3499. }
  3500. static FORCEINLINE ULONG ICreateObject_AddRef(ICreateObject* This) {
  3501. return This->lpVtbl->AddRef(This);
  3502. }
  3503. static FORCEINLINE ULONG ICreateObject_Release(ICreateObject* This) {
  3504. return This->lpVtbl->Release(This);
  3505. }
  3506. /*** ICreateObject methods ***/
  3507. static FORCEINLINE HRESULT ICreateObject_CreateObject(ICreateObject* This,REFCLSID clsid,IUnknown *pUnkOuter,REFIID riid,void **ppv) {
  3508. return This->lpVtbl->CreateObject(This,clsid,pUnkOuter,riid,ppv);
  3509. }
  3510. #endif
  3511. #endif
  3512. #endif
  3513. #endif /* __ICreateObject_INTERFACE_DEFINED__ */
  3514. #define PKEY_PIDSTR_MAX 10
  3515. #define GUIDSTRING_MAX (39)
  3516. #define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)
  3517. PSSTDAPI PSCoerceToCanonicalValue(REFPROPERTYKEY key, PROPVARIANT *ppropvar);
  3518. PSSTDAPI PSCreateAdapterFromPropertyStore(IPropertyStore *pps, REFIID riid, void **ppv);
  3519. PSSTDAPI PSCreateDelayedMultiplexPropertyStore(GETPROPERTYSTOREFLAGS flags, IDelayedPropertyStoreFactory *pdpsf, const DWORD *rgStoreIds, DWORD cStores, REFIID riid, void **ppv);
  3520. PSSTDAPI PSCreateMemoryPropertyStore(REFIID riid, void **ppv);
  3521. PSSTDAPI PSCreateMultiplexPropertyStore(IUnknown **prgpunkStores, DWORD cStores, REFIID riid, void **ppv);
  3522. PSSTDAPI PSCreatePropertyChangeArray(const PROPERTYKEY *rgpropkey, const PKA_FLAGS *rgflags, const PROPVARIANT *rgpropvar, UINT cChanges, REFIID riid, void **ppv);
  3523. PSSTDAPI PSCreatePropertyStoreFromObject(IUnknown *punk, DWORD grfMode, REFIID riid, void **ppv);
  3524. PSSTDAPI PSCreatePropertyStoreFromPropertySetStorage(IPropertySetStorage *ppss, DWORD grfMode, REFIID riid, void **ppv);
  3525. PSSTDAPI PSCreateSimplePropertyChange(PKA_FLAGS flags, REFPROPERTYKEY key, REFPROPVARIANT propvar, REFIID riid, void **ppv);
  3526. PSSTDAPI PSEnumeratePropertyDescriptions(PROPDESC_ENUMFILTER filterOn, REFIID riid, void **ppv);
  3527. PSSTDAPI PSFormatForDisplay(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdfFlags, LPWSTR pwszText, DWORD cchText);
  3528. PSSTDAPI PSFormatForDisplayAlloc(REFPROPERTYKEY key, REFPROPVARIANT propvar, PROPDESC_FORMAT_FLAGS pdff, PWSTR *ppszDisplay);
  3529. PSSTDAPI PSFormatPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPDESC_FORMAT_FLAGS pdff, LPWSTR *ppszDisplay);
  3530. PSSTDAPI PSGetImageReferenceForValue(REFPROPERTYKEY propkey, REFPROPVARIANT propvar, PWSTR *ppszImageRes);
  3531. PSSTDAPI PSGetItemPropertyHandler(IUnknown *punkItem, BOOL fReadWrite, REFIID riid, void **ppv);
  3532. PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(IUnknown *punkItem, BOOL fReadWrite, IUnknown *punkCreateObject, REFIID riid, void **ppv);
  3533. PSSTDAPI PSGetNamedPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, LPCWSTR pszName, PROPVARIANT *ppropvar);
  3534. PSSTDAPI PSGetNameFromPropertyKey(REFPROPERTYKEY propkey, PWSTR *ppszCanonicalName);
  3535. PSSTDAPI PSGetPropertyDescription(REFPROPERTYKEY propkey, REFIID riid, void **ppv);
  3536. PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, REFIID riid, void **ppv);
  3537. PSSTDAPI PSGetPropertyDescriptionListFromString(LPCWSTR pszPropList, REFIID riid, void **ppv);
  3538. PSSTDAPI PSGetPropertyFromPropertyStorage(PCUSERIALIZEDPROPSTORAGE psps, DWORD cb, REFPROPERTYKEY rpkey, PROPVARIANT *ppropvar);
  3539. PSSTDAPI PSGetPropertyKeyFromName(PCWSTR pszName, PROPERTYKEY *ppropkey);
  3540. PSSTDAPI PSGetPropertySystem(REFIID riid, void **ppv);
  3541. PSSTDAPI PSGetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, PROPVARIANT *ppropvar);
  3542. PSSTDAPI PSLookupPropertyHandlerCLSID(PCWSTR pszFilePath, CLSID *pclsid);
  3543. PSSTDAPI PSPropertyBag_Delete(IPropertyBag *propBag, LPCWSTR propName);
  3544. PSSTDAPI PSPropertyBag_ReadBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL *value);
  3545. PSSTDAPI PSPropertyBag_ReadBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR *value);
  3546. PSSTDAPI PSPropertyBag_ReadDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD *value);
  3547. PSSTDAPI PSPropertyBag_ReadGUID(IPropertyBag *propBag, LPCWSTR propName, GUID *value);
  3548. PSSTDAPI PSPropertyBag_ReadInt(IPropertyBag *propBag, LPCWSTR propName, INT *value);
  3549. PSSTDAPI PSPropertyBag_ReadLONG(IPropertyBag *propBag, LPCWSTR propName, LONG *value);
  3550. PSSTDAPI PSPropertyBag_ReadPOINTL(IPropertyBag *propBag, LPCWSTR propName, POINTL *value);
  3551. PSSTDAPI PSPropertyBag_ReadPOINTS(IPropertyBag *propBag, LPCWSTR propName, POINTS *value);
  3552. PSSTDAPI PSPropertyBag_ReadPropertyKey(IPropertyBag *propBag, LPCWSTR propName, PROPERTYKEY *value);
  3553. PSSTDAPI PSPropertyBag_ReadRECTL(IPropertyBag *propBag, LPCWSTR propName, RECTL *value);
  3554. PSSTDAPI PSPropertyBag_ReadSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT *value);
  3555. PSSTDAPI PSPropertyBag_ReadStr(IPropertyBag *propBag, LPCWSTR propName, LPWSTR value, int characterCount);
  3556. PSSTDAPI PSPropertyBag_ReadStrAlloc(IPropertyBag *propBag, LPCWSTR propName, PWSTR *value);
  3557. PSSTDAPI PSPropertyBag_ReadStream(IPropertyBag *propBag, LPCWSTR propName, IStream **value);
  3558. PSSTDAPI PSPropertyBag_ReadType(IPropertyBag *propBag, LPCWSTR propName, VARIANT *var, VARTYPE type);
  3559. PSSTDAPI PSPropertyBag_ReadULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG *value);
  3560. PSSTDAPI PSPropertyBag_ReadUnknown(IPropertyBag *propBag, LPCWSTR propName, REFIID riid, void **ppv);
  3561. PSSTDAPI PSPropertyBag_WriteBOOL(IPropertyBag *propBag, LPCWSTR propName, BOOL value);
  3562. PSSTDAPI PSPropertyBag_WriteBSTR(IPropertyBag *propBag, LPCWSTR propName, BSTR value);
  3563. PSSTDAPI PSPropertyBag_WriteDWORD(IPropertyBag *propBag, LPCWSTR propName, DWORD value);
  3564. PSSTDAPI PSPropertyBag_WriteGUID(IPropertyBag *propBag, LPCWSTR propName, const GUID *value);
  3565. PSSTDAPI PSPropertyBag_WriteInt(IPropertyBag *propBag, LPCWSTR propName, INT value);
  3566. PSSTDAPI PSPropertyBag_WriteLONG(IPropertyBag *propBag, LPCWSTR propName, LONG value);
  3567. PSSTDAPI PSPropertyBag_WritePOINTL(IPropertyBag *propBag, LPCWSTR propName, const POINTL *value);
  3568. PSSTDAPI PSPropertyBag_WritePOINTS(IPropertyBag *propBag, LPCWSTR propName, const POINTS *value);
  3569. PSSTDAPI PSPropertyBag_WritePropertyKey(IPropertyBag *propBag, LPCWSTR propName, REFPROPERTYKEY value);
  3570. PSSTDAPI PSPropertyBag_WriteRECTL(IPropertyBag *propBag, LPCWSTR propName, const RECTL *value);
  3571. PSSTDAPI PSPropertyBag_WriteSHORT(IPropertyBag *propBag, LPCWSTR propName, SHORT value);
  3572. PSSTDAPI PSPropertyBag_WriteStr(IPropertyBag *propBag, LPCWSTR propName, LPCWSTR value);
  3573. PSSTDAPI PSPropertyBag_WriteStream(IPropertyBag *propBag, LPCWSTR propName, IStream *value);
  3574. PSSTDAPI PSPropertyBag_WriteULONGLONG(IPropertyBag *propBag, LPCWSTR propName, ULONGLONG value);
  3575. PSSTDAPI PSPropertyBag_WriteUnknown(IPropertyBag *propBag, LPCWSTR propName, IUnknown *punk);
  3576. PSSTDAPI PSPropertyKeyFromString(LPCWSTR pszString, PROPERTYKEY *pkey);
  3577. PSSTDAPI PSRefreshPropertySchema(void);
  3578. PSSTDAPI PSRegisterPropertySchema(PCWSTR pszPath);
  3579. PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFPROPVARIANT propvar);
  3580. PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);
  3581. PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);
  3582. #ifndef __PropSysObjects_LIBRARY_DEFINED__
  3583. #define __PropSysObjects_LIBRARY_DEFINED__
  3584. DEFINE_GUID(LIBID_PropSysObjects, 0x2cda3294, 0x6c4f, 0x4020, 0xb1,0x61, 0x27,0xc5,0x30,0xc8,0x1f,0xa6);
  3585. /*****************************************************************************
  3586. * InMemoryPropertyStore coclass
  3587. */
  3588. DEFINE_GUID(CLSID_InMemoryPropertyStore, 0x9a02e012, 0x6303, 0x4e1e, 0xb9,0xa1, 0x63,0x0f,0x80,0x25,0x92,0xc5);
  3589. #ifdef __cplusplus
  3590. class DECLSPEC_UUID("9a02e012-6303-4e1e-b9a1-630f802592c5") InMemoryPropertyStore;
  3591. #ifdef __CRT_UUID_DECL
  3592. __CRT_UUID_DECL(InMemoryPropertyStore, 0x9a02e012, 0x6303, 0x4e1e, 0xb9,0xa1, 0x63,0x0f,0x80,0x25,0x92,0xc5)
  3593. #endif
  3594. #endif
  3595. /*****************************************************************************
  3596. * PropertySystem coclass
  3597. */
  3598. DEFINE_GUID(CLSID_PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79,0x04,0x79,0x8f,0x4b);
  3599. #ifdef __cplusplus
  3600. class DECLSPEC_UUID("b8967f85-58ae-4f46-9fb2-5d7904798f4b") PropertySystem;
  3601. #ifdef __CRT_UUID_DECL
  3602. __CRT_UUID_DECL(PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79,0x04,0x79,0x8f,0x4b)
  3603. #endif
  3604. #endif
  3605. #endif /* __PropSysObjects_LIBRARY_DEFINED__ */
  3606. #endif
  3607. /* Begin additional prototypes for all interfaces */
  3608. ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
  3609. unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
  3610. unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  3611. void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
  3612. ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *);
  3613. unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *);
  3614. unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
  3615. void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *);
  3616. /* End additional prototypes */
  3617. #ifdef __cplusplus
  3618. }
  3619. #endif
  3620. #endif /* __propsys_h__ */