70 ISAXContentHandler_AddRef(iface);
93 ISAXLocator *pLocator)
109 const WCHAR *pPrefix,
int nPrefix,
const WCHAR *pUri,
int nUri)
115 const WCHAR *pPrefix,
int nPrefix)
122 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};
138 static const WCHAR version[] = {
'v',
'e',
'r',
's',
'i',
'o',
'n',0};
139 static const WCHAR sku[] = {
's',
'k',
'u',0};
169 WARN(
"Missing version attribute\n");
183 const WCHAR *pNamespaceUri,
int nNamespaceUri,
const WCHAR *pLocalName,
184 int nLocalName,
const WCHAR *pQName,
int nQName, ISAXAttributes *pAttr)
187 static const WCHAR configuration[] = {
'c',
'o',
'n',
'f',
'i',
'g',
'u',
'r',
'a',
't',
'i',
'o',
'n',0};
188 static const WCHAR startup[] = {
's',
't',
'a',
'r',
't',
'u',
'p',0};
189 static const WCHAR supportedRuntime[] = {
's',
'u',
'p',
'p',
'o',
'r',
't',
'e',
'd',
'R',
'u',
'n',
't',
'i',
'm',
'e',0};
195 if (
This->statenum ==
sizeof(
This->states) /
sizeof(
This->states[0]) - 1)
197 ERR(
"file has too much nesting\n");
201 switch (
This->states[
This->statenum])
204 if (nLocalName ==
sizeof(configuration)/
sizeof(
WCHAR)-1 &&
205 lstrcmpW(pLocalName, configuration) == 0)
223 if (nLocalName ==
sizeof(supportedRuntime)/
sizeof(
WCHAR)-1 &&
224 lstrcmpW(pLocalName, supportedRuntime) == 0)
239 FIXME(
"Unknown element %s in state %u\n",
debugstr_wn(pLocalName,nLocalName),
248 const WCHAR *pNamespaceUri,
int nNamespaceUri,
const WCHAR *pLocalName,
249 int nLocalName,
const WCHAR *pQName,
int nQName)
256 if (
This->statenum > 0)
262 ERR(
"element end does not match a start\n");
270 const WCHAR *pChars,
int nChars)
278 const WCHAR *pChars,
int nChars)
328 ISAXErrorHandler_AddRef(iface);
346 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
353 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
360 ISAXLocator * pLocator,
const WCHAR * pErrorMessage,
HRESULT hrErrorCode)
403 hr = ISAXXMLReader_putContentHandler(
reader, &
handler->ISAXContentHandler_iface);
406 hr = ISAXXMLReader_putErrorHandler(
reader, &
handler->ISAXErrorHandler_iface);
411 ISAXXMLReader_Release(
reader);
414 ISAXContentHandler_Release(&
handler->ISAXContentHandler_iface);
static void startup(void)
#define InterlockedIncrement
#define InterlockedDecrement
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)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
static const WCHAR empty[]
#define HeapFree(x, y, z)
static const WCHAR version[]
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
static HRESULT WINAPI ConfigFileHandler_skippedEntity(ISAXContentHandler *iface, const WCHAR *pName, int nName)
static HRESULT WINAPI ConfigFileHandler_processingInstruction(ISAXContentHandler *iface, const WCHAR *pTarget, int nTarget, const WCHAR *pData, int nData)
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 const struct ISAXErrorHandlerVtbl ConfigFileHandlerErrorVtbl
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_file(LPCWSTR filename, parsed_config_file *result)
static ULONG WINAPI ConfigFileHandler_AddRef(ISAXContentHandler *iface)
static HRESULT WINAPI ConfigFileHandler_startDocument(ISAXContentHandler *iface)
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)
void free_parsed_config_file(parsed_config_file *file)
static HRESULT WINAPI ConfigFileHandler_fatalError(ISAXErrorHandler *iface, ISAXLocator *pLocator, const WCHAR *pErrorMessage, HRESULT hrErrorCode)
static HRESULT parse_config(VARIANT input, parsed_config_file *result)
static HRESULT WINAPI ConfigFileHandler_error(ISAXErrorHandler *iface, ISAXLocator *pLocator, const WCHAR *pErrorMessage, HRESULT hrErrorCode)
UINT(* handler)(MSIPACKAGE *)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR lpszPath, DWORD dwMode, IStream **lppStream)
GLenum GLenum GLenum input
#define STGM_SHARE_DENY_WRITE
@ COINIT_APARTMENTTHREADED
#define IsEqualGUID(rguid1, rguid2)
#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
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject