ReactOS  0.4.14-dev-114-gc8cbd56
metadataquery.c File Reference
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "objbase.h"
#include "propvarutil.h"
#include "wincodecs_private.h"
#include "wine/debug.h"
Include dependency graph for metadataquery.c:

Go to the source code of this file.

Classes

struct  QueryReader
 
struct  string_t
 

Macros

#define COBJMACROS
 
#define NONAMELESSUNION
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wincodecs)
 
static const WCHARmap_shortname_to_schema (const GUID *format, const WCHAR *name)
 
static QueryReaderimpl_from_IWICMetadataQueryReader (IWICMetadataQueryReader *iface)
 
static HRESULT WINAPI mqr_QueryInterface (IWICMetadataQueryReader *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI mqr_AddRef (IWICMetadataQueryReader *iface)
 
static ULONG WINAPI mqr_Release (IWICMetadataQueryReader *iface)
 
static HRESULT WINAPI mqr_GetContainerFormat (IWICMetadataQueryReader *iface, GUID *format)
 
static HRESULT WINAPI mqr_GetLocation (IWICMetadataQueryReader *iface, UINT len, WCHAR *location, UINT *ret_len)
 
static VARTYPE map_type (struct string_t *str)
 
static HRESULT get_token (struct string_t *elem, PROPVARIANT *id, PROPVARIANT *schema, int *idx)
 
static HRESULT find_reader_from_block (IWICMetadataBlockReader *block_reader, UINT index, GUID *guid, IWICMetadataReader **reader)
 
static HRESULT get_next_reader (IWICMetadataReader *reader, UINT index, GUID *guid, IWICMetadataReader **new_reader)
 
static HRESULT WINAPI mqr_GetMetadataByName (IWICMetadataQueryReader *iface, LPCWSTR query, PROPVARIANT *value)
 
static HRESULT WINAPI mqr_GetEnumerator (IWICMetadataQueryReader *iface, IEnumString **ppIEnumString)
 
HRESULT MetadataQueryReader_CreateInstance (IWICMetadataBlockReader *mbr, const WCHAR *root, IWICMetadataQueryReader **out)
 
HRESULT WINAPI WICMapGuidToShortName (REFGUID guid, UINT len, WCHAR *name, UINT *ret_len)
 
HRESULT WINAPI WICMapShortNameToGuid (PCWSTR name, GUID *guid)
 
HRESULT WINAPI WICMapSchemaToName (REFGUID format, LPWSTR schema, UINT len, WCHAR *name, UINT *ret_len)
 

Variables

struct {
   int   len
 
   WCHAR   str [10]
 
   VARTYPE   vt
 
str2vt []
 
static IWICMetadataQueryReaderVtbl mqr_vtbl
 
static const WCHAR bmpW [] = { 'b','m','p',0 }
 
static const WCHAR pngW [] = { 'p','n','g',0 }
 
static const WCHAR icoW [] = { 'i','c','o',0 }
 
static const WCHAR jpgW [] = { 'j','p','g',0 }
 
static const WCHAR tiffW [] = { 't','i','f','f',0 }
 
static const WCHAR gifW [] = { 'g','i','f',0 }
 
static const WCHAR wmphotoW [] = { 'w','m','p','h','o','t','o',0 }
 
static const WCHAR unknownW [] = { 'u','n','k','n','o','w','n',0 }
 
static const WCHAR ifdW [] = { 'i','f','d',0 }
 
static const WCHAR subW [] = { 's','u','b',0 }
 
static const WCHAR exifW [] = { 'e','x','i','f',0 }
 
static const WCHAR gpsW [] = { 'g','p','s',0 }
 
static const WCHAR interopW [] = { 'i','n','t','e','r','o','p',0 }
 
static const WCHAR app0W [] = { 'a','p','p','0',0 }
 
static const WCHAR app1W [] = { 'a','p','p','1',0 }
 
static const WCHAR app13W [] = { 'a','p','p','1','3',0 }
 
static const WCHAR iptcW [] = { 'i','p','t','c',0 }
 
static const WCHAR irbW [] = { 'i','r','b',0 }
 
static const WCHAR _8bimiptcW [] = { '8','b','i','m','i','p','t','c',0 }
 
static const WCHAR _8bimResInfoW [] = { '8','b','i','m','R','e','s','I','n','f','o',0 }
 
static const WCHAR _8bimiptcdigestW [] = { '8','b','i','m','i','p','t','c','d','i','g','e','s','t',0 }
 
static const WCHAR xmpW [] = { 'x','m','p',0 }
 
static const WCHAR thumbW [] = { 't','h','u','m','b',0 }
 
static const WCHAR tEXtW [] = { 't','E','X','t',0 }
 
static const WCHAR xmpstructW [] = { 'x','m','p','s','t','r','u','c','t',0 }
 
static const WCHAR xmpbagW [] = { 'x','m','p','b','a','g',0 }
 
static const WCHAR xmpseqW [] = { 'x','m','p','s','e','q',0 }
 
static const WCHAR xmpaltW [] = { 'x','m','p','a','l','t',0 }
 
static const WCHAR logscrdescW [] = { 'l','o','g','s','c','r','d','e','s','c',0 }
 
static const WCHAR imgdescW [] = { 'i','m','g','d','e','s','c',0 }
 
static const WCHAR grctlextW [] = { 'g','r','c','t','l','e','x','t',0 }
 
static const WCHAR appextW [] = { 'a','p','p','e','x','t',0 }
 
static const WCHAR chrominanceW [] = { 'c','h','r','o','m','i','n','a','n','c','e',0 }
 
static const WCHAR luminanceW [] = { 'l','u','m','i','n','a','n','c','e',0 }
 
static const WCHAR comW [] = { 'c','o','m',0 }
 
static const WCHAR commentextW [] = { 'c','o','m','m','e','n','t','e','x','t',0 }
 
static const WCHAR gAMAW [] = { 'g','A','M','A',0 }
 
static const WCHAR bKGDW [] = { 'b','K','G','D',0 }
 
static const WCHAR iTXtW [] = { 'i','T','X','t',0 }
 
static const WCHAR cHRMW [] = { 'c','H','R','M',0 }
 
static const WCHAR hISTW [] = { 'h','I','S','T',0 }
 
static const WCHAR iCCPW [] = { 'i','C','C','P',0 }
 
static const WCHAR sRGBW [] = { 's','R','G','B',0 }
 
static const WCHAR tIMEW [] = { 't','I','M','E',0 }
 
struct {
   const GUID *   guid
 
   const WCHAR *   name
 
guid2name []
 
static const WCHAR rdf [] = { 'r','d','f',0 }
 
static const WCHAR rdf_scheme [] = { 'h','t','t','p',':','/','/','w','w','w','.','w','3','.','o','r','g','/','1','9','9','9','/','0','2','/','2','2','-','r','d','f','-','s','y','n','t','a','x','-','n','s','#',0 }
 
static const WCHAR dc [] = { 'd','c',0 }
 
static const WCHAR dc_scheme [] = { 'h','t','t','p',':','/','/','p','u','r','l','.','o','r','g','/','d','c','/','e','l','e','m','e','n','t','s','/','1','.','1','/',0 }
 
static const WCHAR xmp [] = { 'x','m','p',0 }
 
static const WCHAR xmp_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/',0 }
 
static const WCHAR xmpidq [] = { 'x','m','p','i','d','q',0 }
 
static const WCHAR xmpidq_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','m','p','/','I','d','e','n','t','i','f','i','e','r','/','q','u','a','l','/','1','.','0','/',0 }
 
static const WCHAR xmpRights [] = { 'x','m','p','R','i','g','h','t','s',0 }
 
static const WCHAR xmpRights_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','r','i','g','h','t','s','/',0 }
 
static const WCHAR xmpMM [] = { 'x','m','p','M','M',0 }
 
static const WCHAR xmpMM_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','m','m','/',0 }
 
static const WCHAR xmpBJ [] = { 'x','m','p','B','J',0 }
 
static const WCHAR xmpBJ_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','b','j','/',0 }
 
static const WCHAR xmpTPg [] = { 'x','m','p','T','P','g',0 }
 
static const WCHAR xmpTPg_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','t','/','p','g','/',0 }
 
static const WCHAR pdf [] = { 'p','d','f',0 }
 
static const WCHAR pdf_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','p','d','f','/','1','.','3','/',0 }
 
static const WCHAR photoshop [] = { 'p','h','o','t','o','s','h','o','p',0 }
 
static const WCHAR photoshop_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','p','h','o','t','o','s','h','o','p','/','1','.','0','/',0 }
 
static const WCHAR tiff [] = { 't','i','f','f',0 }
 
static const WCHAR tiff_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','t','i','f','f','/','1','.','0','/',0 }
 
static const WCHAR exif [] = { 'e','x','i','f',0 }
 
static const WCHAR exif_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','e','x','i','f','/','1','.','0','/',0 }
 
static const WCHAR stDim [] = { 's','t','D','i','m',0 }
 
static const WCHAR stDim_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','D','i','m','e','n','s','i','o','n','s','#',0 }
 
static const WCHAR xapGImg [] = { 'x','a','p','G','I','m','g',0 }
 
static const WCHAR xapGImg_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','g','/','i','m','g','/',0 }
 
static const WCHAR stEvt [] = { 's','t','E','v','t',0 }
 
static const WCHAR stEvt_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','R','e','s','o','u','r','c','e','E','v','e','n','t','#',0 }
 
static const WCHAR stRef [] = { 's','t','R','e','f',0 }
 
static const WCHAR stRef_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','R','e','s','o','u','r','c','e','R','e','f','#',0 }
 
static const WCHAR stVer [] = { 's','t','V','e','r',0 }
 
static const WCHAR stVer_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','V','e','r','s','i','o','n','#',0 }
 
static const WCHAR stJob [] = { 's','t','J','o','b',0 }
 
static const WCHAR stJob_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','J','o','b','#',0 }
 
static const WCHAR aux [] = { 'a','u','x',0 }
 
static const WCHAR aux_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','e','x','i','f','/','1','.','0','/','a','u','x','/',0 }
 
static const WCHAR crs [] = { 'c','r','s',0 }
 
static const WCHAR crs_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','c','a','m','e','r','a','-','r','a','w','-','s','e','t','t','i','n','g','s','/','1','.','0','/',0 }
 
static const WCHAR xmpDM [] = { 'x','m','p','D','M',0 }
 
static const WCHAR xmpDM_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','m','p','/','1','.','0','/','D','y','n','a','m','i','c','M','e','d','i','a','/',0 }
 
static const WCHAR Iptc4xmpCore [] = { 'I','p','t','c','4','x','m','p','C','o','r','e',0 }
 
static const WCHAR Iptc4xmpCore_scheme [] = { 'h','t','t','p',':','/','/','i','p','t','c','.','o','r','g','/','s','t','d','/','I','p','t','c','4','x','m','p','C','o','r','e','/','1','.','0','/','x','m','l','n','s','/',0 }
 
static const WCHAR MicrosoftPhoto [] = { 'M','i','c','r','o','s','o','f','t','P','h','o','t','o',0 }
 
static const WCHAR MicrosoftPhoto_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','0','/',0 }
 
static const WCHAR MP [] = { 'M','P',0 }
 
static const WCHAR MP_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/',0 }
 
static const WCHAR MPRI [] = { 'M','P','R','I',0 }
 
static const WCHAR MPRI_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/','t','/','R','e','g','i','o','n','I','n','f','o','#',0 }
 
static const WCHAR MPReg [] = { 'M','P','R','e','g',0 }
 
static const WCHAR MPReg_scheme [] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/','t','/','R','e','g','i','o','n','#',0 }
 
struct {
   const WCHAR *   name
 
   const WCHAR *   schema
 
name2schema []
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 24 of file metadataquery.c.

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 25 of file metadataquery.c.

Function Documentation

◆ find_reader_from_block()

static HRESULT find_reader_from_block ( IWICMetadataBlockReader block_reader,
UINT  index,
GUID guid,
IWICMetadataReader **  reader 
)
static

Definition at line 377 of file metadataquery.c.

379 {
380  HRESULT hr;
381  GUID format;
382  IWICMetadataReader *new_reader;
383  UINT count, i, matched_index;
384 
385  *reader = NULL;
386 
387  hr = IWICMetadataBlockReader_GetCount(block_reader, &count);
388  if (hr != S_OK) return hr;
389 
390  matched_index = 0;
391 
392  for (i = 0; i < count; i++)
393  {
394  hr = IWICMetadataBlockReader_GetReaderByIndex(block_reader, i, &new_reader);
395  if (hr != S_OK) return hr;
396 
397  hr = IWICMetadataReader_GetMetadataFormat(new_reader, &format);
398  if (hr == S_OK)
399  {
400  if (IsEqualGUID(&format, guid))
401  {
402  if (matched_index == index)
403  {
404  *reader = new_reader;
405  return S_OK;
406  }
407 
408  matched_index++;
409  }
410  }
411 
412  IWICMetadataReader_Release(new_reader);
413  if (hr != S_OK) return hr;
414  }
415 
417 }
HRESULT hr
Definition: shlfolder.c:183
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const GUID * guid
smooth NULL
Definition: ftsmooth.c:416
GLuint index
Definition: glext.h:6031
LONG HRESULT
Definition: typedefs.h:77
#define S_OK
Definition: intsafe.h:59
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
Definition: reader.h:83
#define WINCODEC_ERR_PROPERTYNOTFOUND
Definition: winerror.h:3279

Referenced by mqr_GetMetadataByName().

◆ get_next_reader()

static HRESULT get_next_reader ( IWICMetadataReader reader,
UINT  index,
GUID guid,
IWICMetadataReader **  new_reader 
)
static

Definition at line 419 of file metadataquery.c.

421 {
422  HRESULT hr;
423  PROPVARIANT schema, id, value;
424 
425  *new_reader = NULL;
426 
427  PropVariantInit(&schema);
428  PropVariantInit(&id);
429  PropVariantInit(&value);
430 
431  if (index)
432  {
433  schema.vt = VT_UI2;
434  schema.u.uiVal = index;
435  }
436 
437  id.vt = VT_CLSID;
438  id.u.puuid = guid;
439  hr = IWICMetadataReader_GetValue(reader, &schema, &id, &value);
440  if (hr != S_OK) return hr;
441 
442  if (value.vt == VT_UNKNOWN)
443  hr = IUnknown_QueryInterface(value.u.punkVal, &IID_IWICMetadataReader, (void **)new_reader);
444  else
446 
448  return hr;
449 }
HRESULT hr
Definition: shlfolder.c:183
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
Definition: ole2.c:2952
const GUID * guid
smooth NULL
Definition: ftsmooth.c:416
GLuint index
Definition: glext.h:6031
#define WINCODEC_ERR_UNEXPECTEDMETADATATYPE
Definition: winerror.h:3308
LONG HRESULT
Definition: typedefs.h:77
#define index(s, c)
Definition: various.h:29
GLsizei const GLfloat * value
Definition: glext.h:6069
#define S_OK
Definition: intsafe.h:59
const WCHAR * schema
Definition: reader.h:83
GLenum GLuint id
Definition: glext.h:5579
union value::@481 u

Referenced by mqr_GetMetadataByName().

◆ get_token()

static HRESULT get_token ( struct string_t elem,
PROPVARIANT *  id,
PROPVARIANT *  schema,
int idx 
)
static

Definition at line 182 of file metadataquery.c.

183 {
184  const WCHAR *start, *end, *p;
185  WCHAR *bstr;
186  struct string_t next_elem;
187  HRESULT hr;
188 
189  TRACE("%s, len %d\n", wine_dbgstr_wn(elem->str, elem->len), elem->len);
190 
191  PropVariantInit(id);
192  PropVariantInit(schema);
193 
194  if (!elem->len) return S_OK;
195 
196  start = elem->str;
197 
198  if (*start == '[')
199  {
200  WCHAR *idx_end;
201 
202  if (start[1] < '0' || start[1] > '9') return DISP_E_TYPEMISMATCH;
203 
204  *idx = strtolW(start + 1, &idx_end, 10);
205  if (idx_end > elem->str + elem->len) return WINCODEC_ERR_INVALIDQUERYREQUEST;
206  if (*idx_end != ']') return WINCODEC_ERR_INVALIDQUERYREQUEST;
207  if (*idx < 0) return WINCODEC_ERR_INVALIDQUERYREQUEST;
208  end = idx_end + 1;
209 
210  next_elem.str = end;
211  next_elem.len = elem->len - (end - start);
212  hr = get_token(&next_elem, id, schema, idx);
213  if (hr != S_OK)
214  {
215  TRACE("get_token error %#x\n", hr);
216  return hr;
217  }
218  elem->len = (end - start) + next_elem.len;
219 
220  TRACE("indexed %s [%d]\n", wine_dbgstr_wn(elem->str, elem->len), *idx);
221  return S_OK;
222  }
223  else if (*start == '{')
224  {
225  VARTYPE vt;
226  PROPVARIANT next_token;
227 
228  end = memchrW(start + 1, '=', elem->len - 1);
230  if (end > elem->str + elem->len) return WINCODEC_ERR_INVALIDQUERYREQUEST;
231 
232  next_elem.str = start + 1;
233  next_elem.len = end - start - 1;
234  vt = map_type(&next_elem);
235  TRACE("type %s => %d\n", wine_dbgstr_wn(next_elem.str, next_elem.len), vt);
236  if (vt == VT_ILLEGAL) return WINCODEC_ERR_WRONGSTATE;
237 
238  next_token.vt = VT_BSTR;
239  next_token.u.bstrVal = SysAllocStringLen(NULL, elem->len - (end - start) + 1);
240  if (!next_token.u.bstrVal) return E_OUTOFMEMORY;
241 
242  bstr = next_token.u.bstrVal;
243 
244  end++;
245  p = end;
246  while (*end && *end != '}' && end - start < elem->len)
247  {
248  if (*end == '\\') end++;
249  *bstr++ = *end++;
250  }
251  if (*end != '}')
252  {
255  }
256  *bstr = 0;
257  TRACE("schema/id %s\n", wine_dbgstr_w(next_token.u.bstrVal));
258 
259  if (vt == VT_CLSID)
260  {
261  id->vt = VT_CLSID;
262  id->u.puuid = CoTaskMemAlloc(sizeof(GUID));
263  if (!id->u.puuid)
264  {
266  return E_OUTOFMEMORY;
267  }
268 
269  hr = UuidFromStringW(next_token.u.bstrVal, id->u.puuid);
270  }
271  else
274  if (hr != S_OK)
275  {
276  PropVariantClear(id);
278  return hr;
279  }
280 
281  end++;
282  if (*end == ':')
283  {
284  PROPVARIANT next_id, next_schema;
285  int next_idx = 0;
286 
287  next_elem.str = end + 1;
288  next_elem.len = elem->len - (end - start + 1);
289  hr = get_token(&next_elem, &next_id, &next_schema, &next_idx);
290  if (hr != S_OK)
291  {
292  TRACE("get_token error %#x\n", hr);
293  return hr;
294  }
295  elem->len = (end - start + 1) + next_elem.len;
296 
297  TRACE("id %s [%d]\n", wine_dbgstr_wn(elem->str, elem->len), *idx);
298 
299  if (next_schema.vt != VT_EMPTY)
300  {
302  PropVariantClear(&next_schema);
304  }
305 
306  *schema = *id;
307  *id = next_id;
308 
309  return S_OK;
310  }
311 
312  elem->len = end - start;
313  return S_OK;
314  }
315 
316  end = memchrW(start, '/', elem->len);
317  if (!end) end = start + elem->len;
318 
319  p = memchrW(start, ':', end - start);
320  if (p)
321  {
322  next_elem.str = p + 1;
323  next_elem.len = end - p - 1;
324 
325  elem->len = p - start;
326  }
327  else
328  elem->len = end - start;
329 
330  id->vt = VT_BSTR;
331  id->u.bstrVal = SysAllocStringLen(NULL, elem->len + 1);
332  if (!id->u.bstrVal) return E_OUTOFMEMORY;
333 
334  bstr = id->u.bstrVal;
335  p = elem->str;
336  while (p - elem->str < elem->len)
337  {
338  if (*p == '\\') p++;
339  *bstr++ = *p++;
340  }
341  *bstr = 0;
342  TRACE("%s [%d]\n", wine_dbgstr_variant((VARIANT *)id), *idx);
343 
344  if (*p == ':')
345  {
346  PROPVARIANT next_id, next_schema;
347  int next_idx = 0;
348 
349  hr = get_token(&next_elem, &next_id, &next_schema, &next_idx);
350  if (hr != S_OK)
351  {
352  TRACE("get_token error %#x\n", hr);
353  PropVariantClear(id);
355  return hr;
356  }
357  elem->len += next_elem.len + 1;
358 
359  TRACE("id %s [%d]\n", wine_dbgstr_wn(elem->str, elem->len), *idx);
360 
361  if (next_schema.vt != VT_EMPTY)
362  {
364  PropVariantClear(&next_schema);
365  PropVariantClear(id);
368  }
369 
370  *schema = *id;
371  *id = next_id;
372  }
373 
374  return S_OK;
375 }
HRESULT hr
Definition: shlfolder.c:183
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
Definition: ole2.c:2952
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
#define strtolW(s, e, b)
Definition: unicode.h:33
int next_token(char **, FILE *)
HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc, PROPVAR_CHANGE_FLAGS flags, VARTYPE vt)
Definition: propvar.c:361
GLuint GLuint end
Definition: gl.h:1545
static LONG next_id
Definition: changenotify.c:91
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
Definition: rpcrt4_main.c:615
static size_t elem
Definition: string.c:68
unsigned int idx
Definition: utils.c:41
smooth NULL
Definition: ftsmooth.c:416
#define WINCODEC_ERR_INVALIDQUERYREQUEST
Definition: winerror.h:3307
#define DISP_E_TYPEMISMATCH
Definition: winerror.h:2514
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static VARTYPE map_type(struct string_t *str)
GLenum GLsizei len
Definition: glext.h:6722
const char * wine_dbgstr_wn(const WCHAR *str, int n)
Definition: compat.c:342
#define WINCODEC_ERR_WRONGSTATE
Definition: winerror.h:3273
#define S_OK
Definition: intsafe.h:59
static HRESULT get_token(struct string_t *elem, PROPVARIANT *id, PROPVARIANT *schema, int *idx)
GLuint start
Definition: gl.h:1545
unsigned short VARTYPE
Definition: compat.h:1895
const WCHAR * schema
GLenum GLuint id
Definition: glext.h:5579
GLfloat GLfloat p
Definition: glext.h:8902
WINE_UNICODE_INLINE WCHAR * memchrW(const WCHAR *ptr, WCHAR ch, size_t n)
Definition: unicode.h:295
VARTYPE vt
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:406

Referenced by mqr_GetMetadataByName().

◆ impl_from_IWICMetadataQueryReader()

static QueryReader* impl_from_IWICMetadataQueryReader ( IWICMetadataQueryReader iface)
inlinestatic

Definition at line 47 of file metadataquery.c.

48 {
49  return CONTAINING_RECORD(iface, QueryReader, IWICMetadataQueryReader_iface);
50 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560

Referenced by mqr_AddRef(), mqr_GetContainerFormat(), mqr_GetEnumerator(), mqr_GetLocation(), mqr_GetMetadataByName(), mqr_QueryInterface(), and mqr_Release().

◆ map_shortname_to_schema()

static const WCHAR * map_shortname_to_schema ( const GUID format,
const WCHAR name 
)
static

Definition at line 876 of file metadataquery.c.

877 {
878  UINT i;
879 
880  /* It appears that the only metadata formats
881  * that support schemas are xmp and xmpstruct.
882  */
883  if (!IsEqualGUID(format, &GUID_MetadataFormatXMP) &&
884  !IsEqualGUID(format, &GUID_MetadataFormatXMPStruct))
885  return NULL;
886 
887  for (i = 0; i < ARRAY_SIZE(name2schema); i++)
888  {
889  if (!lstrcmpW(name2schema[i].name, name))
890  return name2schema[i].schema;
891  }
892 
893  return NULL;
894 }
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define ARRAY_SIZE(a)
Definition: main.h:24
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
const WCHAR * schema
Definition: name.c:36
static const struct @569 name2schema[]

Referenced by mqr_GetMetadataByName().

◆ map_type()

static VARTYPE map_type ( struct string_t str)
static

Definition at line 163 of file metadataquery.c.

164 {
165  UINT i;
166 
167  for (i = 0; i < ARRAY_SIZE(str2vt); i++)
168  {
169  if (str2vt[i].len == str->len)
170  {
172  str->str, str->len, str2vt[i].str, str2vt[i].len) == CSTR_EQUAL)
173  return str2vt[i].vt;
174  }
175  }
176 
177  WARN("type %s is not recognized\n", wine_dbgstr_wn(str->str, str->len));
178 
179  return VT_ILLEGAL;
180 }
#define WARN(fmt,...)
Definition: debug.h:111
#define NORM_IGNORECASE
Definition: winnls.h:173
WCHAR str[10]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static const struct @567 str2vt[]
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
Definition: lang.c:2275
#define LOCALE_SYSTEM_DEFAULT
GLenum GLsizei len
Definition: glext.h:6722
#define CSTR_EQUAL
Definition: winnls.h:453
const char * wine_dbgstr_wn(const WCHAR *str, int n)
Definition: compat.c:342
#define ARRAY_SIZE(a)
Definition: main.h:24
unsigned int UINT
Definition: ndis.h:50
VARTYPE vt

Referenced by _STLP_STATIC_ASSERT(), and get_token().

◆ MetadataQueryReader_CreateInstance()

HRESULT MetadataQueryReader_CreateInstance ( IWICMetadataBlockReader mbr,
const WCHAR root,
IWICMetadataQueryReader **  out 
)

Definition at line 620 of file metadataquery.c.

621 {
622  QueryReader *obj;
623 
625  if (!obj)
626  return E_OUTOFMEMORY;
627 
628  obj->IWICMetadataQueryReader_iface.lpVtbl = &mqr_vtbl;
629  obj->ref = 1;
630 
631  IWICMetadataBlockReader_AddRef(mbr);
632  obj->block = mbr;
633 
634  obj->root = root ? heap_strdupW(root) : NULL;
635 
636  *out = &obj->IWICMetadataQueryReader_iface;
637 
638  return S_OK;
639 }
GLsizei GLsizei GLuint * obj
Definition: glext.h:6042
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
smooth NULL
Definition: ftsmooth.c:416
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static FILE * out
Definition: regtests2xml.c:44
static IWICMetadataQueryReaderVtbl mqr_vtbl
#define S_OK
Definition: intsafe.h:59
#define HEAP_ZERO_MEMORY
Definition: compat.h:123

Referenced by ComponentFactory_CreateQueryReaderFromBlockReader(), GifDecoder_GetMetadataQueryReader(), GifFrameDecode_GetMetadataQueryReader(), and mqr_GetMetadataByName().

◆ mqr_AddRef()

static ULONG WINAPI mqr_AddRef ( IWICMetadataQueryReader iface)
static

Definition at line 74 of file metadataquery.c.

75 {
78  TRACE("(%p) refcount=%u\n", This, ref);
79  return ref;
80 }
Definition: send.c:47
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1

◆ mqr_GetContainerFormat()

static HRESULT WINAPI mqr_GetContainerFormat ( IWICMetadataQueryReader iface,
GUID format 
)
static

Definition at line 96 of file metadataquery.c.

97 {
99 
100  TRACE("(%p,%p)\n", This, format);
101 
102  return IWICMetadataBlockReader_GetContainerFormat(This->block, format);
103 }
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47

◆ mqr_GetEnumerator()

static HRESULT WINAPI mqr_GetEnumerator ( IWICMetadataQueryReader iface,
IEnumString **  ppIEnumString 
)
static

Definition at line 602 of file metadataquery.c.

604 {
606  FIXME("(%p,%p)\n", This, ppIEnumString);
607  return E_NOTIMPL;
608 }
#define FIXME(fmt,...)
Definition: debug.h:110
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ mqr_GetLocation()

static HRESULT WINAPI mqr_GetLocation ( IWICMetadataQueryReader iface,
UINT  len,
WCHAR location,
UINT ret_len 
)
static

Definition at line 105 of file metadataquery.c.

106 {
107  static const WCHAR rootW[] = { '/',0 };
109  const WCHAR *root;
110  UINT actual_len;
111 
112  TRACE("(%p,%u,%p,%p)\n", This, len, location, ret_len);
113 
114  if (!ret_len) return E_INVALIDARG;
115 
116  root = This->root ? This->root : rootW;
117  actual_len = lstrlenW(root) + 1;
118 
119  if (location)
120  {
121  if (len < actual_len)
123 
124  memcpy(location, root, actual_len * sizeof(WCHAR));
125  }
126 
127  *ret_len = actual_len;
128 
129  return S_OK;
130 }
static const WCHAR rootW[]
Definition: chain.c:69
struct _root root
#define lstrlenW
Definition: compat.h:407
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
__wchar_t WCHAR
Definition: xmlstorage.h:180
static JOBOBJECTINFOCLASS LPVOID DWORD LPDWORD ret_len
Definition: process.c:79
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
unsigned int UINT
Definition: ndis.h:50
#define WINCODEC_ERR_INSUFFICIENTBUFFER
Definition: winerror.h:3303

◆ mqr_GetMetadataByName()

static HRESULT WINAPI mqr_GetMetadataByName ( IWICMetadataQueryReader iface,
LPCWSTR  query,
PROPVARIANT *  value 
)
static

Definition at line 451 of file metadataquery.c.

452 {
454  struct string_t elem;
455  WCHAR *full_query;
456  const WCHAR *p;
457  int index, len;
458  PROPVARIANT tk_id, tk_schema, new_value;
459  GUID guid;
461  HRESULT hr = S_OK;
462 
463  TRACE("(%p,%s,%p)\n", This, wine_dbgstr_w(query), value);
464 
465  len = lstrlenW(query) + 1;
466  if (This->root) len += lstrlenW(This->root);
467  full_query = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
468  full_query[0] = 0;
469  if (This->root)
470  lstrcpyW(full_query, This->root);
471  lstrcatW(full_query, query);
472 
473  PropVariantInit(&tk_id);
474  PropVariantInit(&tk_schema);
475  PropVariantInit(&new_value);
476 
477  reader = NULL;
478  p = full_query;
479 
480  while (*p)
481  {
482  if (*p != '/')
483  {
484  WARN("query should start with '/'\n");
486  break;
487  }
488 
489  p++;
490 
491  index = 0;
492  elem.str = p;
493  elem.len = lstrlenW(p);
494  hr = get_token(&elem, &tk_id, &tk_schema, &index);
495  if (hr != S_OK)
496  {
497  WARN("get_token error %#x\n", hr);
498  break;
499  }
500  TRACE("parsed %d characters: %s, index %d\n", elem.len, wine_dbgstr_wn(elem.str, elem.len), index);
501  TRACE("id %s, schema %s\n", wine_dbgstr_variant((VARIANT *)&tk_id), wine_dbgstr_variant((VARIANT *)&tk_schema));
502 
503  if (!elem.len) break;
504 
505  if (tk_id.vt == VT_CLSID || (tk_id.vt == VT_BSTR && WICMapShortNameToGuid(tk_id.u.bstrVal, &guid) == S_OK))
506  {
507  WCHAR *root;
508 
509  if (tk_schema.vt != VT_EMPTY)
510  {
511  FIXME("unsupported schema vt %u\n", tk_schema.vt);
512  PropVariantClear(&tk_schema);
513  }
514 
515  if (tk_id.vt == VT_CLSID) guid = *tk_id.u.puuid;
516 
517  if (reader)
518  {
519  IWICMetadataReader *new_reader;
520 
521  hr = get_next_reader(reader, index, &guid, &new_reader);
522  IWICMetadataReader_Release(reader);
523  reader = new_reader;
524  }
525  else
527 
528  if (hr != S_OK) break;
529 
530  root = SysAllocStringLen(NULL, elem.str + elem.len - full_query + 2);
531  if (!root)
532  {
533  hr = E_OUTOFMEMORY;
534  break;
535  }
536  lstrcpynW(root, full_query, p - full_query + elem.len + 1);
537 
538  PropVariantClear(&new_value);
539  new_value.vt = VT_UNKNOWN;
540  hr = MetadataQueryReader_CreateInstance(This->block, root, (IWICMetadataQueryReader **)&new_value.u.punkVal);
542  if (hr != S_OK) break;
543  }
544  else
545  {
546  PROPVARIANT schema, id;
547 
548  if (!reader)
549  {
551  break;
552  }
553 
554  if (tk_schema.vt == VT_BSTR)
555  {
556  hr = IWICMetadataReader_GetMetadataFormat(reader, &guid);
557  if (hr != S_OK) break;
558 
559  schema.vt = VT_LPWSTR;
560  schema.u.pwszVal = (LPWSTR)map_shortname_to_schema(&guid, tk_schema.u.bstrVal);
561  if (!schema.u.pwszVal)
562  schema.u.pwszVal = tk_schema.u.bstrVal;
563  }
564  else
565  schema = tk_schema;
566 
567  if (tk_id.vt == VT_BSTR)
568  {
569  id.vt = VT_LPWSTR;
570  id.u.pwszVal = tk_id.u.bstrVal;
571  }
572  else
573  id = tk_id;
574 
575  PropVariantClear(&new_value);
576  hr = IWICMetadataReader_GetValue(reader, &schema, &id, &new_value);
577  if (hr != S_OK) break;
578  }
579 
580  p += elem.len;
581 
582  PropVariantClear(&tk_id);
583  PropVariantClear(&tk_schema);
584  }
585 
586  if (reader)
587  IWICMetadataReader_Release(reader);
588 
589  PropVariantClear(&tk_id);
590  PropVariantClear(&tk_schema);
591 
592  if (hr == S_OK && value)
593  *value = new_value;
594  else
595  PropVariantClear(&new_value);
596 
597  HeapFree(GetProcessHeap(), 0, full_query);
598 
599  return hr;
600 }
HRESULT hr
Definition: shlfolder.c:183
static HRESULT get_next_reader(IWICMetadataReader *reader, UINT index, GUID *guid, IWICMetadataReader **new_reader)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
Definition: ole2.c:2952
static HRESULT find_reader_from_block(IWICMetadataBlockReader *block_reader, UINT index, GUID *guid, IWICMetadataReader **reader)
char * wine_dbgstr_w(const wchar_t *wstr)
Definition: atltest.h:87
struct _root root
#define WARN(fmt,...)
Definition: debug.h:111
#define lstrlenW
Definition: compat.h:407
#define lstrcpynW
Definition: compat.h:397
const GUID * guid
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const WCHAR * map_shortname_to_schema(const GUID *format, const WCHAR *name)
static size_t elem
Definition: string.c:68
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
GLuint index
Definition: glext.h:6031
#define WINCODEC_ERR_INVALIDQUERYREQUEST
Definition: winerror.h:3307
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
#define index(s, c)
Definition: various.h:29
int len
GLenum GLsizei len
Definition: glext.h:6722
const char * wine_dbgstr_wn(const WCHAR *str, int n)
Definition: compat.c:342
#define S_OK
Definition: intsafe.h:59
#define lstrcpyW
Definition: compat.h:406
static HRESULT get_token(struct string_t *elem, PROPVARIANT *id, PROPVARIANT *schema, int *idx)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:274
const WCHAR * schema
Definition: reader.h:83
VARTYPE vt
Definition: compat.h:2022
HRESULT WINAPI WICMapShortNameToGuid(PCWSTR name, GUID *guid)
GLenum GLuint id
Definition: glext.h:5579
#define WINCODEC_ERR_PROPERTYNOTSUPPORTED
Definition: winerror.h:3280
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
GLfloat GLfloat p
Definition: glext.h:8902
BSTR bstrVal
Definition: compat.h:2040
WCHAR * LPWSTR
Definition: xmlstorage.h:184
HRESULT MetadataQueryReader_CreateInstance(IWICMetadataBlockReader *mbr, const WCHAR *root, IWICMetadataQueryReader **out)
#define HeapFree(x, y, z)
Definition: compat.h:394

◆ mqr_QueryInterface()

static HRESULT WINAPI mqr_QueryInterface ( IWICMetadataQueryReader iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 52 of file metadataquery.c.

54 {
56 
57  TRACE("(%p,%s,%p)\n", This, debugstr_guid(riid), ppvObject);
58 
59  if (IsEqualGUID(riid, &IID_IUnknown) ||
60  IsEqualGUID(riid, &IID_IWICMetadataQueryReader))
61  *ppvObject = &This->IWICMetadataQueryReader_iface;
62  else
63  *ppvObject = NULL;
64 
65  if (*ppvObject)
66  {
67  IUnknown_AddRef((IUnknown*)*ppvObject);
68  return S_OK;
69  }
70 
71  return E_NOINTERFACE;
72 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
const GUID IID_IUnknown
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define S_OK
Definition: intsafe.h:59
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021

◆ mqr_Release()

static ULONG WINAPI mqr_Release ( IWICMetadataQueryReader iface)
static

Definition at line 82 of file metadataquery.c.

83 {
86  TRACE("(%p) refcount=%u\n", This, ref);
87  if (!ref)
88  {
89  IWICMetadataBlockReader_Release(This->block);
90  HeapFree(GetProcessHeap(), 0, This->root);
92  }
93  return ref;
94 }
Definition: send.c:47
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
static QueryReader * impl_from_IWICMetadataQueryReader(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:47
#define GetProcessHeap()
Definition: compat.h:395
#define InterlockedDecrement
Definition: armddk.h:52
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:394

◆ WICMapGuidToShortName()

HRESULT WINAPI WICMapGuidToShortName ( REFGUID  guid,
UINT  len,
WCHAR name,
UINT ret_len 
)

Definition at line 738 of file metadataquery.c.

739 {
740  UINT i;
741 
742  TRACE("%s,%u,%p,%p\n", wine_dbgstr_guid(guid), len, name, ret_len);
743 
744  if (!guid) return E_INVALIDARG;
745 
746  for (i = 0; i < ARRAY_SIZE(guid2name); i++)
747  {
749  {
750  if (name)
751  {
752  if (!len) return E_INVALIDARG;
753 
754  len = min(len - 1, lstrlenW(guid2name[i].name));
755  memcpy(name, guid2name[i].name, len * sizeof(WCHAR));
756  name[len] = 0;
757 
758  if (len < lstrlenW(guid2name[i].name))
760  }
761  if (ret_len) *ret_len = lstrlenW(guid2name[i].name) + 1;
762  return S_OK;
763  }
764  }
765 
767 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
const char * wine_dbgstr_guid(const GUID *guid)
#define lstrlenW
Definition: compat.h:407
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const GUID * guid
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
static JOBOBJECTINFOCLASS LPVOID DWORD LPDWORD ret_len
Definition: process.c:79
int len
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
#define ARRAY_SIZE(a)
Definition: main.h:24
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
Definition: name.c:36
static const struct @568 guid2name[]
#define WINCODEC_ERR_PROPERTYNOTFOUND
Definition: winerror.h:3279
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10

Referenced by test_metadata_gif(), and test_WICMapGuidToShortName().

◆ WICMapSchemaToName()

HRESULT WINAPI WICMapSchemaToName ( REFGUID  format,
LPWSTR  schema,
UINT  len,
WCHAR name,
UINT ret_len 
)

Definition at line 896 of file metadataquery.c.

897 {
898  UINT i;
899 
900  TRACE("%s,%s,%u,%p,%p\n", wine_dbgstr_guid(format), debugstr_w(schema), len, name, ret_len);
901 
902  if (!format || !schema || !ret_len)
903  return E_INVALIDARG;
904 
905  /* It appears that the only metadata formats
906  * that support schemas are xmp and xmpstruct.
907  */
908  if (!IsEqualGUID(format, &GUID_MetadataFormatXMP) &&
909  !IsEqualGUID(format, &GUID_MetadataFormatXMPStruct))
911 
912  for (i = 0; i < ARRAY_SIZE(name2schema); i++)
913  {
915  {
916  if (name)
917  {
918  if (!len) return E_INVALIDARG;
919 
920  len = min(len - 1, lstrlenW(name2schema[i].name));
921  memcpy(name, name2schema[i].name, len * sizeof(WCHAR));
922  name[len] = 0;
923 
924  if (len < lstrlenW(name2schema[i].name))
926  }
927 
928  if (ret_len) *ret_len = lstrlenW(name2schema[i].name) + 1;
929  return S_OK;
930  }
931  }
932 
934 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170
const char * wine_dbgstr_guid(const GUID *guid)
#define lstrlenW
Definition: compat.h:407
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define debugstr_w
Definition: kernel32.h:32
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
static JOBOBJECTINFOCLASS LPVOID DWORD LPDWORD ret_len
Definition: process.c:79
int len
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:59
#define ARRAY_SIZE(a)
Definition: main.h:24
#define min(a, b)
Definition: monoChain.cc:55
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
const WCHAR * schema
Definition: name.c:36
static const struct @569 name2schema[]
#define WINCODEC_ERR_PROPERTYNOTFOUND
Definition: winerror.h:3279
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10

Referenced by test_WICMapSchemaToName().

◆ WICMapShortNameToGuid()

HRESULT WINAPI WICMapShortNameToGuid ( PCWSTR  name,
GUID guid 
)

Definition at line 769 of file metadataquery.c.

770 {
771  UINT i;
772 
773  TRACE("%s,%p\n", debugstr_w(name), guid);
774 
775  if (!name || !guid) return E_INVALIDARG;
776 
777  for (i = 0; i < ARRAY_SIZE(guid2name); i++)
778  {
779  if (!lstrcmpiW(name, guid2name[i].name))
780  {
781  *guid = *guid2name[i].guid;
782  return S_OK;
783  }
784  }
785 
787 }
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:194
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const GUID * guid
#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
#define ARRAY_SIZE(a)
Definition: main.h:24
unsigned int UINT
Definition: ndis.h:50
Definition: name.c:36
static const struct @568 guid2name[]
#define WINCODEC_ERR_PROPERTYNOTFOUND
Definition: winerror.h:3279

Referenced by mqr_GetMetadataByName(), test_metadata_gif(), and test_WICMapShortNameToGuid().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( wincodecs  )

Variable Documentation

◆ _8bimiptcdigestW

const WCHAR _8bimiptcdigestW[] = { '8','b','i','m','i','p','t','c','d','i','g','e','s','t',0 }
static

Definition at line 661 of file metadataquery.c.

◆ _8bimiptcW

const WCHAR _8bimiptcW[] = { '8','b','i','m','i','p','t','c',0 }
static

Definition at line 659 of file metadataquery.c.

◆ _8bimResInfoW

const WCHAR _8bimResInfoW[] = { '8','b','i','m','R','e','s','I','n','f','o',0 }
static

Definition at line 660 of file metadataquery.c.

◆ app0W

const WCHAR app0W[] = { 'a','p','p','0',0 }
static

Definition at line 654 of file metadataquery.c.

◆ app13W

const WCHAR app13W[] = { 'a','p','p','1','3',0 }
static

Definition at line 656 of file metadataquery.c.

◆ app1W

const WCHAR app1W[] = { 'a','p','p','1',0 }
static

Definition at line 655 of file metadataquery.c.

◆ appextW

const WCHAR appextW[] = { 'a','p','p','e','x','t',0 }
static

Definition at line 672 of file metadataquery.c.

◆ aux

const WCHAR aux[] = { 'a','u','x',0 }
static

◆ aux_scheme

const WCHAR aux_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','e','x','i','f','/','1','.','0','/','a','u','x','/',0 }
static

Definition at line 826 of file metadataquery.c.

◆ bKGDW

const WCHAR bKGDW[] = { 'b','K','G','D',0 }
static

Definition at line 678 of file metadataquery.c.

◆ bmpW

const WCHAR bmpW[] = { 'b','m','p',0 }
static

Definition at line 641 of file metadataquery.c.

◆ cHRMW

const WCHAR cHRMW[] = { 'c','H','R','M',0 }
static

Definition at line 680 of file metadataquery.c.

◆ chrominanceW

const WCHAR chrominanceW[] = { 'c','h','r','o','m','i','n','a','n','c','e',0 }
static

Definition at line 673 of file metadataquery.c.

◆ commentextW

const WCHAR commentextW[] = { 'c','o','m','m','e','n','t','e','x','t',0 }
static

Definition at line 676 of file metadataquery.c.

◆ comW

const WCHAR comW[] = { 'c','o','m',0 }
static

Definition at line 675 of file metadataquery.c.

Referenced by COMM_ParseStart().

◆ crs

const WCHAR crs[] = { 'c','r','s',0 }
static

◆ crs_scheme

const WCHAR crs_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','c','a','m','e','r','a','-','r','a','w','-','s','e','t','t','i','n','g','s','/','1','.','0','/',0 }
static

Definition at line 828 of file metadataquery.c.

◆ dc

const WCHAR dc[] = { 'd','c',0 }
static

Definition at line 791 of file metadataquery.c.

◆ dc_scheme

const WCHAR dc_scheme[] = { 'h','t','t','p',':','/','/','p','u','r','l','.','o','r','g','/','d','c','/','e','l','e','m','e','n','t','s','/','1','.','1','/',0 }
static

Definition at line 792 of file metadataquery.c.

◆ exif

const WCHAR exif[] = { 'e','x','i','f',0 }
static

Definition at line 811 of file metadataquery.c.

◆ exif_scheme

const WCHAR exif_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','e','x','i','f','/','1','.','0','/',0 }
static

Definition at line 812 of file metadataquery.c.

◆ exifW

const WCHAR exifW[] = { 'e','x','i','f',0 }
static

Definition at line 651 of file metadataquery.c.

◆ gAMAW

const WCHAR gAMAW[] = { 'g','A','M','A',0 }
static

Definition at line 677 of file metadataquery.c.

◆ gifW

const WCHAR gifW[] = { 'g','i','f',0 }
static

Definition at line 646 of file metadataquery.c.

◆ gpsW

const WCHAR gpsW[] = { 'g','p','s',0 }
static

Definition at line 652 of file metadataquery.c.

◆ grctlextW

const WCHAR grctlextW[] = { 'g','r','c','t','l','e','x','t',0 }
static

Definition at line 671 of file metadataquery.c.

◆ guid

const GUID* guid

Definition at line 688 of file metadataquery.c.

Referenced by _dump_dinput_GUID(), _GetDocumentsPidl(), _ILCreateGuid(), _ILIsControlPanel(), _test_provideclassinfo(), a_to_w_callback(), ACTION_AppSearchComponents(), ACTION_CallDllFunction(), ACTION_CallScript(), ACTION_MsiPublishAssemblies(), add_tbs_to_menu(), add_typeinfo_block(), alloc_importinfo(), Anime_SetFrameIndex(), BmpFrameEncode_SetPixelFormat(), callback_providersA(), callback_providersW(), CategoryMgr_FindClosestCategory(), ATL::CComBSTR::CComBSTR(), check_db_properties(), check_safearray(), client(), CoGetActivationState(), component_GetGUID(), compose_base85_guid(), CoRegisterSurrogateEx(), create_activex_object(), create_event_sink(), create_msft_typeinfo(), create_object(), create_script_host(), create_test_guid(), CRYPT_guid2wstr(), CRYPT_OpenSIPFunctionKey(), CRYPT_SIPDeleteFunction(), CRYPT_SIPWriteFunction(), CryptCATEnumerateMember(), ctl2_alloc_guid(), ctl2_find_guid(), ctl2_hash_guid(), d3d8_indexbuffer_FreePrivateData(), d3d8_indexbuffer_GetPrivateData(), d3d8_indexbuffer_SetPrivateData(), d3d8_resource_free_private_data(), d3d8_resource_get_private_data(), d3d8_resource_set_private_data(), d3d8_surface_FreePrivateData(), d3d8_surface_GetPrivateData(), d3d8_surface_SetPrivateData(), d3d8_texture_2d_FreePrivateData(), d3d8_texture_2d_GetPrivateData(), d3d8_texture_2d_SetPrivateData(), d3d8_texture_3d_FreePrivateData(), d3d8_texture_3d_GetPrivateData(), d3d8_texture_3d_SetPrivateData(), d3d8_texture_cube_FreePrivateData(), d3d8_texture_cube_GetPrivateData(), d3d8_texture_cube_SetPrivateData(), d3d8_vertexbuffer_FreePrivateData(), d3d8_vertexbuffer_GetPrivateData(), d3d8_vertexbuffer_SetPrivateData(), d3d8_volume_FreePrivateData(), d3d8_volume_GetPrivateData(), d3d8_volume_SetPrivateData(), d3d9_indexbuffer_FreePrivateData(), d3d9_indexbuffer_GetPrivateData(), d3d9_indexbuffer_SetPrivateData(), d3d9_resource_free_private_data(), d3d9_resource_get_private_data(), d3d9_resource_set_private_data(), d3d9_surface_FreePrivateData(), d3d9_surface_GetPrivateData(), d3d9_surface_SetPrivateData(), d3d9_texture_2d_FreePrivateData(), d3d9_texture_2d_GetPrivateData(), d3d9_texture_2d_SetPrivateData(), d3d9_texture_3d_FreePrivateData(), d3d9_texture_3d_GetPrivateData(), d3d9_texture_3d_SetPrivateData(), d3d9_texture_cube_FreePrivateData(), d3d9_texture_cube_GetPrivateData(), d3d9_texture_cube_SetPrivateData(), d3d9_vertexbuffer_FreePrivateData(), d3d9_vertexbuffer_GetPrivateData(), d3d9_vertexbuffer_SetPrivateData(), d3d9_volume_FreePrivateData(), d3d9_volume_GetPrivateData(), d3d9_volume_SetPrivateData(), d3d_device1_Initialize(), d3d_device_create(), d3drm1_CreateDeviceFromClipper(), d3drm1_CreateDeviceFromSurface(), d3drm2_CreateDeviceFromClipper(), d3drm2_CreateDeviceFromSurface(), d3drm3_CreateDeviceFromClipper(), d3drm3_CreateDeviceFromSurface(), d3drm3_RegisterClient(), d3drm3_UnregisterClient(), d3drm_device1_InitFromClipper(), d3drm_device2_InitFromClipper(), d3drm_device2_InitFromSurface(), d3drm_device3_InitFromClipper(), d3drm_device3_InitFromSurface(), d3drm_mesh_builder3_Load(), d3dx9_file_data_GetId(), d3dx9_file_data_GetType(), d3dx9_file_enum_object_GetDataObjectById(), D3DXLoadMeshFromXInMemory(), D3DXLoadMeshHierarchyFromXInMemory(), ddraw1_Initialize(), ddraw2_Initialize(), ddraw4_Initialize(), ddraw7_Initialize(), DDRAW_Create(), debugstr_dmguid(), debugstr_guid(), DECLARE_INTERFACE_(), DECLARE_INTERFACE_IID_(), decode_base85_guid(), delete_component_path(), DirectSoundCaptureEnumerateW(), DirectSoundDevice_Initialize(), DirectSoundEnumerateW(), DllRegisterServer(), DllThread(), DllUnregisterServer(), dsound_enum(), dump_DIEFFECT(), effect_from_guid(), encode_base85_guid(), enum_callback(), enum_components(), EnumJoysticks(), EtwEnableTrace(), exec_script(), fetch_machine_component(), fetch_user_component(), find_action_by_guid(), find_clr_surrogate(), find_cominterface_redirection(), find_comserver_redirection(), find_devices(), find_guid(), find_guid_index(), find_reader_from_block(), find_tlib_redirection(), find_typelib_key(), GdipCreateEffect(), generate_uuid(), get_action_info(), get_bool_property(), get_elem_script_host(), get_formatinfo(), get_guid_from_language(), get_guid_from_type(), get_iface_guid(), get_IID_string(), get_interface_key(), get_mapping_key(), get_metadata_container(), get_next_reader(), get_property(), get_script_guid(), get_script_host(), get_settingid(), get_typeinfo_of_guid(), get_typelib_key(), ATL::CImage::GetClsidFromFileType(), ATL::CImage::GetCommonFilterString(), getCurrentChannelConfig(), GetRecordInfoFromTypeInfo(), CQueryAssociations::GetString(), GifDecoder_Block_GetContainerFormat(), GifFrameDecode_Block_GetContainerFormat(), Guid2str(), GUIDFromStringW(), hash_guid(), Host_CreateObject(), ICreateTypeInfo2_fnSetCustData(), ICreateTypeInfo2_fnSetFuncCustData(), ICreateTypeInfo2_fnSetGuid(), ICreateTypeInfo2_fnSetImplTypeCustData(), ICreateTypeInfo2_fnSetParamCustData(), ICreateTypeInfo2_fnSetVarCustData(), ICreateTypeLib2_fnSetCustData(), ICreateTypeLib2_fnSetGuid(), IDirectPlay2AImpl_Initialize(), IDirectPlay2Impl_Initialize(), IDirectPlay3AImpl_Initialize(), IDirectPlay3Impl_Initialize(), IDirectPlay4AImpl_Initialize(), IDirectPlay4Impl_Initialize(), IDirectPlayImpl_Initialize(), IDirectXFileDataImpl_GetType(), IEnumDMO_fnNext(), IFileDialog2_fnSetClientGuid(), IFileOpenDialog_fnSetClientGuid(), IFileSaveDialog_fnSetClientGuid(), init_classinfo(), InitPropVariantFromGUIDAsString(), InitVariantFromGUIDAsString(), intDdGetDriverInfo(), IsCatalogFile(), ITERATE_RegisterTypeLibraries(), ITERATE_UnregisterTypeLibraries(), ITypeInfo2_fnGetCustData(), ITypeInfo2_fnGetFuncCustData(), ITypeInfo2_fnGetImplTypeCustData(), ITypeInfo2_fnGetParamCustData(), ITypeInfo2_fnGetVarCustData(), ITypeInfo_fnInvoke(), ITypeLib2_fnGetCustData(), ITypeLib2_fnGetTypeInfoOfGuid(), JoyConfig8Impl_AddNewHardware(), load_data(), load_devices_from_reg(), load_mesh_data(), LocalServer_QueryService(), LPSAFEARRAY_UserMarshal(), LPSAFEARRAY_UserUnmarshal(), MakeGuidString(), match_guid_attr_imp(), matchGUID(), MMDevPropStore_OpenPropKey(), mqr_GetMetadataByName(), msft_read_guid(), MSFT_ReadAllGuids(), MSI_ProvideQualifiedComponentEx(), MsiEnumComponentsExA(), MsiEnumComponentsExW(), path_find_symbol_file(), per_user_install_callback(), probe_volume(), profile3_GetProfileID(), PROPVAR_GUIDToWSTR(), PROPVAR_WCHARToGUID(), PropVariantToGUID(), query_feature_state(), query_typelib_path(), QueryPathOfRegTypeLib(), ReadGuidNode(), register_dsound_devices(), register_key_guid(), RtlFindActivationContextSectionGuid(), RtlFindActivationContextSectionString(), RtlGUIDFromString(), SAFEARRAY_CopyData(), SafeArraySetIID(), script_parse_event(), ScriptThread(), server(), set_component_path(), set_custdata(), set_guid(), CShellLink::SetAdvertiseInfo(), setCurrentChannelConfig(), setperusersecvalues_test(), SetPerUserSecValuesW(), SHELL32_GUIDToStringA(), SHELL32_GUIDToStringW(), shellex_load_object_and_run(), ShellExecute_FromContextMenu(), SHGlobalCounterCreate(), should_enumerate_device(), SHRegGetCLSIDKeyA(), SHRegGetCLSIDKeyW(), SHStringFromGUIDA(), SHStringFromGUIDW(), squash_guid(), START_TEST(), string_to_guid(), StringToGuid(), test_Activate(), test_ClassIDs(), test_createeffect(), test_dsound(), test_dump_typelib(), test_find_progid_redirection(), test_fromguid(), test_GdipGetAllPropertyItems(), test_GetDefaultSearchGUID(), test_gif_properties(), test_GuidFunctions(), test_InitPropVariantFromGUIDAsString(), test_interface_identifier_conversion(), test_is_testdb(), test_MsiEnumComponents(), test_MsiEnumComponentsEx(), test_MsiEnumProducts(), test_MsiEnumProductsEx(), test_multi_encoder(), test_ordinal_imports(), test_Persist(), test_pixelformat_info(), Test_PrivateData(), test_PropVariantToGUID(), test_RtlGUIDFromString(), test_safearray_layout(), test_SafeArrayCreateEx(), test_server_listening(), test_sip(), test_tiff_properties(), test_UuidCreate(), test_WICMapShortNameToGuid(), ThreadMgr_ActivateEx(), Timeline_IAMTimeline_GetDefaultEffect(), Timeline_IAMTimeline_GetDefaultTransition(), Timeline_IAMTimeline_SetDefaultEffect(), Timeline_IAMTimeline_SetDefaultTransition(), TimelineObj_GetSubObjectGUID(), TimelineObj_SetSubObjectGUID(), TLB_append_guid(), TLB_get_custdata_by_guid(), TLB_get_guid_null(), TLB_get_guidref(), TLB_GUIDFromString(), TLB_unregister_interface(), typeFromGUID(), uniquecontainer(), UserInstStubWrapperW(), VariantToGUID(), wic_guid_to_d3dformat(), WICMapGuidToShortName(), WICMapShortNameToGuid(), wined3d_private_store_set_private_data(), WMProfileManager_LoadProfileByID(), WMSFT_compile_guids(), write_pointer_tfs(), and Database::WriteBinary().

◆ guid2name

const { ... } guid2name[]

◆ hISTW

const WCHAR hISTW[] = { 'h','I','S','T',0 }
static

Definition at line 681 of file metadataquery.c.

◆ iCCPW

const WCHAR iCCPW[] = { 'i','C','C','P',0 }
static

Definition at line 682 of file metadataquery.c.

◆ icoW

const WCHAR icoW[] = { 'i','c','o',0 }
static

Definition at line 643 of file metadataquery.c.

◆ ifdW

const WCHAR ifdW[] = { 'i','f','d',0 }
static

Definition at line 649 of file metadataquery.c.

◆ imgdescW

const WCHAR imgdescW[] = { 'i','m','g','d','e','s','c',0 }
static

Definition at line 670 of file metadataquery.c.

Referenced by test_metadata_gif().

◆ interopW

const WCHAR interopW[] = { 'i','n','t','e','r','o','p',0 }
static

Definition at line 653 of file metadataquery.c.

◆ Iptc4xmpCore

const WCHAR Iptc4xmpCore[] = { 'I','p','t','c','4','x','m','p','C','o','r','e',0 }
static

Definition at line 831 of file metadataquery.c.

◆ Iptc4xmpCore_scheme

const WCHAR Iptc4xmpCore_scheme[] = { 'h','t','t','p',':','/','/','i','p','t','c','.','o','r','g','/','s','t','d','/','I','p','t','c','4','x','m','p','C','o','r','e','/','1','.','0','/','x','m','l','n','s','/',0 }
static

Definition at line 832 of file metadataquery.c.

◆ iptcW

const WCHAR iptcW[] = { 'i','p','t','c',0 }
static

Definition at line 657 of file metadataquery.c.

◆ irbW

const WCHAR irbW[] = { 'i','r','b',0 }
static

Definition at line 658 of file metadataquery.c.

◆ iTXtW

const WCHAR iTXtW[] = { 'i','T','X','t',0 }
static

Definition at line 679 of file metadataquery.c.

◆ jpgW

const WCHAR jpgW[] = { 'j','p','g',0 }
static

Definition at line 644 of file metadataquery.c.

◆ len

◆ logscrdescW

const WCHAR logscrdescW[] = { 'l','o','g','s','c','r','d','e','s','c',0 }
static

Definition at line 669 of file metadataquery.c.

◆ luminanceW

const WCHAR luminanceW[] = { 'l','u','m','i','n','a','n','c','e',0 }
static

Definition at line 674 of file metadataquery.c.

◆ MicrosoftPhoto

const WCHAR MicrosoftPhoto[] = { 'M','i','c','r','o','s','o','f','t','P','h','o','t','o',0 }
static

Definition at line 833 of file metadataquery.c.

◆ MicrosoftPhoto_scheme

const WCHAR MicrosoftPhoto_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','0','/',0 }
static

Definition at line 834 of file metadataquery.c.

◆ MP

const WCHAR MP[] = { 'M','P',0 }
static

Definition at line 835 of file metadataquery.c.

◆ MP_scheme

const WCHAR MP_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/',0 }
static

Definition at line 836 of file metadataquery.c.

◆ MPReg

const WCHAR MPReg[] = { 'M','P','R','e','g',0 }
static

Definition at line 839 of file metadataquery.c.

◆ MPReg_scheme

const WCHAR MPReg_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/','t','/','R','e','g','i','o','n','#',0 }
static

Definition at line 840 of file metadataquery.c.

◆ MPRI

const WCHAR MPRI[] = { 'M','P','R','I',0 }
static

Definition at line 837 of file metadataquery.c.

◆ MPRI_scheme

const WCHAR MPRI_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','m','i','c','r','o','s','o','f','t','.','c','o','m','/','p','h','o','t','o','/','1','.','2','/','t','/','R','e','g','i','o','n','I','n','f','o','#',0 }
static

Definition at line 838 of file metadataquery.c.

◆ mqr_vtbl

IWICMetadataQueryReaderVtbl mqr_vtbl
static
Initial value:
= {
}
static HRESULT WINAPI mqr_QueryInterface(IWICMetadataQueryReader *iface, REFIID riid, void **ppvObject)
Definition: metadataquery.c:52
static HRESULT WINAPI mqr_GetContainerFormat(IWICMetadataQueryReader *iface, GUID *format)
Definition: metadataquery.c:96
static HRESULT WINAPI mqr_GetMetadataByName(IWICMetadataQueryReader *iface, LPCWSTR query, PROPVARIANT *value)
static ULONG WINAPI mqr_Release(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:82
static ULONG WINAPI mqr_AddRef(IWICMetadataQueryReader *iface)
Definition: metadataquery.c:74
static HRESULT WINAPI mqr_GetEnumerator(IWICMetadataQueryReader *iface, IEnumString **ppIEnumString)
static HRESULT WINAPI mqr_GetLocation(IWICMetadataQueryReader *iface, UINT len, WCHAR *location, UINT *ret_len)

Definition at line 610 of file metadataquery.c.

Referenced by MetadataQueryReader_CreateInstance().

◆ name

Definition at line 689 of file metadataquery.c.

◆ name2schema

const { ... } name2schema[]
Initial value:
=
{
{ dc, dc_scheme },
{ MP, MP_scheme },
}
static const WCHAR MicrosoftPhoto_scheme[]
static const WCHAR xmpMM[]
static const WCHAR photoshop_scheme[]
static const WCHAR xmpDM[]
static const WCHAR tiff_scheme[]
static const WCHAR xapGImg_scheme[]
static const WCHAR MPRI_scheme[]
static const WCHAR exif[]
static const WCHAR crs_scheme[]
static const WCHAR stVer[]
static const WCHAR stJob_scheme[]
static const WCHAR stDim_scheme[]
static const WCHAR xmpBJ[]
static const WCHAR MP_scheme[]
static const WCHAR Iptc4xmpCore[]
static const WCHAR MicrosoftPhoto[]
static const WCHAR xmpTPg_scheme[]
static const WCHAR photoshop[]
static const WCHAR rdf[]
static const WCHAR pdf_scheme[]
static const WCHAR tiff[]
static const WCHAR xmp_scheme[]
static const WCHAR exif_scheme[]
static const WCHAR xmpidq[]
static const WCHAR MPReg[]
static const WCHAR rdf_scheme[]
static const WCHAR crs[]
static const WCHAR xmpMM_scheme[]
static const WCHAR Iptc4xmpCore_scheme[]
static const WCHAR xmpRights_scheme[]
static const WCHAR xmpidq_scheme[]
static const WCHAR xmpDM_scheme[]
static const WCHAR MPRI[]
static const WCHAR xmpTPg[]
static const WCHAR stEvt[]
static const WCHAR stRef[]
static const WCHAR xmpBJ_scheme[]
static const WCHAR xmpRights[]
static const WCHAR stEvt_scheme[]
static const WCHAR pdf[]
static const WCHAR aux[]
static const WCHAR MPReg_scheme[]
static const WCHAR stVer_scheme[]
static const WCHAR dc_scheme[]
static const WCHAR dc[]
static const WCHAR aux_scheme[]
static const WCHAR xmp[]
static const WCHAR MP[]
static const WCHAR xapGImg[]
static const WCHAR stDim[]
static const WCHAR stRef_scheme[]
static const WCHAR stJob[]

Referenced by map_shortname_to_schema(), and WICMapSchemaToName().

◆ pdf

const WCHAR pdf[] = { 'p','d','f',0 }
static

Definition at line 805 of file metadataquery.c.

◆ pdf_scheme

const WCHAR pdf_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','p','d','f','/','1','.','3','/',0 }
static

Definition at line 806 of file metadataquery.c.

◆ photoshop

const WCHAR photoshop[] = { 'p','h','o','t','o','s','h','o','p',0 }
static

Definition at line 807 of file metadataquery.c.

◆ photoshop_scheme

const WCHAR photoshop_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','p','h','o','t','o','s','h','o','p','/','1','.','0','/',0 }
static

Definition at line 808 of file metadataquery.c.

◆ pngW

const WCHAR pngW[] = { 'p','n','g',0 }
static

Definition at line 642 of file metadataquery.c.

◆ rdf

const WCHAR rdf[] = { 'r','d','f',0 }
static

Definition at line 789 of file metadataquery.c.

◆ rdf_scheme

const WCHAR rdf_scheme[] = { 'h','t','t','p',':','/','/','w','w','w','.','w','3','.','o','r','g','/','1','9','9','9','/','0','2','/','2','2','-','r','d','f','-','s','y','n','t','a','x','-','n','s','#',0 }
static

Definition at line 790 of file metadataquery.c.

◆ schema

◆ sRGBW

const WCHAR sRGBW[] = { 's','R','G','B',0 }
static

Definition at line 683 of file metadataquery.c.

◆ stDim

const WCHAR stDim[] = { 's','t','D','i','m',0 }
static

Definition at line 813 of file metadataquery.c.

◆ stDim_scheme

const WCHAR stDim_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','D','i','m','e','n','s','i','o','n','s','#',0 }
static

Definition at line 814 of file metadataquery.c.

◆ stEvt

const WCHAR stEvt[] = { 's','t','E','v','t',0 }
static

Definition at line 817 of file metadataquery.c.

◆ stEvt_scheme

const WCHAR stEvt_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','R','e','s','o','u','r','c','e','E','v','e','n','t','#',0 }
static

Definition at line 818 of file metadataquery.c.

◆ stJob

const WCHAR stJob[] = { 's','t','J','o','b',0 }
static

Definition at line 823 of file metadataquery.c.

◆ stJob_scheme

const WCHAR stJob_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','J','o','b','#',0 }
static

Definition at line 824 of file metadataquery.c.

◆ str

WCHAR str[10]

Definition at line 141 of file metadataquery.c.

Referenced by map_type().

◆ str2vt

const { ... } str2vt[]
Initial value:
=
{
{ 4, {'c','h','a','r'}, VT_I1 },
{ 5, {'u','c','h','a','r'}, VT_UI1 },
{ 5, {'s','h','o','r','t'}, VT_I2 },
{ 6, {'u','s','h','o','r','t'}, VT_UI2 },
{ 4, {'l','o','n','g'}, VT_I4 },
{ 5, {'u','l','o','n','g'}, VT_UI4 },
{ 3, {'i','n','t'}, VT_I4 },
{ 4, {'u','i','n','t'}, VT_UI4 },
{ 8, {'l','o','n','g','l','o','n','g'}, VT_I8 },
{ 9, {'u','l','o','n','g','l','o','n','g'}, VT_UI8 },
{ 5, {'f','l','o','a','t'}, VT_R4 },
{ 6, {'d','o','u','b','l','e'}, VT_R8 },
{ 3, {'s','t','r'}, VT_LPSTR },
{ 4, {'w','s','t','r'}, VT_LPWSTR },
{ 4, {'g','u','i','d'}, VT_CLSID },
{ 4, {'b','o','o','l'}, VT_BOOL }
}
Definition: compat.h:1939
Definition: compat.h:1955
Definition: compat.h:1951
Definition: compat.h:1940
Definition: compat.h:1941
Definition: compat.h:1938

Referenced by map_type().

◆ stRef

const WCHAR stRef[] = { 's','t','R','e','f',0 }
static

Definition at line 819 of file metadataquery.c.

◆ stRef_scheme

const WCHAR stRef_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','R','e','s','o','u','r','c','e','R','e','f','#',0 }
static

Definition at line 820 of file metadataquery.c.

◆ stVer

const WCHAR stVer[] = { 's','t','V','e','r',0 }
static

Definition at line 821 of file metadataquery.c.

◆ stVer_scheme

const WCHAR stVer_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','s','T','y','p','e','/','V','e','r','s','i','o','n','#',0 }
static

Definition at line 822 of file metadataquery.c.

◆ subW

const WCHAR subW[] = { 's','u','b',0 }
static

Definition at line 650 of file metadataquery.c.

◆ tEXtW

const WCHAR tEXtW[] = { 't','E','X','t',0 }
static

Definition at line 664 of file metadataquery.c.

◆ thumbW

const WCHAR thumbW[] = { 't','h','u','m','b',0 }
static

Definition at line 663 of file metadataquery.c.

◆ tiff

const WCHAR tiff[] = { 't','i','f','f',0 }
static

Definition at line 809 of file metadataquery.c.

Referenced by check_tiff_format(), and dump_tiff().

◆ tiff_scheme

const WCHAR tiff_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','t','i','f','f','/','1','.','0','/',0 }
static

Definition at line 810 of file metadataquery.c.

◆ tiffW

const WCHAR tiffW[] = { 't','i','f','f',0 }
static

Definition at line 645 of file metadataquery.c.

◆ tIMEW

const WCHAR tIMEW[] = { 't','I','M','E',0 }
static

Definition at line 684 of file metadataquery.c.

◆ unknownW

const WCHAR unknownW[] = { 'u','n','k','n','o','w','n',0 }
static

Definition at line 648 of file metadataquery.c.

◆ vt

VARTYPE vt

Definition at line 142 of file metadataquery.c.

Referenced by get_token(), and map_type().

◆ wmphotoW

const WCHAR wmphotoW[] = { 'w','m','p','h','o','t','o',0 }
static

Definition at line 647 of file metadataquery.c.

◆ xapGImg

const WCHAR xapGImg[] = { 'x','a','p','G','I','m','g',0 }
static

Definition at line 815 of file metadataquery.c.

◆ xapGImg_scheme

const WCHAR xapGImg_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','g','/','i','m','g','/',0 }
static

Definition at line 816 of file metadataquery.c.

◆ xmp

const WCHAR xmp[] = { 'x','m','p',0 }
static

Definition at line 793 of file metadataquery.c.

◆ xmp_scheme

const WCHAR xmp_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/',0 }
static

Definition at line 794 of file metadataquery.c.

◆ xmpaltW

const WCHAR xmpaltW[] = { 'x','m','p','a','l','t',0 }
static

Definition at line 668 of file metadataquery.c.

◆ xmpbagW

const WCHAR xmpbagW[] = { 'x','m','p','b','a','g',0 }
static

Definition at line 666 of file metadataquery.c.

◆ xmpBJ

const WCHAR xmpBJ[] = { 'x','m','p','B','J',0 }
static

Definition at line 801 of file metadataquery.c.

◆ xmpBJ_scheme

const WCHAR xmpBJ_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','b','j','/',0 }
static

Definition at line 802 of file metadataquery.c.

◆ xmpDM

const WCHAR xmpDM[] = { 'x','m','p','D','M',0 }
static

Definition at line 829 of file metadataquery.c.

◆ xmpDM_scheme

const WCHAR xmpDM_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','m','p','/','1','.','0','/','D','y','n','a','m','i','c','M','e','d','i','a','/',0 }
static

Definition at line 830 of file metadataquery.c.

◆ xmpidq

const WCHAR xmpidq[] = { 'x','m','p','i','d','q',0 }
static

Definition at line 795 of file metadataquery.c.

◆ xmpidq_scheme

const WCHAR xmpidq_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','m','p','/','I','d','e','n','t','i','f','i','e','r','/','q','u','a','l','/','1','.','0','/',0 }
static

Definition at line 796 of file metadataquery.c.

◆ xmpMM

const WCHAR xmpMM[] = { 'x','m','p','M','M',0 }
static

Definition at line 799 of file metadataquery.c.

◆ xmpMM_scheme

const WCHAR xmpMM_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','m','m','/',0 }
static

Definition at line 800 of file metadataquery.c.

◆ xmpRights

const WCHAR xmpRights[] = { 'x','m','p','R','i','g','h','t','s',0 }
static

Definition at line 797 of file metadataquery.c.

◆ xmpRights_scheme

const WCHAR xmpRights_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','r','i','g','h','t','s','/',0 }
static

Definition at line 798 of file metadataquery.c.

◆ xmpseqW

const WCHAR xmpseqW[] = { 'x','m','p','s','e','q',0 }
static

Definition at line 667 of file metadataquery.c.

◆ xmpstructW

const WCHAR xmpstructW[] = { 'x','m','p','s','t','r','u','c','t',0 }
static

Definition at line 665 of file metadataquery.c.

◆ xmpTPg

const WCHAR xmpTPg[] = { 'x','m','p','T','P','g',0 }
static

Definition at line 803 of file metadataquery.c.

◆ xmpTPg_scheme

const WCHAR xmpTPg_scheme[] = { 'h','t','t','p',':','/','/','n','s','.','a','d','o','b','e','.','c','o','m','/','x','a','p','/','1','.','0','/','t','/','p','g','/',0 }
static

Definition at line 804 of file metadataquery.c.

◆ xmpW

const WCHAR xmpW[] = { 'x','m','p',0 }
static

Definition at line 662 of file metadataquery.c.

Referenced by test_WICMapSchemaToName(), and test_WICMapShortNameToGuid().