86 IWICMetadataBlockReader_Release(
This->block);
99 return IWICMetadataBlockReader_GetContainerFormat(
This->block,
format);
117 if (
len < actual_len)
141 { 4, {
'c',
'h',
'a',
'r'},
VT_I1 },
142 { 5, {
'u',
'c',
'h',
'a',
'r'},
VT_UI1 },
143 { 5, {
's',
'h',
'o',
'r',
't'},
VT_I2 },
144 { 6, {
'u',
's',
'h',
'o',
'r',
't'},
VT_UI2 },
145 { 4, {
'l',
'o',
'n',
'g'},
VT_I4 },
146 { 5, {
'u',
'l',
'o',
'n',
'g'},
VT_UI4 },
147 { 3, {
'i',
'n',
't'},
VT_I4 },
148 { 4, {
'u',
'i',
'n',
't'},
VT_UI4 },
149 { 8, {
'l',
'o',
'n',
'g',
'l',
'o',
'n',
'g'},
VT_I8 },
150 { 9, {
'u',
'l',
'o',
'n',
'g',
'l',
'o',
'n',
'g'},
VT_UI8 },
151 { 5, {
'f',
'l',
'o',
'a',
't'},
VT_R4 },
152 { 6, {
'd',
'o',
'u',
'b',
'l',
'e'},
VT_R8 },
156 { 4, {
'b',
'o',
'o',
'l'},
VT_BOOL }
211 TRACE(
"get_token error %#lx\n",
hr);
219 else if (*
start ==
'{')
279 PROPVARIANT next_id, next_schema;
284 hr =
get_token(&next_elem, &next_id, &next_schema, &next_idx);
287 TRACE(
"get_token error %#lx\n",
hr);
317 next_elem.
str =
p + 1;
341 PROPVARIANT next_id, next_schema;
344 hr =
get_token(&next_elem, &next_id, &next_schema, &next_idx);
347 TRACE(
"get_token error %#lx\n",
hr);
352 elem->len += next_elem.
len + 1;
382 hr = IWICMetadataBlockReader_GetCount(block_reader, &
count);
389 hr = IWICMetadataBlockReader_GetReaderByIndex(block_reader,
i, &new_reader);
392 hr = IWICMetadataReader_GetMetadataFormat(new_reader, &
format);
397 if (matched_index ==
index)
407 IWICMetadataReader_Release(new_reader);
423 PropVariantInit(&
id);
424 PropVariantInit(&
value);
438 hr = IUnknown_QueryInterface(
value.punkVal, &IID_IWICMetadataReader, (
void **)new_reader);
453 PROPVARIANT tk_id, tk_schema, new_value;
468 PropVariantInit(&tk_id);
469 PropVariantInit(&tk_schema);
470 PropVariantInit(&new_value);
479 WARN(
"query should start with '/'\n");
492 WARN(
"get_token error %#lx\n",
hr);
496 TRACE(
"id %s, schema %s\n", wine_dbgstr_variant((
VARIANT *)&tk_id), wine_dbgstr_variant((
VARIANT *)&tk_schema));
498 if (!
elem.len)
break;
506 FIXME(
"unsupported schema vt %u\n", tk_schema.
vt);
517 IWICMetadataReader_Release(
reader);
551 hr = IWICMetadataReader_GetMetadataFormat(
reader, &
guid);
571 hr = IWICMetadataReader_GetValue(
reader, &
schema, &
id, &new_value);
582 IWICMetadataReader_Release(
reader);
632 TRACE(
"iface %p, ref %lu.\n", iface,
ref);
642 TRACE(
"iface %p, ref %lu.\n", iface,
ref);
663 TRACE(
"iface %p.\n", iface);
670 FIXME(
"iface %p, count %lu stub.\n", iface,
count);
677 FIXME(
"iface %p, out %p stub.\n", iface,
out);
698 if (!(
object =
calloc(1,
sizeof(*
object))))
704 *enum_string = &
object->IEnumString_iface;
712 TRACE(
"iface %p, enum_string %p.\n", iface, enum_string);
735 obj->IWICMetadataQueryReader_iface.lpVtbl = &
mqr_vtbl;
738 IWICMetadataBlockReader_AddRef(mbr);
743 *
out = &
obj->IWICMetadataQueryReader_iface;
778 IUnknown_AddRef((
IUnknown *)*
object);
790 TRACE(
"writer %p, refcount=%lu\n", writer,
ref);
800 TRACE(
"writer %p, refcount=%lu.\n", writer,
ref);
804 IWICMetadataBlockWriter_Release(writer->
block);
813 FIXME(
"iface %p, container_format %p stub.\n", iface, container_format);
820 TRACE(
"iface %p, enum_string %p.\n", iface, enum_string);
827 FIXME(
"iface %p, max_length %u, namespace %s, actual_length %p stub.\n",
828 iface, max_length,
debugstr_w(
namespace), actual_length);
875 obj->IWICMetadataQueryWriter_iface.lpVtbl = &
mqw_vtbl;
878 IWICMetadataBlockWriter_AddRef(mbw);
883 *
out = &
obj->IWICMetadataQueryWriter_iface;
894 { &GUID_ContainerFormatBmp,
L"bmp" },
895 { &GUID_ContainerFormatPng,
L"png" },
896 { &GUID_ContainerFormatIco,
L"ico" },
897 { &GUID_ContainerFormatJpeg,
L"jpg" },
898 { &GUID_ContainerFormatTiff,
L"tiff" },
899 { &GUID_ContainerFormatGif,
L"gif" },
900 { &GUID_ContainerFormatWmp,
L"wmphoto" },
901 { &GUID_MetadataFormatUnknown,
L"unknown" },
902 { &GUID_MetadataFormatIfd,
L"ifd" },
903 { &GUID_MetadataFormatSubIfd,
L"sub" },
904 { &GUID_MetadataFormatExif,
L"exif" },
905 { &GUID_MetadataFormatGps,
L"gps" },
906 { &GUID_MetadataFormatInterop,
L"interop" },
907 { &GUID_MetadataFormatApp0,
L"app0" },
908 { &GUID_MetadataFormatApp1,
L"app1" },
909 { &GUID_MetadataFormatApp13,
L"app13" },
910 { &GUID_MetadataFormatIPTC,
L"iptc" },
911 { &GUID_MetadataFormatIRB,
L"irb" },
912 { &GUID_MetadataFormat8BIMIPTC,
L"8bimiptc" },
913 { &GUID_MetadataFormat8BIMResolutionInfo,
L"8bimResInfo" },
914 { &GUID_MetadataFormat8BIMIPTCDigest,
L"8bimiptcdigest" },
915 { &GUID_MetadataFormatXMP,
L"xmp" },
916 { &GUID_MetadataFormatThumbnail,
L"thumb" },
917 { &GUID_MetadataFormatChunktEXt,
L"tEXt" },
918 { &GUID_MetadataFormatXMPStruct,
L"xmpstruct" },
919 { &GUID_MetadataFormatXMPBag,
L"xmpbag" },
920 { &GUID_MetadataFormatXMPSeq,
L"xmpseq" },
921 { &GUID_MetadataFormatXMPAlt,
L"xmpalt" },
922 { &GUID_MetadataFormatLSD,
L"logscrdesc" },
923 { &GUID_MetadataFormatIMD,
L"imgdesc" },
924 { &GUID_MetadataFormatGCE,
L"grctlext" },
925 { &GUID_MetadataFormatAPE,
L"appext" },
926 { &GUID_MetadataFormatJpegChrominance,
L"chrominance" },
927 { &GUID_MetadataFormatJpegLuminance,
L"luminance" },
928 { &GUID_MetadataFormatJpegComment,
L"com" },
929 { &GUID_MetadataFormatGifComment,
L"commentext" },
930 { &GUID_MetadataFormatChunkgAMA,
L"gAMA" },
931 { &GUID_MetadataFormatChunkbKGD,
L"bKGD" },
932 { &GUID_MetadataFormatChunkiTXt,
L"iTXt" },
933 { &GUID_MetadataFormatChunkcHRM,
L"cHRM" },
934 { &GUID_MetadataFormatChunkhIST,
L"hIST" },
935 { &GUID_MetadataFormatChunkiCCP,
L"iCCP" },
936 { &GUID_MetadataFormatChunksRGB,
L"sRGB" },
937 { &GUID_MetadataFormatChunktIME,
L"tIME" }
997 {
L"rdf",
L"http://www.w3.org/1999/02/22-rdf-syntax-ns#" },
998 {
L"dc",
L"http://purl.org/dc/elements/1.1/" },
999 {
L"xmp",
L"http://ns.adobe.com/xap/1.0/" },
1000 {
L"xmpidq",
L"http://ns.adobe.com/xmp/Identifier/qual/1.0/" },
1001 {
L"xmpRights",
L"http://ns.adobe.com/xap/1.0/rights/" },
1002 {
L"xmpMM",
L"http://ns.adobe.com/xap/1.0/mm/" },
1003 {
L"xmpBJ",
L"http://ns.adobe.com/xap/1.0/bj/" },
1004 {
L"xmpTPg",
L"http://ns.adobe.com/xap/1.0/t/pg/" },
1005 {
L"pdf",
L"http://ns.adobe.com/pdf/1.3/" },
1006 {
L"photoshop",
L"http://ns.adobe.com/photoshop/1.0/" },
1007 {
L"tiff",
L"http://ns.adobe.com/tiff/1.0/" },
1008 {
L"exif",
L"http://ns.adobe.com/exif/1.0/" },
1009 {
L"stDim",
L"http://ns.adobe.com/xap/1.0/sType/Dimensions#" },
1010 {
L"xapGImg",
L"http://ns.adobe.com/xap/1.0/g/img/" },
1011 {
L"stEvt",
L"http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" },
1012 {
L"stRef",
L"http://ns.adobe.com/xap/1.0/sType/ResourceRef#" },
1013 {
L"stVer",
L"http://ns.adobe.com/xap/1.0/sType/Version#" },
1014 {
L"stJob",
L"http://ns.adobe.com/xap/1.0/sType/Job#" },
1015 {
L"aux",
L"http://ns.adobe.com/exif/1.0/aux/" },
1016 {
L"crs",
L"http://ns.adobe.com/camera-raw-settings/1.0/" },
1017 {
L"xmpDM",
L"http://ns.adobe.com/xmp/1.0/DynamicMedia/" },
1018 {
L"Iptc4xmpCore",
L"http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/" },
1019 {
L"MicrosoftPhoto",
L"http://ns.microsoft.com/photo/1.0/" },
1020 {
L"MP",
L"http://ns.microsoft.com/photo/1.2/" },
1021 {
L"MPRI",
L"http://ns.microsoft.com/photo/1.2/t/RegionInfo#" },
1022 {
L"MPReg",
L"http://ns.microsoft.com/photo/1.2/t/Region#" }
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ERROR_INSUFFICIENT_BUFFER
int next_token(char **, FILE *)
INT WINAPI CompareStringW(LCID lcid, DWORD flags, LPCWSTR str1, INT len1, LPCWSTR str2, INT len2)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc, PROPVAR_CHANGE_FLAGS flags, VARTYPE vt)
GLuint GLuint GLsizei count
GLsizei const GLchar *const * strings
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
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_CONST_RETURN wchar_t *__cdecl wmemchr(_In_reads_(_N) const wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static JOBOBJECTINFOCLASS LPVOID DWORD LPDWORD ret_len
#define LOCALE_SYSTEM_DEFAULT
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
const GUID IID_IEnumString
#define IsEqualGUID(rguid1, rguid2)
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP wchar_t *__cdecl wcsdup(_In_z_ const wchar_t *_Str)
static __inline const char * wine_dbgstr_guid(const GUID *id)
IWICMetadataQueryReader IWICMetadataQueryReader_iface
IWICMetadataBlockReader * block
IWICMetadataQueryWriter IWICMetadataQueryWriter_iface
IWICMetadataBlockWriter * block
IEnumString IEnumString_iface
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define WINCODEC_ERR_WRONGSTATE
#define WINCODEC_ERR_UNEXPECTEDMETADATATYPE
#define WINCODEC_ERR_INVALIDQUERYREQUEST
#define WINCODEC_ERR_PROPERTYNOTSUPPORTED
#define HRESULT_FROM_WIN32(x)
#define DISP_E_TYPEMISMATCH
#define WINCODEC_ERR_INSUFFICIENTBUFFER
#define WINCODEC_ERR_PROPERTYNOTFOUND