ReactOS  0.4.13-dev-1149-g95dd1c6
propsys.idl File Reference

Go to the source code of this file.

Classes

interface  IInitializeWithFile
 
interface  IInitializeWithStream
 
interface  IPropertyStore
 
interface  v1_enum
 
interface  v1_enum
 
interface  IPropertyChange
 
interface  IPropertyChangeArray
 
interface  IPropertyStoreCapabilities
 
interface  IPropertyStoreCache
 
interface  IPropertyEnumType
 
interface  IPropertyEnumType2
 
interface  IPropertyEnumTypeList
 
interface  IPropertyDescription
 
interface  IPropertyDescription2
 
interface  IPropertyDescriptionAliasInfo
 
interface  IPropertyDescriptionSearchInfo
 
interface  v1_enum
 
interface  IPropertySystem
 
interface  IPropertyDescriptionList
 
interface  IPropertyStoreFactory
 
interface  IDelayedPropertyStoreFactory
 
interface  IPersistSerializedPropStorage
 
interface  IPersistSerializedPropStorage2
 
interface  IPropertySystemChangeNotify
 
interface  ICreateObject
 
class  PropSysObjects::InMemoryPropertyStore
 

Modules

library  PropSysObjects
 

Typedefs

typedef v1_enum GPS_HANDLERPROPERTIESONLY = 0x01
 
typedef v1_enum GPS_READWRITE = 0x02
 
typedef v1_enum GPS_TEMPORARY = 0x04
 
typedef v1_enum GPS_FASTPROPERTIESONLY = 0x08
 
typedef v1_enum GPS_OPENSLOWITEM = 0x10
 
typedef v1_enum GPS_DELAYCREATION = 0x20
 
typedef v1_enum GPS_BESTEFFORT = 0x40
 
typedef v1_enum GPS_NO_OPLOCK = 0x80
 
typedef v1_enum GPS_MASK_VALID
 
typedef v1_enum PKA_APPEND
 
typedef v1_enum PKA_FLAGS
 
typedef v1_enum PDEF_SYSTEM
 
typedef v1_enum PDEF_NONSYSTEM
 
typedef v1_enum PDEF_VIEWABLE
 
typedef v1_enum PDEF_QUERYABLE
 
typedef v1_enum PDEF_INFULLTEXTQUERY
 
typedef v1_enum PROPDESC_ENUMFILTER
 
typedef int PERSIST_SPROPSTORE_FLAGS
 
typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE
 
typedef SERIALIZEDPROPSTORAGEPUSERIALIZEDPROPSTORAGE
 
typedef const SERIALIZEDPROPSTORAGEPCUSERIALIZEDPROPSTORAGE
 

Enumerations

enum  _PERSIST_SPROPSTORE_FLAGS { FPSPS_DEFAULT = 0, FPSPS_READONLY = 1 }
 

Functions

 DEFINE_ENUM_FLAG_OPERATORS (GETPROPERTYSTOREFLAGS)") [ uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23)
 
PKEYSTR_MAX(GUIDSTRING_MAX+1+PKEY_PIDSTR_MAX) HRESULT WINAPI PSStringFromPropertyKey (REFPROPERTYKEY, LPWSTR, UINT)
 
HRESULT WINAPI PSPropertyKeyFromString (LPCWSTR, PROPERTYKEY *)
 
HRESULT WINAPI PSGetPropertyDescription (REFPROPERTYKEY, REFIID, void **)
 
HRESULT WINAPI PSGetPropertyDescriptionListFromString (LPCWSTR, REFIID, void **)
 
HRESULT WINAPI PSRefreshPropertySchema (void)
 
HRESULT WINAPI PSRegisterPropertySchema (LPCWSTR)
 
HRESULT WINAPI PSUnregisterPropertySchema (LPCWSTR)
 
coclass PropSysObjects::InMemoryPropertyStore PropSysObjects::uuid (b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem
 

Variables

PSSTDAPI typedef PROPERTYKEY * REFPROPERTYKEY
 

Typedef Documentation

◆ GPS_BESTEFFORT

typedef v1_enum GPS_BESTEFFORT = 0x40

◆ GPS_DELAYCREATION

typedef v1_enum GPS_DELAYCREATION = 0x20

◆ GPS_FASTPROPERTIESONLY

◆ GPS_HANDLERPROPERTIESONLY

◆ GPS_MASK_VALID

Initial value:
= 0xff
} GETPROPERTYSTOREFLAGS

◆ GPS_NO_OPLOCK

typedef v1_enum GPS_NO_OPLOCK = 0x80

◆ GPS_OPENSLOWITEM

typedef v1_enum GPS_OPENSLOWITEM = 0x10

◆ GPS_READWRITE

typedef v1_enum GPS_READWRITE = 0x02

◆ GPS_TEMPORARY

typedef v1_enum GPS_TEMPORARY = 0x04

◆ PCUSERIALIZEDPROPSTORAGE

◆ PDEF_INFULLTEXTQUERY

◆ PDEF_NONSYSTEM

◆ PDEF_QUERYABLE

◆ PDEF_SYSTEM

◆ PDEF_VIEWABLE

◆ PERSIST_SPROPSTORE_FLAGS

Definition at line 725 of file propsys.idl.

◆ PKA_APPEND

◆ PKA_FLAGS

typedef v1_enum PKA_FLAGS

◆ PROPDESC_ENUMFILTER

◆ PUSERIALIZEDPROPSTORAGE

◆ SERIALIZEDPROPSTORAGE

typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE

Definition at line 727 of file propsys.idl.

Enumeration Type Documentation

◆ _PERSIST_SPROPSTORE_FLAGS

Enumerator
FPSPS_DEFAULT 
FPSPS_READONLY 

Definition at line 720 of file propsys.idl.

721 {
722  FPSPS_DEFAULT = 0,
723  FPSPS_READONLY = 1
724 };

Function Documentation

◆ DEFINE_ENUM_FLAG_OPERATORS()

DEFINE_ENUM_FLAG_OPERATORS ( GETPROPERTYSTOREFLAGS  )

◆ PSGetPropertyDescription()

HRESULT WINAPI PSGetPropertyDescription ( REFPROPERTYKEY  ,
REFIID  ,
void **   
)

Definition at line 259 of file propsys_main.c.

260 {
261  FIXME("%p, %p, %p\n", propkey, riid, ppv);
262  return E_NOTIMPL;
263 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

Referenced by propsys_GetPropertyDescription().

◆ PSGetPropertyDescriptionListFromString()

HRESULT WINAPI PSGetPropertyDescriptionListFromString ( LPCWSTR  ,
REFIID  ,
void **   
)

Definition at line 265 of file propsys_main.c.

266 {
267  FIXME("%s, %p, %p\n", debugstr_w(proplist), riid, ppv);
268  return E_NOTIMPL;
269 }
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

Referenced by propsys_GetPropertyDescriptionListFromString().

◆ PSPropertyKeyFromString()

HRESULT WINAPI PSPropertyKeyFromString ( LPCWSTR  ,
PROPERTYKEY *   
)

Definition at line 431 of file propsys_main.c.

432 {
433  BOOL has_minus = FALSE, has_comma = FALSE;
434 
435  TRACE("(%s, %p)\n", debugstr_w(pszString), pkey);
436 
437  if (!pszString || !pkey)
438  return E_POINTER;
439 
440  memset(pkey, 0, sizeof(PROPERTYKEY));
441 
442  if (!string_to_guid(pszString, &pkey->fmtid))
443  return E_INVALIDARG;
444 
445  pszString += GUIDSTRING_MAX - 1;
446 
447  if (!*pszString)
448  return E_INVALIDARG;
449 
450  /* Only the space seems to be recognized as whitespace. The comma is only
451  * recognized once and processing terminates if another comma is found. */
452  while (*pszString == ' ' || *pszString == ',')
453  {
454  if (*pszString == ',')
455  {
456  if (has_comma)
457  return S_OK;
458  else
459  has_comma = TRUE;
460  }
461  pszString++;
462  }
463 
464  if (!*pszString)
465  return E_INVALIDARG;
466 
467  /* Only two minus signs are recognized if no comma is detected. The first
468  * sign is ignored, and the second is interpreted. If a comma is detected
469  * before the minus sign, then only one minus sign counts, and property ID
470  * interpretation begins with the next character. */
471  if (has_comma)
472  {
473  if (*pszString == '-')
474  {
475  has_minus = TRUE;
476  pszString++;
477  }
478  }
479  else
480  {
481  if (*pszString == '-')
482  pszString++;
483 
484  /* Skip any intermediate spaces after the first minus sign. */
485  while (*pszString == ' ')
486  pszString++;
487 
488  if (*pszString == '-')
489  {
490  has_minus = TRUE;
491  pszString++;
492  }
493 
494  /* Skip any remaining spaces after minus sign. */
495  while (*pszString == ' ')
496  pszString++;
497  }
498 
499  /* Overflow is not checked. */
500  while (isdigitW(*pszString))
501  {
502  pkey->pid *= 10;
503  pkey->pid += (*pszString - '0');
504  pszString++;
505  }
506 
507  if (has_minus)
508  pkey->pid = ~pkey->pid + 1;
509 
510  return S_OK;
511 }
#define TRUE
Definition: types.h:120
static BOOL string_to_guid(LPCWSTR s, LPGUID id)
Definition: propsys_main.c:396
unsigned int BOOL
Definition: ntddk_ex.h:94
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
WINE_UNICODE_INLINE int isdigitW(WCHAR wc)
Definition: unicode.h:170
#define E_POINTER
Definition: winerror.h:2365
#define memset(x, y, z)
Definition: compat.h:39
_In_ DWORD _In_ DWORD _Out_writes_to_opt_ pcchString LPSTR pszString
Definition: wincrypt.h:4509

Referenced by test_PSPropertyKeyFromString().

◆ PSRefreshPropertySchema()

HRESULT WINAPI PSRefreshPropertySchema ( void  )

Definition at line 277 of file propsys_main.c.

278 {
279  FIXME("\n");
280  return S_OK;
281 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

Referenced by propsys_RefreshPropertySchema(), and test_PSRefreshPropertySchema().

◆ PSRegisterPropertySchema()

HRESULT WINAPI PSRegisterPropertySchema ( LPCWSTR  )

◆ PSStringFromPropertyKey()

PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX) HRESULT WINAPI PSStringFromPropertyKey ( REFPROPERTYKEY  ,
LPWSTR  ,
UINT   
)

Definition at line 283 of file propsys_main.c.

284 {
285  static const WCHAR guid_fmtW[] = {'{','%','0','8','X','-','%','0','4','X','-',
286  '%','0','4','X','-','%','0','2','X','%','0','2','X','-',
287  '%','0','2','X','%','0','2','X','%','0','2','X',
288  '%','0','2','X','%','0','2','X','%','0','2','X','}',0};
289  static const WCHAR pid_fmtW[] = {'%','u',0};
290 
291  WCHAR pidW[PKEY_PIDSTR_MAX + 1];
292  LPWSTR p = psz;
293  int len;
294 
295  TRACE("(%p, %p, %u)\n", pkey, psz, cch);
296 
297  if (!psz)
298  return E_POINTER;
299 
300  /* GUIDSTRING_MAX accounts for null terminator, +1 for space character. */
301  if (cch <= GUIDSTRING_MAX + 1)
303 
304  if (!pkey)
305  {
306  psz[0] = '\0';
308  }
309 
310  sprintfW(psz, guid_fmtW, pkey->fmtid.Data1, pkey->fmtid.Data2,
311  pkey->fmtid.Data3, pkey->fmtid.Data4[0], pkey->fmtid.Data4[1],
312  pkey->fmtid.Data4[2], pkey->fmtid.Data4[3], pkey->fmtid.Data4[4],
313  pkey->fmtid.Data4[5], pkey->fmtid.Data4[6], pkey->fmtid.Data4[7]);
314 
315  /* Overwrite the null terminator with the space character. */
316  p += GUIDSTRING_MAX - 1;
317  *p++ = ' ';
318  cch -= GUIDSTRING_MAX - 1 + 1;
319 
320  len = sprintfW(pidW, pid_fmtW, pkey->pid);
321 
322  if (cch >= len + 1)
323  {
324  strcpyW(p, pidW);
325  return S_OK;
326  }
327  else
328  {
329  WCHAR *ptr = pidW + len - 1;
330 
331  psz[0] = '\0';
332  *p++ = '\0';
333  cch--;
334 
335  /* Replicate a quirk of the native implementation where the contents
336  * of the property ID string are written backwards to the output
337  * buffer, skipping the rightmost digit. */
338  if (cch)
339  {
340  ptr--;
341  while (cch--)
342  *p++ = *ptr--;
343  }
344 
346  }
347 }
static PVOID ptr
Definition: dispmode.c:27
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:201
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLenum GLsizei len
Definition: glext.h:6722
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:2345
#define S_OK
Definition: intsafe.h:59
WINE_UNICODE_INLINE WCHAR * strcpyW(WCHAR *dst, const WCHAR *src)
Definition: unicode.h:219
#define sprintfW
Definition: unicode.h:58
GLfloat GLfloat p
Definition: glext.h:8902
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define E_POINTER
Definition: winerror.h:2365

Referenced by test_PSStringFromPropertyKey().

◆ PSUnregisterPropertySchema()

HRESULT WINAPI PSUnregisterPropertySchema ( LPCWSTR  )

Variable Documentation

◆ REFPROPERTYKEY

PSSTDAPI typedef PROPERTYKEY* REFPROPERTYKEY

Definition at line 30 of file propsys.idl.

Referenced by test_PSStringFromPropertyKey().