133 if (ret_read) *ret_read =
read;
148 TRACE(
"(%p)->(%ld %ld %p)\n",
This, dlibMove.
u.LowPart, dwOrigin, pNewPos);
155 TRACE(
"(%p)->(%ld)\n",
This, libNewSize.
u.LowPart);
185 TRACE(
"(%p,%ld,%ld,%ld)\n",
This, libOffset.
u.LowPart,
cb.u.LowPart, dwLockType);
192 FIXME(
"(%p,%p,%ld)\n",
This, lpStat, grfStatFlag);
234 config_stream =
malloc(
sizeof(*config_stream));
242 config_stream->
ref = 1;
265 *ppvObject = &
This->ISAXContentHandler_iface;
267 *ppvObject = &
This->ISAXErrorHandler_iface;
274 IUnknown_AddRef((
IUnknown*)*ppvObject);
297 ISAXLocator *pLocator)
313 const WCHAR *pPrefix,
int nPrefix,
const WCHAR *pUri,
int nUri)
319 const WCHAR *pPrefix,
int nPrefix)
326 static const WCHAR legacy[] = {
'u',
's',
'e',
'L',
'e',
'g',
'a',
'c',
'y',
'V',
'2',
'R',
'u',
'n',
't',
'i',
'm',
'e',
'A',
'c',
't',
'i',
'v',
'a',
't',
'i',
'o',
'n',
'P',
'o',
'l',
'i',
'c',
'y',0};
342 static const WCHAR privatePath[] = {
'p',
'r',
'i',
'v',
'a',
't',
'e',
'P',
'a',
't',
'h',0};
348 hr = ISAXAttributes_getValueFromName(pAttr,
empty, 0, privatePath,
lstrlenW(privatePath), &
value, &value_size);
354 if (!
This->result->private_path)
364 static const WCHAR version[] = {
'v',
'e',
'r',
's',
'i',
'o',
'n',0};
365 static const WCHAR sku[] = {
's',
'k',
'u',0};
394 WARN(
"Missing version attribute\n");
408 const WCHAR *pNamespaceUri,
int nNamespaceUri,
const WCHAR *pLocalName,
412 static const WCHAR configuration[] = {
'c',
'o',
'n',
'f',
'i',
'g',
'u',
'r',
'a',
't',
'i',
'o',
'n',0};
413 static const WCHAR assemblyBinding[] = {
'a',
's',
's',
'e',
'm',
'b',
'l',
'y',
'B',
'i',
'n',
'd',
'i',
'n',
'g',0};
414 static const WCHAR probing[] = {
'p',
'r',
'o',
'b',
'i',
'n',
'g',0};
415 static const WCHAR runtime[] = {
'r',
'u',
'n',
't',
'i',
'm',
'e',0};
416 static const WCHAR startup[] = {
's',
't',
'a',
'r',
't',
'u',
'p',0};
417 static const WCHAR supportedRuntime[] = {
's',
'u',
'p',
'p',
'o',
'r',
't',
'e',
'd',
'R',
'u',
'n',
't',
'i',
'm',
'e',0};
426 ERR(
"file has too much nesting\n");
430 switch (
This->states[
This->statenum])
433 if (nLocalName ==
ARRAY_SIZE(configuration) - 1 &&
wcscmp(pLocalName, configuration) == 0)
447 else if (nLocalName ==
ARRAY_SIZE(runtime) - 1 &&
wcscmp(pLocalName, runtime) == 0)
455 if (nLocalName ==
ARRAY_SIZE(assemblyBinding) - 1 &&
456 wcscmp(pLocalName, assemblyBinding) == 0)
464 if (nLocalName ==
ARRAY_SIZE(probing) - 1 &&
wcscmp(pLocalName, probing) == 0)
473 if (nLocalName ==
ARRAY_SIZE(supportedRuntime) - 1 &&
474 wcscmp(pLocalName, supportedRuntime) == 0)
489 TRACE(
"Unknown element %s in state %u\n",
debugstr_wn(pLocalName,nLocalName),
498 const WCHAR *pNamespaceUri,
int nNamespaceUri,
const WCHAR *pLocalName,
499 int nLocalName,
const WCHAR *pQName,
int nQName)
506 if (
This->statenum > 0)
512 ERR(
"element end does not match a start\n");
520 const WCHAR *pChars,
int nChars)
528 const WCHAR *pChars,
int nChars)
568 return ISAXContentHandler_QueryInterface(&
This->ISAXContentHandler_iface,
riid, ppvObject);
574 return ISAXContentHandler_AddRef(&
This->ISAXContentHandler_iface);
580 return ISAXContentHandler_Release(&
This->ISAXContentHandler_iface);
584 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
591 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
598 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
642 hr = ISAXXMLReader_putContentHandler(
reader, &
handler->ISAXContentHandler_iface);
645 hr = ISAXXMLReader_putErrorHandler(
reader, &
handler->ISAXErrorHandler_iface);
650 ISAXXMLReader_Release(
reader);
653 ISAXContentHandler_Release(&
handler->ISAXContentHandler_iface);
static void startup(void)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define COR_E_FILENOTFOUND
#define COR_E_NULLREFERENCE
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(void *reserved, DWORD model)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
static const WCHAR empty[1]
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
static const WCHAR version[]
static HRESULT WINAPI ConfigFileHandler_skippedEntity(ISAXContentHandler *iface, const WCHAR *pName, int nName)
static ULONG WINAPI ConfigStream_Release(IStream *iface)
static HRESULT WINAPI ConfigFileHandler_processingInstruction(ISAXContentHandler *iface, const WCHAR *pTarget, int nTarget, const WCHAR *pData, int nData)
static ULONG WINAPI ConfigStream_AddRef(IStream *iface)
static HRESULT WINAPI ConfigStream_Read(IStream *iface, void *buf, ULONG size, ULONG *ret_read)
static HRESULT WINAPI ConfigFileHandler_ignorableWarning(ISAXErrorHandler *iface, ISAXLocator *pLocator, const WCHAR *pErrorMessage, HRESULT hrErrorCode)
static ConfigFileHandler * impl_from_ISAXContentHandler(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigFileHandler_endDocument(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigFileHandler_endPrefixMapping(ISAXContentHandler *iface, const WCHAR *pPrefix, int nPrefix)
static HRESULT WINAPI ConfigStream_Seek(IStream *iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *pNewPos)
static const struct ISAXErrorHandlerVtbl ConfigFileHandlerErrorVtbl
static HRESULT WINAPI ConfigStream_Stat(IStream *iface, STATSTG *lpStat, DWORD grfStatFlag)
static HRESULT WINAPI ConfigStream_Write(IStream *iface, const void *buf, ULONG size, ULONG *written)
static HRESULT WINAPI ConfigStream_CopyTo(IStream *iface, IStream *stream, ULARGE_INTEGER size, ULARGE_INTEGER *read, ULARGE_INTEGER *written)
static HRESULT WINAPI ConfigStream_Commit(IStream *iface, DWORD flags)
static HRESULT WINAPI ConfigFileHandler_QueryInterface(ISAXContentHandler *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ConfigFileHandler_ignorableWhitespace(ISAXContentHandler *iface, const WCHAR *pChars, int nChars)
static const struct ISAXContentHandlerVtbl ConfigFileHandlerVtbl
HRESULT parse_config_stream(IStream *stream, parsed_config_file *result)
HRESULT WINAPI CreateConfigStream(const WCHAR *filename, IStream **stream)
HRESULT parse_config_file(LPCWSTR filename, parsed_config_file *result)
static ULONG WINAPI ConfigFileHandler_AddRef(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigStream_Revert(IStream *iface)
static HRESULT WINAPI ConfigFileHandler_startDocument(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigStream_Clone(IStream *iface, IStream **ppstm)
static HRESULT parse_startup(ConfigFileHandler *This, ISAXAttributes *pAttr)
static ULONG WINAPI ConfigFileHandler_Error_Release(ISAXErrorHandler *iface)
static HRESULT WINAPI ConfigFileHandler_putDocumentLocator(ISAXContentHandler *iface, ISAXLocator *pLocator)
static HRESULT WINAPI ConfigFileHandler_startElement(ISAXContentHandler *iface, const WCHAR *pNamespaceUri, int nNamespaceUri, const WCHAR *pLocalName, int nLocalName, const WCHAR *pQName, int nQName, ISAXAttributes *pAttr)
static void init_config(parsed_config_file *config)
static ULONG WINAPI ConfigFileHandler_Error_AddRef(ISAXErrorHandler *iface)
static HRESULT parse_supported_runtime(ConfigFileHandler *This, ISAXAttributes *pAttr)
static HRESULT WINAPI ConfigFileHandler_endElement(ISAXContentHandler *iface, const WCHAR *pNamespaceUri, int nNamespaceUri, const WCHAR *pLocalName, int nLocalName, const WCHAR *pQName, int nQName)
static ULONG WINAPI ConfigFileHandler_Release(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigFileHandler_Error_QueryInterface(ISAXErrorHandler *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI ConfigFileHandler_startPrefixMapping(ISAXContentHandler *iface, const WCHAR *pPrefix, int nPrefix, const WCHAR *pUri, int nUri)
static ConfigFileHandler * impl_from_ISAXErrorHandler(ISAXErrorHandler *iface)
static HRESULT WINAPI ConfigFileHandler_characters(ISAXContentHandler *iface, const WCHAR *pChars, int nChars)
static HRESULT WINAPI ConfigStream_LockUnlockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
void free_parsed_config_file(parsed_config_file *file)
static HRESULT WINAPI ConfigStream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize)
static ConfigStream * impl_from_IStream(IStream *iface)
static HRESULT WINAPI ConfigStream_QueryInterface(IStream *iface, REFIID riid, void **ppv)
static HRESULT WINAPI ConfigFileHandler_fatalError(ISAXErrorHandler *iface, ISAXLocator *pLocator, const WCHAR *pErrorMessage, HRESULT hrErrorCode)
static HRESULT parse_probing(ConfigFileHandler *This, ISAXAttributes *pAttr)
static HRESULT parse_config(VARIANT input, parsed_config_file *result)
static const IStreamVtbl ConfigStreamVtbl
static HRESULT WINAPI ConfigFileHandler_error(ISAXErrorHandler *iface, ISAXLocator *pLocator, const WCHAR *pErrorMessage, HRESULT hrErrorCode)
UINT(* handler)(MSIPACKAGE *)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static wchar_t * wcsdup(const wchar_t *str)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLenum input
#define ERROR_FILE_NOT_FOUND
@ COINIT_APARTMENTTHREADED
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
parsed_config_file * result
ISAXContentHandler ISAXContentHandler_iface
enum parse_state states[16]
ISAXErrorHandler ISAXErrorHandler_iface
struct _ULARGE_INTEGER::@4458 u
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
struct _LARGE_INTEGER::@2464 u
DWORD WINAPI GetLastError(void)
static HRESULT HRESULT_FROM_WIN32(unsigned int x)