Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpropsys.idl
Go to the documentation of this file.
00001 /* 00002 * system property interfaces 00003 * 00004 * Copyright 2009 Maarten Lankhorst 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 * 00020 */ 00021 00022 00023 import "objidl.idl"; 00024 import "oleidl.idl"; 00025 import "ocidl.idl"; 00026 import "shtypes.idl"; 00027 import "structuredquerycondition.idl"; 00028 00029 cpp_quote("#ifndef PSSTDAPI") 00030 cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE") 00031 cpp_quote("#endif") 00032 00033 cpp_quote("#if 0") 00034 typedef PROPERTYKEY *REFPROPERTYKEY; 00035 cpp_quote("#endif") 00036 cpp_quote("#include <propkeydef.h>") 00037 00038 [ 00039 uuid(b7d14566-0509-4cce-a71f-0a554233bd9b), 00040 object, 00041 pointer_default(unique) 00042 ] 00043 interface IInitializeWithFile : IUnknown 00044 { 00045 HRESULT Initialize( 00046 [in,string] LPCWSTR pszFilePath, 00047 [in] DWORD grfMode 00048 ); 00049 } 00050 00051 [ 00052 uuid(b824b49d-22ac-4161-ac8a-9916e8fa3f7f), 00053 object, 00054 pointer_default(unique) 00055 ] 00056 interface IInitializeWithStream : IUnknown 00057 { 00058 [local] HRESULT Initialize( 00059 [in] IStream *pstream, 00060 [in] DWORD grfMode 00061 ); 00062 } 00063 00064 [ 00065 uuid(886d8eeb-8cf2-4446-8d02-cdba1dbdcf99), 00066 object, 00067 pointer_default(unique) 00068 ] 00069 interface IPropertyStore : IUnknown 00070 { 00071 HRESULT GetCount( 00072 [out] DWORD *cProps 00073 ); 00074 HRESULT GetAt( 00075 [in] DWORD iProp, 00076 [out] PROPERTYKEY *pkey 00077 ); 00078 HRESULT GetValue( 00079 [in] REFPROPERTYKEY key, 00080 [out] PROPVARIANT *pv 00081 ); 00082 HRESULT SetValue( 00083 [in] REFPROPERTYKEY key, 00084 [in] REFPROPVARIANT propvar 00085 ); 00086 HRESULT Commit(void); 00087 } 00088 00089 typedef IPropertyStore *LPPROPERTYSTORE; 00090 00091 [ 00092 uuid(71604b0f-97b0-4764-8577-2f13e98a1422), 00093 object, 00094 pointer_default(unique) 00095 ] 00096 interface INamedPropertyStore : IUnknown 00097 { 00098 HRESULT GetNamedValue( 00099 [in,string] LPCWSTR pszName, 00100 [out] PROPVARIANT *ppropvar 00101 ); 00102 HRESULT SetNamedValue( 00103 [in,string] LPCWSTR pszName, 00104 [in] REFPROPVARIANT propvar 00105 ); 00106 HRESULT GetNameCount( 00107 [out] DWORD *pdwCount 00108 ); 00109 HRESULT GetNameAt( 00110 [in] DWORD iProp, 00111 [out] BSTR *pbstrName 00112 ); 00113 } 00114 00115 typedef [v1_enum] enum GETPROPERTYSTOREFLAGS 00116 { 00117 GPS_DEFAULT = 0x00, 00118 GPS_HANDLERPROPERTIESONLY = 0x01, 00119 GPS_READWRITE = 0x02, 00120 GPS_TEMPORARY = 0x04, 00121 GPS_FASTPROPERTIESONLY = 0x08, 00122 GPS_OPENSLOWITEM = 0x10, 00123 GPS_DELAYCREATION = 0x20, 00124 GPS_BESTEFFORT = 0x40, 00125 GPS_NO_OPLOCK = 0x80, 00126 GPS_MASK_VALID = 0xff 00127 } GETPROPERTYSTOREFLAGS; 00128 00129 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)") 00130 00131 [ 00132 uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23), 00133 object 00134 ] 00135 interface IObjectWithPropertyKey : IUnknown 00136 { 00137 HRESULT SetPropertyKey( 00138 [in] REFPROPERTYKEY key 00139 ); 00140 HRESULT GetPropertyKey( 00141 [out] PROPERTYKEY *key 00142 ); 00143 } 00144 00145 typedef [v1_enum] enum PKA_FLAGS 00146 { 00147 PKA_SET, 00148 PKA_APPEND, 00149 PKA_DELETE 00150 } PKA_FLAGS; 00151 00152 [ 00153 uuid(f917bc8a-1bba-4478-a245-1bde03eb9431), 00154 object, 00155 pointer_default(unique) 00156 ] 00157 interface IPropertyChange : IObjectWithPropertyKey 00158 { 00159 HRESULT ApplyToPropVariant([in] REFPROPVARIANT propvarin, [out] PROPVARIANT *propvarout); 00160 } 00161 00162 [ 00163 uuid(380f5cad-1b5e-42f2-805d-637fd392d31e), 00164 object, 00165 pointer_default(unique) 00166 ] 00167 interface IPropertyChangeArray : IUnknown 00168 { 00169 HRESULT GetCount( 00170 [out] UINT *pcOperations 00171 ); 00172 HRESULT GetAt( 00173 [in] UINT iIndex, 00174 [in] REFIID riid, 00175 [out, iid_is(riid)] void **ppv 00176 ); 00177 HRESULT InsertAt( 00178 [in] UINT iIndex, 00179 [in] IPropertyChange *ppropChange 00180 ); 00181 HRESULT Append( 00182 [in] IPropertyChange *ppropChange 00183 ); 00184 HRESULT AppendOrReplace( 00185 [in] IPropertyChange *ppropChange 00186 ); 00187 HRESULT RemoveAt( 00188 [in] UINT iIndex 00189 ); 00190 HRESULT IsKeyInArray( 00191 [in] REFPROPERTYKEY key 00192 ); 00193 } 00194 00195 [ 00196 uuid(c8e2d566-186e-4d49-bf41-6909ead56acc), 00197 object, 00198 pointer_default(unique) 00199 ] 00200 interface IPropertyStoreCapabilities : IUnknown 00201 { 00202 HRESULT IsPropertyWritable( 00203 [in] REFPROPERTYKEY key 00204 ); 00205 } 00206 00207 [ 00208 uuid(3017056d-9a91-4e90-937d-746c72abbf4f), 00209 object, 00210 pointer_default(unique) 00211 ] 00212 interface IPropertyStoreCache : IPropertyStore 00213 { 00214 typedef [v1_enum] enum PSC_STATE 00215 { 00216 PSC_NORMAL = 0, 00217 PSC_NOTINSOURCE, 00218 PSC_DIRTY, 00219 PSC_READONLY 00220 } PSC_STATE; 00221 00222 HRESULT GetState( 00223 [in] REFPROPERTYKEY key, 00224 [out] PSC_STATE *pstate 00225 ); 00226 HRESULT GetValueAndState( 00227 [in] REFPROPERTYKEY key, 00228 [out] PROPVARIANT *ppropvar, 00229 [out] PSC_STATE *pstate 00230 ); 00231 HRESULT SetState( 00232 [in] REFPROPERTYKEY key, 00233 [in] PSC_STATE pstate 00234 ); 00235 HRESULT SetValueAndState( 00236 [in] REFPROPERTYKEY key, 00237 [in, unique] const PROPVARIANT *ppropvar, 00238 [in] PSC_STATE state 00239 ); 00240 } 00241 00242 [ 00243 uuid(11e1fbf9-2d56-4a6b-8db3-7cd193a471f2), 00244 object, 00245 pointer_default(unique) 00246 ] 00247 interface IPropertyEnumType : IUnknown 00248 { 00249 typedef [v1_enum] enum PROPENUMTYPE 00250 { 00251 PET_DISCRETEVALUE = 0, 00252 PET_RANGEDVALUE, 00253 PET_DEFAULTVALUE, 00254 PET_ENDRANGE 00255 } PROPENUMTYPE; 00256 00257 HRESULT GetEnumType( 00258 [out] PROPENUMTYPE *penumtype 00259 ); 00260 HRESULT GetValue( 00261 [out] PROPVARIANT *ppropvar 00262 ); 00263 HRESULT GetRangeMinValue( 00264 [out] PROPVARIANT *ppropvar 00265 ); 00266 HRESULT GetRangeSetValue( 00267 [out] PROPVARIANT *ppropvar 00268 ); 00269 HRESULT GetDisplayText( 00270 [out] LPWSTR *ppszDisplay 00271 ); 00272 } 00273 00274 [ 00275 uuid(9b6e051c-5ddd-4321-9070-fe2acb55e974), 00276 object, 00277 pointer_default(unique) 00278 ] 00279 interface IPropertyEnumType2 : IPropertyEnumType 00280 { 00281 HRESULT GetImageReference( 00282 [out] LPWSTR *ppszImageRes 00283 ); 00284 } 00285 00286 [ 00287 uuid(a99400f4-3d84-4557-94ba-1242fb2cc9a6), 00288 object, 00289 pointer_default(unique) 00290 ] 00291 interface IPropertyEnumTypeList : IUnknown 00292 { 00293 HRESULT GetCount( 00294 [out] UINT *pctypes 00295 ); 00296 HRESULT GetAt( 00297 [in] UINT itype, 00298 [in] REFIID riid, 00299 [out, iid_is(riid)] void **ppv 00300 ); 00301 HRESULT GetConditionAt( 00302 [in] UINT nIndex, 00303 [in] REFIID riid, 00304 [out, iid_is(riid)] void **ppv 00305 ); 00306 HRESULT FindMatchingIndex( 00307 [in] REFPROPVARIANT propvarCmp, 00308 [out] UINT *pnIndex 00309 ); 00310 } 00311 00312 [ 00313 uuid(6f79d558-3e96-4549-a1d1-7d75d2288814), 00314 object, 00315 pointer_default(unique) 00316 ] 00317 interface IPropertyDescription : IUnknown 00318 { 00319 typedef [v1_enum] enum PROPDESC_TYPE_FLAGS 00320 { 00321 PDTF_DEFAULT = 0, 00322 PDTF_MULTIPLEVALUES = 0x001, 00323 PDTF_ISINNATE = 0x002, 00324 PDTF_ISGROUP = 0x004, 00325 PDTF_CANGROUPBY = 0x008, 00326 PDTF_CANSTACKBY = 0x010, 00327 PDTF_ISTREEPROPERTY = 0x020, 00328 PDTF_INCLUDEINFULLTEXTQUERY = 0x040, 00329 PDTF_ISVIEWABLE = 0x080, 00330 PDTF_ISQUERYABLE = 0x100, 00331 PDTF_CANBEPURGED = 0x200, 00332 PDTF_SEARCHRAWVALUE = 0x400, 00333 PDTF_ISSYSTEMPROPERTY = 0x80000000, 00334 PDTF_MASK_ALL = 0x800007ff 00335 } PROPDESC_TYPE_FLAGS; 00336 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)") 00337 00338 typedef [v1_enum] enum PROPDESC_VIEW_FLAGS 00339 { 00340 PDVF_DEFAULT = 0x0000, 00341 PDVF_CENTERALIGN = 0x0001, 00342 PDVF_RIGHTALIGN = 0x0002, 00343 PDVF_BEGINNEWGROUP = 0x0004, 00344 PDVF_FILLAREA = 0x0008, 00345 PDVF_SORTDESCENDING = 0x0010, 00346 PDVF_SHOWONLYIFPRESENT = 0x0020, 00347 PDVF_SHOWBYDEFAULT = 0x0040, 00348 PDVF_SHOWINPRIMARYLIST = 0x0080, 00349 PDVF_SHOWINSECONDARYLIST = 0x0100, 00350 PDVF_HIDELABEL = 0x0200, 00351 PDVF_HIDDEN = 0x0800, 00352 PDVF_CANWRAP = 0x1000, 00353 PDVF_MASK_ALL = 0x1bff 00354 } PROPDESC_VIEW_FLAGS; 00355 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)") 00356 00357 typedef [v1_enum] enum PROPDESC_DISPLAYTYPE 00358 { 00359 PDDT_STRING = 0, 00360 PDDT_NUMBER, 00361 PDDT_BOOLEAN, 00362 PDDT_DATETIME, 00363 PDDT_ENUMERATED 00364 } PROPDESC_DISPLAYTYPE; 00365 00366 typedef [v1_enum] enum PROPDESC_GROUPING_RANGE 00367 { 00368 PDGR_DISCRETE = 0, 00369 PDGR_ALPHANUMERIC, 00370 PDGR_SIZE, 00371 PDGR_DYNAMIC, 00372 PDGR_DATE, 00373 PDGR_PERCENT, 00374 PDGR_ENUMERATED 00375 } PROPDESC_GROUPING_RANGE; 00376 00377 typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS 00378 { 00379 PDFF_DEFAULT = 0x0000, 00380 PDFF_PREFIXNAME = 0x0001, 00381 PDFF_FILENAME = 0x0002, 00382 PDFF_ALWAYSKB = 0x0004, 00383 PDFF_RESERVED_RIGHTTOLEFT = 0x0008, 00384 PDFF_SHORTTIME = 0x0010, 00385 PDFF_LONGTIME = 0x0020, 00386 PDFF_HIDETIME = 0x0040, 00387 PDFF_SHORTDATE = 0x0080, 00388 PDFF_LONGDATE = 0x0100, 00389 PDFF_HIDEDATE = 0x0200, 00390 PDFF_RELATIVEDATE = 0x0400, 00391 PDFF_USEEDITINVITATION = 0x0800, 00392 PDFF_READONLY = 0x1000, 00393 PDFF_NOAUTOREADINGORDER = 0x2000 00394 } PROPDESC_FORMAT_FLAGS; 00395 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)") 00396 00397 typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION 00398 { 00399 PDSD_GENERAL = 0, 00400 PDSD_A_Z, 00401 PDSD_LOWEST_HIGHEST, 00402 PDSD_SMALLEST_BIGGEST, 00403 PDSD_OLDEST_NEWEST 00404 } PROPDESC_SORTDESCRIPTION; 00405 00406 typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE 00407 { 00408 PDRDT_GENERAL = 0, 00409 PDRDT_DATE, 00410 PDRDT_SIZE, 00411 PDRDT_COUNT, 00412 PDRDT_REVISION, 00413 PDRDT_LENGTH, 00414 PDRDT_DURATION, 00415 PDRDT_SPEED, 00416 PDRDT_RATE, 00417 PDRDT_RATING, 00418 PDRDT_PRIORITY 00419 } PROPDESC_RELATIVEDESCRIPTION_TYPE; 00420 00421 typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE 00422 { 00423 PDAT_DEFAULT = 0, 00424 PDAT_FIRST, 00425 PDAT_SUM, 00426 PDAT_AVERAGE, 00427 PDAT_DATERANGE, 00428 PDAT_UNION, 00429 PDAT_MAX, 00430 PDAT_MIN 00431 } PROPDESC_AGGREGATION_TYPE; 00432 00433 typedef [v1_enum] enum PROPDESC_CONDITION_TYPE 00434 { 00435 PDCOT_NONE = 0, 00436 PDCOT_STRING, 00437 PDCOT_SIZE, 00438 PDCOT_DATETIME, 00439 PDCOT_BOOLEAN, 00440 PDCOT_NUMBER 00441 } PROPDESC_CONDITION_TYPE; 00442 00443 HRESULT GetPropertyKey( 00444 [out] PROPERTYKEY *pkey 00445 ); 00446 HRESULT GetCanonicalName( 00447 [out, string] LPWSTR *ppszName 00448 ); 00449 HRESULT GetPropertyType( 00450 [out] VARTYPE *pvartype 00451 ); 00452 HRESULT GetDisplayName( 00453 [out, string] LPWSTR *ppszName 00454 ); 00455 HRESULT GetEditInvitation( 00456 [out, string] LPWSTR *ppszName 00457 ); 00458 HRESULT GetTypeFlags( 00459 [in] PROPDESC_TYPE_FLAGS mask, 00460 [out] PROPDESC_TYPE_FLAGS *ppdtFlags 00461 ); 00462 HRESULT GetViewFlags( 00463 [out] PROPDESC_VIEW_FLAGS *ppdvFlags 00464 ); 00465 HRESULT GetDefaultColumnWidth( 00466 [out] UINT *pcxChars 00467 ); 00468 HRESULT GetDisplayType( 00469 [out] PROPDESC_DISPLAYTYPE *pdisplaytype 00470 ); 00471 HRESULT GetColumnState( 00472 [out] SHCOLSTATEF *pcsFlags 00473 ); 00474 HRESULT GetGroupingRange( 00475 [out] PROPDESC_GROUPING_RANGE *psd 00476 ); 00477 HRESULT GetRelativeDescriptionType( 00478 [out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt 00479 ); 00480 HRESULT GetRelativeDescription( 00481 [in] REFPROPVARIANT propvar1, 00482 [in] REFPROPVARIANT propvar2, 00483 [out,string] LPWSTR *ppszDesc1, 00484 [out,string] LPWSTR *ppszDesc2 00485 ); 00486 HRESULT GetSortDescription( 00487 [out] PROPDESC_SORTDESCRIPTION *psd 00488 ); 00489 HRESULT GetSortDescriptionLabel( 00490 [in] BOOL fDescending, 00491 [out,string] LPWSTR *ppszDescription 00492 ); 00493 HRESULT GetAggregationType( 00494 [out] PROPDESC_AGGREGATION_TYPE *paggtype 00495 ); 00496 HRESULT GetConditionType( 00497 [out] PROPDESC_CONDITION_TYPE *pcontype, 00498 [out] CONDITION_OPERATION *popDefault 00499 ); 00500 HRESULT GetEnumTypeList( 00501 [in] REFIID riid, 00502 [out,iid_is(riid)] void **ppv 00503 ); 00504 [local] HRESULT CoerceToCanonicalValue( 00505 [in,out] PROPVARIANT *propvar 00506 ); 00507 [call_as(CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue( 00508 [in] REFPROPVARIANT propvar, 00509 [out] PROPVARIANT *ppropvar 00510 ); 00511 HRESULT FormatForDisplay( 00512 [in] REFPROPVARIANT propvar, 00513 [in] PROPDESC_FORMAT_FLAGS flags, 00514 [out,string] LPWSTR *ppszDisplay 00515 ); 00516 HRESULT IsValueCanonical( 00517 [in] REFPROPVARIANT propvar 00518 ); 00519 } 00520 00521 [ 00522 uuid(57d2eded-5062-400e-b107-5dae79fe57a6), 00523 object, 00524 pointer_default(unique) 00525 ] 00526 interface IPropertyDescription2 : IPropertyDescription 00527 { 00528 HRESULT GetImageReferenceForValue( 00529 [in] REFPROPVARIANT propvar, 00530 [out,string] LPWSTR *ppszImageRes 00531 ); 00532 } 00533 00534 [ 00535 uuid(f67104fc-2af9-46fd-b32d-243c1404f3d1), 00536 object, 00537 pointer_default(unique) 00538 ] 00539 interface IPropertyDescriptionAliasInfo : IPropertyDescription 00540 { 00541 HRESULT GetSortByAlias( 00542 [in] REFIID riid, 00543 [out,iid_is(riid)] void **ppv 00544 ); 00545 HRESULT GetAdditionalSortByAliases( 00546 [in] REFIID riid, 00547 [out,iid_is(riid)] void **ppv 00548 ); 00549 } 00550 00551 [ 00552 uuid(078f91bd-29a2-440f-924e-46a291524520), 00553 object, 00554 pointer_default(unique) 00555 ] 00556 interface IPropertyDescriptionSearchInfo : IPropertyDescription 00557 { 00558 typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS 00559 { 00560 PDSIF_DEFAULT = 0x0, 00561 PDSIF_ININVERTEDINDEX = 0x1, 00562 PDSIF_ISCOLUMN = 0x2, 00563 PDSIF_ISCOLUMNSPARSE = 0x4, 00564 PDSIF_ALWAYSINCLUDE = 0x8, 00565 } PROPDESC_SEARCHINFO_FLAGS; 00566 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)") 00567 00568 typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE 00569 { 00570 PDCIT_NONE = 0, 00571 PDCIT_ONDISK, 00572 PDCIT_INMEMORY, 00573 PDCIT_ONDEMAND, 00574 PDCIT_ONDISKALL, 00575 PDCIT_ONDISKVECTOR 00576 } PROPDESC_COLUMNINDEX_TYPE; 00577 00578 HRESULT GetSearchInfoFlags( 00579 [out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags 00580 ); 00581 HRESULT GetColumnIndexType( 00582 [out] PROPDESC_COLUMNINDEX_TYPE *ppdciType 00583 ); 00584 HRESULT GetProjectionString( 00585 [out] LPWSTR *ppszProjection 00586 ); 00587 HRESULT GetMaxSize( 00588 [out] UINT *pcbMaxSize 00589 ); 00590 } 00591 00592 [ 00593 uuid(507393f4-2a3d-4a60-b59e-d9c75716c2dd), 00594 object, 00595 pointer_default(unique) 00596 ] 00597 interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription 00598 { 00599 HRESULT GetRelatedProperty( 00600 [in] LPCWSTR ppszRelationshipName, 00601 [in] REFIID riid, 00602 [out,iid_is(riid)] void **ppv 00603 ); 00604 } 00605 00606 typedef [v1_enum] enum PROPDESC_ENUMFILTER 00607 { 00608 PDEF_ALL = 0, 00609 PDEF_SYSTEM, 00610 PDEF_NONSYSTEM, 00611 PDEF_VIEWABLE, 00612 PDEF_QUERYABLE, 00613 PDEF_INFULLTEXTQUERY, 00614 PDEF_COLUMN 00615 } PROPDESC_ENUMFILTER; 00616 00617 [ 00618 uuid(ca724e8a-c3e6-442b-88a4-6fb0db8035a3), 00619 object, 00620 pointer_default(unique) 00621 ] 00622 interface IPropertySystem : IUnknown 00623 { 00624 HRESULT GetPropertyDescription( 00625 [in] REFPROPERTYKEY propkey, 00626 [in] REFIID riid, 00627 [out,iid_is(riid)] void **ppv 00628 ); 00629 HRESULT GetPropertyDescriptionByName( 00630 [in,string] LPCWSTR pszCanonicalName, 00631 [in] REFIID riid, 00632 [out,iid_is(riid)] void **ppv 00633 ); 00634 HRESULT GetPropertyDescriptionListFromString( 00635 [in,string] LPCWSTR pszPropList, 00636 [in] REFIID riid, 00637 [out,iid_is(riid)] void **ppv 00638 ); 00639 HRESULT EnumeratePropertyDescriptions( 00640 [in] PROPDESC_ENUMFILTER filterOn, 00641 [in] REFIID riid, 00642 [out,iid_is(riid)] void **ppv 00643 ); 00644 HRESULT FormatForDisplay( 00645 [in] REFPROPERTYKEY key, 00646 [in] REFPROPVARIANT propvar, 00647 [in] PROPDESC_FORMAT_FLAGS pdff, 00648 [out,string,size_is(cchText)] LPWSTR pszText, 00649 [in] DWORD cchText 00650 ); 00651 HRESULT FormatForDisplayAlloc( 00652 [in] REFPROPERTYKEY key, 00653 [in] REFPROPVARIANT propvar, 00654 [in] PROPDESC_FORMAT_FLAGS pdff, 00655 [out,string] LPWSTR *pszText 00656 ); 00657 HRESULT RegisterPropertySchema( 00658 [in,string] LPCWSTR pszPath 00659 ); 00660 HRESULT UnregisterPropertySchema( 00661 [in,string] LPCWSTR pszPath 00662 ); 00663 HRESULT RefreshPropertySchema(void); 00664 } 00665 00666 [ 00667 uuid(1f9fc1d0-c39b-4b26-817f-011967d3440e), 00668 object, 00669 pointer_default(unique) 00670 ] 00671 interface IPropertyDescriptionList : IUnknown 00672 { 00673 HRESULT GetCount( 00674 [out] UINT *pcelem 00675 ); 00676 HRESULT GetAt( 00677 [in] UINT iElem, 00678 [in] REFIID riid, 00679 [out,iid_is(riid)] void **ppv 00680 ); 00681 } 00682 00683 [ 00684 uuid(bc110b6d-57e8-4148-a9c6-91015ab2f3a5), 00685 object, 00686 pointer_default(unique) 00687 ] 00688 interface IPropertyStoreFactory : IUnknown 00689 { 00690 HRESULT GetPropertyStore( 00691 [in] GETPROPERTYSTOREFLAGS flags, 00692 [in,unique] IUnknown *pUnkFactory, 00693 [in] REFIID riid, 00694 [out,iid_is(riid)] void **ppv 00695 ); 00696 HRESULT GetPropertyStoreForKeys( 00697 [in,unique] const PROPERTYKEY *rgKeys, 00698 [in] UINT cKeys, 00699 [in] GETPROPERTYSTOREFLAGS flags, 00700 [in] REFIID riid, 00701 [out,iid_is(riid)] void **ppv 00702 ); 00703 } 00704 00705 [ 00706 uuid(40d4577f-e237-4bdb-bd69-58f089431b6a), 00707 object, 00708 pointer_default(unique) 00709 ] 00710 interface IDelayedPropertyStoreFactory : IPropertyStoreFactory 00711 { 00712 HRESULT GetDelayedPropertyStore( 00713 [in] GETPROPERTYSTOREFLAGS flags, 00714 [in] DWORD dwStoreId, 00715 [in] REFIID riid, 00716 [out,iid_is(riid)] void **ppv 00717 ); 00718 } 00719 00720 [v1_enum] enum _PERSIST_SPROPSTORE_FLAGS 00721 { 00722 FPSPS_DEFAULT = 0, 00723 FPSPS_READONLY = 1 00724 }; 00725 typedef int PERSIST_SPROPSTORE_FLAGS; 00726 00727 typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE; 00728 00729 cpp_quote("#if 0") /* Wine doesn't have __unaligned builtin, hack */ 00730 typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE; 00731 typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE; 00732 cpp_quote("#endif") 00733 cpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;") 00734 cpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;") 00735 00736 [ 00737 uuid(e318ad57-0aa0-450f-aca5-6fab7103d917), 00738 pointer_default(unique), 00739 local 00740 ] 00741 interface IPersistSerializedPropStorage : IUnknown 00742 { 00743 HRESULT SetFlags( 00744 [in] PERSIST_SPROPSTORE_FLAGS flags 00745 ); 00746 HRESULT SetPropertyStorage( 00747 [in] PCUSERIALIZEDPROPSTORAGE psps, 00748 [in] DWORD cb 00749 ); 00750 HRESULT GetPropertyStorage( 00751 [out] SERIALIZEDPROPSTORAGE **psps, 00752 [out] DWORD *pcb 00753 ); 00754 } 00755 00756 [ 00757 uuid(77effa68-4f98-4366-ba72-573b3d880571), 00758 pointer_default(unique), 00759 local 00760 ] 00761 interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage 00762 { 00763 HRESULT GetpropertyStorageSize( 00764 [out] DWORD *pcb 00765 ); 00766 HRESULT GetPropertyStorageBuffer( 00767 [out] SERIALIZEDPROPSTORAGE *psps, 00768 [in] DWORD cb, 00769 [out] DWORD *pcbWritten 00770 ); 00771 } 00772 00773 [ 00774 uuid(fa955fd9-38be-4879-a6ce-824cf52d609f), 00775 object, 00776 pointer_default(unique) 00777 ] 00778 interface IPropertySystemChangeNotify : IUnknown 00779 { 00780 HRESULT SchemaRefreshed(void); 00781 } 00782 00783 /* Interface for CoCreateInstance? */ 00784 [ 00785 uuid(75121952-e0d0-43e5-9380-1d80483acf72), 00786 pointer_default(unique) 00787 ] 00788 interface ICreateObject : IUnknown 00789 { 00790 HRESULT CreateObject( 00791 [in] REFCLSID clsid, 00792 [in,unique] IUnknown *pUnkOuter, 00793 [in] REFIID riid, 00794 [out,iid_is(riid)] void **ppv 00795 ); 00796 } 00797 00798 cpp_quote("#define PKEY_PIDSTR_MAX 10") 00799 cpp_quote("#define GUIDSTRING_MAX 39") 00800 cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)") 00801 00802 cpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);") 00803 cpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);") 00804 cpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);") 00805 cpp_quote("HRESULT WINAPI PSRefreshPropertySchema(void);") 00806 00807 /* TODO: Add remainder of the C api here */ 00808 00809 [ 00810 uuid(2cda3294-6c4f-4020-b161-27c530c81fa6), 00811 lcid(0x0000), 00812 version(1.0) 00813 ] 00814 library PropSysObjects 00815 { 00816 [uuid(9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore 00817 { 00818 interface IPropertyStore; 00819 } 00820 [uuid(b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem 00821 { 00822 interface IPropertySystem; 00823 } 00824 } Generated on Sat May 26 2012 04:30:59 for ReactOS by
1.7.6.1
|