diff --git a/ATL90/License.txt b/ATL90/License.txt deleted file mode 100644 index 220c3fe..0000000 --- a/ATL90/License.txt +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Limited Permissive License (Ms-LPL) - -This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. - -1. Definitions -The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law. -A “contribution” is the original software, or any additions or changes to the software. -A “contributor” is any person that distributes its contribution under this license. -“Licensed patents” are a contributor’s patent claims that read directly on its contribution. - -2. Grant of Rights -(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. -(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. - -3. Conditions and Limitations -(A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. -(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. -(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. -(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. -(E) The software is licensed “as-is.” You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. -(F) Platform Limitation- The licenses granted in sections 2(A) & 2(B) extend only to the software or derivative works that you create that run on a Microsoft Windows operating system product. diff --git a/ATL90/include/atlcache.h b/ATL90/include/atlcache.h deleted file mode 100644 index 7eacf9a..0000000 --- a/ATL90/include/atlcache.h +++ /dev/null @@ -1,3246 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLCACHE_H__ -#define __ATLCACHE_H__ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#pragma warning (push) -#ifndef _ATL_NO_PRAGMA_WARNINGS -#pragma warning(disable: 4511) // copy constructor could not be generated -#pragma warning(disable: 4512) // assignment operator could not be generated -#endif //!_ATL_NO_PRAGMA_WARNINGS - -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible - -#ifndef _CPPUNWIND -#pragma warning(disable: 4702) // unreachable code -#endif -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -//forward declarations; -class CStdStatClass; -class CPerfStatClass; - -typedef struct __CACHEITEM -{ -} *HCACHEITEM; - -//Implementation of a cache that stores pointers to void -extern "C" __declspec(selectany) const IID IID_IMemoryCacheClient = {0xb721b49d, 0xbb57, 0x47bc, { 0xac, 0x43, 0xa8, 0xd4, 0xc0, 0x7d, 0x18, 0x3d } }; -extern "C" __declspec(selectany) const IID IID_IMemoryCache = { 0x9c6cfb46, 0xfbde, 0x4f8b, { 0xb9, 0x44, 0x2a, 0xa0, 0x5d, 0x96, 0xeb, 0x5c } }; -extern "C" __declspec(selectany) const IID IID_IMemoryCacheControl = { 0x7634b28b, 0xd819, 0x409d, { 0xb9, 0x6e, 0xfc, 0x9f, 0x3a, 0xba, 0x32, 0x9f } }; -extern "C" __declspec(selectany) const IID IID_IMemoryCacheStats = { 0xd4b6df2d, 0x4bc0, 0x4734, { 0x8a, 0xce, 0xb7, 0x3a, 0xb, 0x97, 0x59, 0x56 } }; - -__interface ATL_NO_VTABLE __declspec(uuid("b721b49d-bb57-47bc-ac43-a8d4c07d183d")) - IMemoryCacheClient : public IUnknown -{ - // IMemoryCacheClient methods - STDMETHOD( Free )(const void *pvData); -}; - -__interface ATL_NO_VTABLE __declspec(uuid("9c6cfb46-fbde-4f8b-b944-2aa05d96eb5c")) - IMemoryCache : public IUnknown -{ - // IMemoryCache Methods - STDMETHOD(Add)(LPCSTR szKey, void *pvData, DWORD dwSize, - FILETIME *pftExpireTime, - HINSTANCE hInstClient, HCACHEITEM *phEntry, - IMemoryCacheClient *pClient); - - STDMETHOD(LookupEntry)(LPCSTR szKey, HCACHEITEM * phEntry); - STDMETHOD(GetData)(const HCACHEITEM hEntry, void **ppvData, DWORD *pdwSize) const; - STDMETHOD(ReleaseEntry)(const HCACHEITEM hEntry); - STDMETHOD(RemoveEntry)(const HCACHEITEM hEntry); - STDMETHOD(RemoveEntryByKey)(LPCSTR szKey); - - STDMETHOD(Flush)(); -}; - -__interface ATL_NO_VTABLE __declspec(uuid("7634b28b-d819-409d-b96e-fc9f3aba329f")) - IMemoryCacheControl : public IUnknown -{ - // IMemoryCacheControl Methods - STDMETHOD(SetMaxAllowedSize)(DWORD dwSize); - STDMETHOD(GetMaxAllowedSize)(DWORD *pdwSize); - STDMETHOD(SetMaxAllowedEntries)(DWORD dwSize); - STDMETHOD(GetMaxAllowedEntries)(DWORD *pdwSize); - STDMETHOD(ResetCache)(); -}; - -__interface ATL_NO_VTABLE __declspec(uuid("d4b6df2d-4bc0-4734-8ace-b73a0b975956")) - IMemoryCacheStats : public IUnknown -{ - // IMemoryCacheStats Methods - STDMETHOD(ClearStats)(); - STDMETHOD(GetHitCount)(DWORD *pdwSize); - STDMETHOD(GetMissCount)(DWORD *pdwSize); - STDMETHOD(GetCurrentAllocSize)(DWORD *pdwSize); - STDMETHOD(GetMaxAllocSize)(DWORD *pdwSize); - STDMETHOD(GetCurrentEntryCount)(DWORD *pdwSize); - STDMETHOD(GetMaxEntryCount)(DWORD *pdwSize); - -}; - -struct DLL_CACHE_ENTRY -{ - HINSTANCE hInstDll; - DWORD dwRefs; - BOOL bAlive; - CHAR szDllName[MAX_PATH]; -}; - -inline bool operator==(const DLL_CACHE_ENTRY& entry1, const DLL_CACHE_ENTRY& entry2) -{ - return (entry1.hInstDll == entry2.hInstDll); -} - -// -// IDllCache -// An interface that is used to load and unload Dlls. -// -__interface ATL_NO_VTABLE __declspec(uuid("A12478AB-D261-42f9-B525-7589143C1C97")) - IDllCache : public IUnknown -{ - // IDllCache methods - virtual HINSTANCE Load(LPCSTR szFileName, void *pPeerInfo); - virtual BOOL Free(HINSTANCE hInstance); - virtual BOOL AddRefModule(HINSTANCE hInstance); - virtual BOOL ReleaseModule(HINSTANCE hInstance); - virtual HRESULT GetEntries(DWORD dwCount, DLL_CACHE_ENTRY *pEntries, DWORD *pdwCopied); - virtual HRESULT Flush(); -}; - -#ifndef ATL_CACHE_KEY_LENGTH -#define ATL_CACHE_KEY_LENGTH 128 -#endif - -typedef CFixedStringT CFixedStringKey; - -struct CFlusherCacheData -{ - CFlusherCacheData *pNext; - CFlusherCacheData *pPrev; - DWORD dwAccessed; - - CFlusherCacheData() - { - pNext = NULL; - pPrev = NULL; - dwAccessed = 0; - } -}; - -// No flusher -- only expired entries will be removed from the cache -// Also gives the skeleton for all of the flushers -class CNoFlusher -{ -public: - void Add(CFlusherCacheData * /*pItem*/) { } - void Remove(CFlusherCacheData * /*pItem*/) { } - void Access(CFlusherCacheData * /*pItem*/) { } - CFlusherCacheData * GetStart() const { return NULL; } - CFlusherCacheData * GetNext(CFlusherCacheData * /*pCur*/) const { return NULL; } - void Release(CFlusherCacheData * /*pItem*/){ } -}; - -// Old flusher -- oldest items are flushed first -class COldFlusher -{ -public: - CFlusherCacheData * pHead; - CFlusherCacheData * pTail; - - COldFlusher() : pHead(NULL), pTail(NULL) - { - } - - // Add it to the tail of the list - void Add(CFlusherCacheData * pItem) - { - ATLENSURE(pItem); - - pItem->pNext = NULL; - pItem->pPrev = pTail; - if (pHead) - { - pTail->pNext = pItem; - pTail = pItem; - } - else - { - pHead = pItem; - pTail = pItem; - } - } - - void Remove(CFlusherCacheData * pItem) - { - ATLENSURE(pItem); - - CFlusherCacheData * pPrev = pItem->pPrev; - CFlusherCacheData * pNext = pItem->pNext; - - if (pPrev) - pPrev->pNext = pNext; - else - pHead = pNext; - - if (pNext) - pNext->pPrev = pPrev; - else - pTail = pPrev; - - } - - void Access(CFlusherCacheData * /*pItem*/) - { - } - - void Release(CFlusherCacheData * /*pItem*/) - { - } - - CFlusherCacheData * GetStart() const - { - return pHead; - } - - CFlusherCacheData * GetNext(CFlusherCacheData * pCur) const - { - if (pCur != NULL) - return pCur->pNext; - else - return NULL; - } -}; - -// Least recently used flusher -- the item that was accessed the longest time ago is flushed -class CLRUFlusher : public COldFlusher -{ -public: - // Move it to the tail of the list - void Access(CFlusherCacheData * pItem) - { - ATLASSERT(pItem); - - Remove(pItem); - Add(pItem); - } -}; - -// Least often used flusher -class CLOUFlusher : public COldFlusher -{ -public: - // Adds to the tail of the list - void Add(CFlusherCacheData * pItem) - { - ATLENSURE(pItem); - pItem->dwAccessed = 1; - COldFlusher::Add(pItem); - } - - void Access(CFlusherCacheData * pItem) - { - ATLENSURE(pItem); - pItem->dwAccessed++; - - CFlusherCacheData * pMark = static_cast(pItem->pPrev); - if (!pMark) // The item is already at the head - return; - - if (pMark->dwAccessed >= pItem->dwAccessed) // The element before it has - return; // been accessed more times - - Remove(pItem); - - while (pMark && (pMark->dwAccessed < pItem->dwAccessed)) - pMark = static_cast(pMark->pPrev); - - // pMark points to the first element that has been accessed more times, - // so add pItem after pMark - if (pMark) - { - CFlusherCacheData *pNext = static_cast(pMark->pNext); - pMark->pNext = pItem; - pItem->pPrev = pMark; - - pItem->pNext = pNext; - pNext->pPrev = pItem; - } - else // Ran out of items -- put it on the head - { - pItem->pNext = pHead; - pItem->pPrev = NULL; - if (pHead) - pHead->pPrev = pItem; - else // the list was empty - pTail = pItem; - pHead = pItem; - } - } - - // We start at the tail and move forward for this flusher - CFlusherCacheData * GetStart() const - { - return pTail; - } - - CFlusherCacheData * GetNext(CFlusherCacheData * pCur) const - { - if (pCur != NULL) - return static_cast(pCur->pPrev); - else - return NULL; - } -}; - -template -class COrFlushers -{ - CFirst m_First; - CSecond m_Second; - BOOL m_bWhich; -public: - COrFlushers() - { - m_bWhich = FALSE; - } - - BOOL Switch() - { - m_bWhich = !m_bWhich; - return m_bWhich; - } - - void Add(CFlusherCacheData * pItem) - { - ATLASSERT(pItem); - m_First.Add(pItem); - m_Second.Add(pItem); - } - - void Remove(CFlusherCacheData * pItem) - { - ATLASSERT(pItem); - m_First.Remove(pItem); - m_Second.Remove(pItem); - } - - void Access(CFlusherCacheData * pItem) - { - ATLASSERT(pItem); - m_First.Access(pItem); - m_Second.Access(pItem); - } - void Release(CFlusherCacheData * pItem) - { - ATLASSERT(pItem); - m_First.Release(pItem); - m_Second.Release(pItem); - } - - CFlusherCacheData * GetStart() const - { - if (m_bWhich) - return m_First.GetStart(); - else - return m_Second.GetStart(); - } - - CFlusherCacheData * GetNext(CFlusherCacheData * pCur) const - { - if (m_bWhich) - return m_First.GetNext(pCur); - else - return m_Second.GetNext(pCur); - } -}; - -struct CCullerCacheData -{ - CCullerCacheData() - { - pNext = NULL; - pPrev = NULL; - nLifespan = 0; - } - CCullerCacheData *pNext; - CCullerCacheData *pPrev; - ULONGLONG nLifespan; - CFileTime cftExpireTime; -}; - -class CNoExpireCuller -{ -public: - void Add(CCullerCacheData * /*pItem*/) { } - void Commit(CCullerCacheData * /*pItem*/) { } - void Access(CCullerCacheData * /*pItem*/) { } - void Remove(CCullerCacheData * /*pItem*/) { } - void Start() { } - BOOL IsExpired(CCullerCacheData * /*pItem*/) { return FALSE; } - CCullerCacheData * GetExpired() { return NULL; } - void Release(CCullerCacheData * /*pItem*/){} - -}; - -class CExpireCuller -{ -public: - CFileTime m_cftCurrent; - CCullerCacheData *pHead; - CCullerCacheData *pTail; - - CExpireCuller() - { - pHead = NULL; - pTail = NULL; - } - - // Element is being added -- perform necessary initialization - void Add(CCullerCacheData * pItem) - { - (pItem); - ATLASSERT(pItem); - } - - // Expiration data has been set -- add to main list - // Head is the first item to expire - // a FILETIME of 0 indicates that the item should never expire - void Commit(CCullerCacheData * pItem) - { - ATLENSURE(pItem); - if (!pHead) - { - pHead = pItem; - pTail = pItem; - pItem->pNext = NULL; - pItem->pPrev = NULL; - return; - } - - if (CFileTime(pItem->cftExpireTime) == 0) - { - pTail->pNext = pItem; - pItem->pPrev = pTail; - pItem->pNext = NULL; - pTail = pItem; - return; - } - - CCullerCacheData * pMark = pHead; - while (pMark && (pMark->cftExpireTime < pItem->cftExpireTime)) - pMark = pMark->pNext; - - if (pMark) // An entry was found that expires after the added entry - { - CCullerCacheData *pPrev = pMark->pPrev; - if (pPrev) - pPrev->pNext = pItem; - else - pHead = pItem; - - pItem->pNext = pMark; - pItem->pPrev = pPrev; - pMark->pPrev = pItem; - } - else // Ran out of items -- put it on the tail - { - if (pTail) - pTail->pNext = pItem; - pItem->pPrev = pTail; - pItem->pNext = NULL; - pTail = pItem; - } - } - - void Access(CCullerCacheData * /*pItem*/) - { - } - - void Release(CCullerCacheData * /*pItem*/) - { - } - - void Remove(CCullerCacheData * pItem) - { - ATLENSURE(pItem); - CCullerCacheData *pPrev = pItem->pPrev; - CCullerCacheData *pNext = pItem->pNext; - - if (pPrev) - pPrev->pNext = pNext; - else - pHead = pNext; - - if (pNext) - pNext->pPrev = pPrev; - else - pTail = pPrev; - - } - - // About to start culling - void Start() - { - m_cftCurrent = CFileTime::GetCurrentTime(); - } - - BOOL IsExpired(CCullerCacheData *pItem) - { - if ((pItem->cftExpireTime != 0) && - m_cftCurrent > pItem->cftExpireTime) - return TRUE; - - return FALSE; - } - - // Get the next expired entry - CCullerCacheData * GetExpired() - { - if (!pHead) - return NULL; - if (IsExpired(pHead)) - return pHead; - - return NULL; - } -}; - -class CLifetimeCuller : public CExpireCuller -{ -public: - void Add(CCullerCacheData * pItem) - { - ATLENSURE(pItem); - pItem->nLifespan = 0; - CExpireCuller::Add(pItem); - } - - void Commit(CCullerCacheData * pItem) - { - ATLENSURE(pItem); - if (pItem->nLifespan == 0) - pItem->cftExpireTime = 0; - else - pItem->cftExpireTime = CFileTime(CFileTime::GetCurrentTime().GetTime() + pItem->nLifespan); - CExpireCuller::Commit(pItem); - } - - void Access(CCullerCacheData * pItem) - { - ATLASSERT(pItem); - CExpireCuller::Remove(pItem); - Commit(pItem); - } - - CCullerCacheData * GetExpired() - { - return static_cast(CExpireCuller::GetExpired()); - } -}; - -template <__int64 ftLifespan> -class CFixedLifetimeCuller : public CExpireCuller -{ -public: - void Commit(CCullerCacheData * pItem) - { - ATLASSERT(pItem); - __int64 nLifeSpan = ftLifespan; - if (nLifeSpan == 0) - pItem->cftExpireTime = 0; - else - pItem->cftExpireTime = CFileTime::GetCurrentTime() + CFileTimeSpan(ftLifespan); - - CExpireCuller::Commit(pItem); - } - - void Access(CCullerCacheData * pItem) - { - ATLASSERT(pItem); - CExpireCuller::Remove(pItem); - Commit(pItem); - } - - CCullerCacheData * GetExpired() - { - return static_cast(CExpireCuller::GetExpired()); - } -}; - - -template -class COrCullers -{ - CFirst m_First; - CSecond m_Second; -public: - void Add(CCullerCacheData * pItem) - { - m_First.Add(pItem); - m_Second.Add(pItem); - } - - void Access(CCullerCacheData * pItem) - { - m_First.Access(pItem); - m_Second.Access(pItem); - } - - void Remove(CCullerCacheData * pItem) - { - m_First.Remove(pItem); - m_Second.Remove(pItem); - } - - void Start() - { - m_First.Start(); - m_Second.Start(); - } - - void Release(CCullerCacheData *pItem) - { - m_First.Release(pItem); - m_Second.Release(pItem); - } - - void Commit(CCullerCacheData * pItem) - { - m_First.Commit(pItem); - m_Second.Commit(pItem); - } - CCullerCacheData * GetExpired() - { - CCullerCacheData *pItem = m_First.GetExpired(); - if (!pItem) - pItem = m_Second.GetExpired(); - - return pItem; - } - - BOOL IsExpired(CCullerCacheData * pItem) - { - return (m_First.IsExpired(pItem) || m_Second.IsExpired(pItem)); - } -}; - -// -//CMemoryCacheBase -// Description: -// This class provides the implementation of a generic cache that stores -// elements in memory. CMemoryCacheBase uses the CCacheDataBase generic -// cache element structure to hold items in the cache. The cache is -// implemented using the CAtlMap map class. CMemoryCache uses a wide -// character string as it's Key type to identify entries. Entries must -// have unique key values. If you try to add an entry with a key that -// is exactly the same as an existing key, the existing entry will be -// overwritten. -// -// Template Parameters: -// T: The class that inherits from this class. This class must implement -// void OnDestroyEntry(NodeType *pEntry); -// DataType: Specifies the type of the element to be stored in the memory -// cache such as CString or void* -// NodeInfo: Specifies any additional data that should be stored in each item -// in the cache -// keyType, keyTrait : specifies the key type and traits (see CAtlMap) -// Flusher : the class responsible for determining which data should be flushed -// when the cache is at a configuration limit -// Culler : the class responsible for determining which data should be removed -// from the cache due to expiration -// SyncClass:Specifies the class that will be used for thread synchronization -// when accessing the cache. The class interface for SyncClass must -// be identical to that of CComCriticalSection (see atlbase.h) -// StatClass: Class used to contain statistics about this cache. -template , - class Flusher=COldFlusher, - class Culler=CExpireCuller, - class SyncClass=CComCriticalSection, - class StatClass=CStdStatClass > - class CMemoryCacheBase -{ -protected: - typedef keyType keytype; - struct NodeType : public __CACHEITEM, - public NodeInfo, - public CFlusherCacheData, - public CCullerCacheData - { - NodeType() - { - pos = NULL; - dwSize = 0; - dwRef = 0; - } - - DataType Data; - POSITION pos; - DWORD dwSize; - DWORD dwRef; - }; - - typedef CAtlMap mapType; - SyncClass m_syncObj; - StatClass m_statObj; - Flusher m_flusher; - Culler m_culler; - - //memory cache configuration parameters - DWORD m_dwMaxAllocationSize; - DWORD m_dwMaxEntries; - - BOOL m_bInitialized; -public: - - mapType m_hashTable; - CMemoryCacheBase() : - m_dwMaxAllocationSize(0xFFFFFFFF), - m_dwMaxEntries(0xFFFFFFFF), - m_bInitialized(FALSE) - { - - } - - //Initializes the cache and the cache synchronization object - //Also the performance monitoring - HRESULT Initialize() - { - if (m_bInitialized) - return HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED); - HRESULT hr; - hr = m_syncObj.Init(); - - if (hr == S_OK) - hr = m_statObj.Initialize(); - - m_bInitialized = TRUE; - - return hr; - } - - //removes all entries whether or not they are initialized. - HRESULT Uninitialize() - { - if (!m_bInitialized) - return S_OK; - - //clear out the hash table - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return hr; - - RemoveAllEntries(); - m_statObj.Uninitialize(); - - m_syncObj.Unlock(); - m_syncObj.Term(); - - m_bInitialized = FALSE; - - return S_OK; - } - - //Adds an entry to the cache. - //Also, adds an initial reference on the entry if phEntry is not NULL - HRESULT AddEntry( - const keyType &Key, //key for entry - const DataType &data, //See the DataType template parameter - DWORD dwSize, //Size of memory to be stored in the cache - HCACHEITEM *phEntry = NULL //out pointer that will contain a handle to the new - //cache entry on success. - ) - { - _ATLTRY - { - ATLASSUME(m_bInitialized); - - CAutoPtr spEntry(new NodeType); - - if (!spEntry) - return E_OUTOFMEMORY; - - NodeType *pEntry = spEntry; - - //fill entry - if (phEntry) - { - *phEntry = static_cast(pEntry); - pEntry->dwRef++; - } - pEntry->Data = data; - pEntry->dwSize = dwSize; - - CComCritSecLock lock(m_syncObj, false); - - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - { - return hr; - } - - POSITION pos = (POSITION)m_hashTable.Lookup(Key); - - if (pos != NULL) - { - RemoveAt(pos, FALSE); - m_hashTable.GetValueAt(pos) = pEntry; - } - else - { - pos = m_hashTable.SetAt(Key, pEntry); - } - spEntry.Detach(); - - pEntry->pos = pos; - m_statObj.AddElement(dwSize); - m_flusher.Add(pEntry); - m_culler.Add(pEntry); - - lock.Unlock(); - - if (!phEntry) - return CommitEntry(static_cast(pEntry)); - - return S_OK; - } - _ATLCATCHALL() - { - return E_FAIL; - } - } - - // Commits the entry to the cache - HRESULT CommitEntry(const HCACHEITEM hEntry) - { - ATLASSUME(m_bInitialized); - if (!hEntry || hEntry == INVALID_HANDLE_VALUE) - return E_INVALIDARG; - - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - { - return hr; - } - - NodeType *pEntry = static_cast(hEntry); - m_culler.Commit(pEntry); - m_syncObj.Unlock(); - return S_OK; - } - - // Looks up an entry and returns a handle to it, - // also updates access count and reference count - HRESULT LookupEntry(const keyType &Key, HCACHEITEM * phEntry) - { - ATLASSUME(m_bInitialized); - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - { - return hr; - } - - hr = E_FAIL; - - POSITION pos = (POSITION)m_hashTable.Lookup(Key); - if (pos != NULL) - { - NodeType * pEntry = m_hashTable.GetValueAt(pos); - m_flusher.Access(pEntry); - m_culler.Access(pEntry); - if (phEntry) - { - pEntry->dwRef++; - *phEntry = static_cast(pEntry); - } - - m_statObj.Hit(); - - hr = S_OK; - } - else - { - *phEntry = NULL; - m_statObj.Miss(); - } - m_syncObj.Unlock(); - - return hr; - } - - // Gets the data based on the handle. Is thread-safe as long as there is a - // reference on the data - HRESULT GetEntryData(const HCACHEITEM hEntry, DataType *pData, DWORD *pdwSize) const - { - ATLASSUME(m_bInitialized); - ATLASSERT(pData != NULL || pdwSize != NULL); // At least one should not be NULL - - if (!hEntry || hEntry == INVALID_HANDLE_VALUE) - return E_INVALIDARG; - - NodeType * pEntry = static_cast(hEntry); - if (pData) - *pData = pEntry->Data; - if (pdwSize) - *pdwSize = pEntry->dwSize; - - return S_OK; - } - - // Unreferences the entry based on the handle - DWORD ReleaseEntry(const HCACHEITEM hEntry) - { - ATLASSUME(m_bInitialized); - if (!hEntry || hEntry == INVALID_HANDLE_VALUE) - return (DWORD)-1; - - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return (DWORD)-1; - - NodeType * pEntry = static_cast(hEntry); - m_flusher.Release(pEntry); - m_culler.Release(pEntry); - ATLASSERT(pEntry->dwRef > 0); - - DWORD dwRef = --pEntry->dwRef; - if ((pEntry->pos == NULL) && (pEntry->dwRef == 0)) - InternalRemoveEntry(pEntry); - - m_syncObj.Unlock(); - - return dwRef; - } - - // Increments the entry's reference count - DWORD AddRefEntry(const HCACHEITEM hEntry) - { - ATLASSUME(m_bInitialized); - if (!hEntry || hEntry == INVALID_HANDLE_VALUE) - return (DWORD)-1; - - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return (DWORD)-1; - - NodeType * pEntry = static_cast(hEntry); - m_flusher.Access(pEntry); - m_culler.Access(pEntry); - DWORD dwRef = ++pEntry->dwRef; - m_syncObj.Unlock(); - - return dwRef; - } - - // Removes an entry from the cache regardless of whether or - // not it has expired. If there are references, it detaches - // the entry so that future lookups will fail, and when - // the ref count drops to zero, it will be deleted - HRESULT RemoveEntryByKey(const keyType &Key) - { - ATLASSUME(m_bInitialized); - HCACHEITEM hEntry; - HRESULT hr = LookupEntry(Key, &hEntry); - if (hr == S_OK) - hr = RemoveEntry(hEntry); - - return hr; - } - - // Removes the element from the cache. If there are still - // references, then the entry is detached. - HRESULT RemoveEntry(const HCACHEITEM hEntry) - { - ATLASSUME(m_bInitialized); - if (!hEntry || hEntry == INVALID_HANDLE_VALUE) - return E_INVALIDARG; - - _ATLTRY - { - CComCritSecLock lock(m_syncObj, false); - - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - NodeType * pEntry = static_cast(hEntry); - m_flusher.Release(pEntry); - m_culler.Release(pEntry); - ATLASSERT(pEntry->dwRef > 0); - pEntry->dwRef--; - if (pEntry->pos) - RemoveAt(pEntry->pos, TRUE); - else if ((long)pEntry->dwRef == 0) - InternalRemoveEntry(pEntry); - lock.Unlock(); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - // CullEntries removes all expired items - HRESULT CullEntries() - { - ATLASSUME(m_bInitialized); - - _ATLTRY - { - CComCritSecLock lock(m_syncObj, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - m_culler.Start(); - - while (NodeType *pNode = static_cast(m_culler.GetExpired())) - RemoveAt(pNode->pos, TRUE); - - lock.Unlock(); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - // FlushEntries reduces the cache to meet the configuration requirements - HRESULT FlushEntries() - { - ATLASSUME(m_bInitialized); - HRESULT hr = CullEntries(); - if (FAILED(hr)) - return hr; - - _ATLTRY - { - CComCritSecLock lock(m_syncObj, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - NodeType * pNode = static_cast(m_flusher.GetStart()); - - while (pNode && - (((m_statObj.GetCurrentEntryCount() > m_dwMaxEntries)) || - ((m_statObj.GetCurrentAllocSize() > m_dwMaxAllocationSize)))) - { - NodeType *pNext = static_cast(m_flusher.GetNext(pNode)); - - if (pNode->dwRef == 0) - RemoveAt(pNode->pos, TRUE); - - pNode = pNext; - } - lock.Unlock(); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - HRESULT STDMETHODCALLTYPE SetMaxAllowedSize(DWORD dwSize) - { - m_dwMaxAllocationSize = dwSize; - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_dwMaxAllocationSize; - return S_OK; - } - - HRESULT STDMETHODCALLTYPE SetMaxAllowedEntries(DWORD dwSize) - { - m_dwMaxEntries = dwSize; - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedEntries(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_dwMaxEntries; - return S_OK; - } - - - HRESULT ResetCache() - { - ATLASSUME(m_bInitialized); - HRESULT hr = E_UNEXPECTED; - if (SUCCEEDED(ClearStats())) - hr = RemoveAllEntries(); - return hr; - } - - HRESULT ClearStats() - { - m_statObj.ResetCounters(); - return S_OK; - } - - HRESULT RemoveAllEntries() - { - ATLASSUME(m_bInitialized); - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return hr; - - m_hashTable.DisableAutoRehash(); - POSITION pos = m_hashTable.GetStartPosition(); - POSITION oldpos; - while (pos != NULL) - { - oldpos = pos; - m_hashTable.GetNext(pos); - RemoveAt(oldpos, TRUE); - } - m_hashTable.EnableAutoRehash(); - m_syncObj.Unlock(); - - return S_OK; - } - -protected: - - // Checks to see if the cache can accommodate any new entries within - // its allocation and entry count limits. - bool CanAddEntry(DWORD dwSizeToAdd) - { - return CheckAlloc(dwSizeToAdd) && CheckEntryCount(1); - } - - // Checks to see if the cache can accommodate dwSizeToAdd additional - // allocation within its allocation limit. - bool CheckAlloc(DWORD dwSizeToAdd) - { - if (m_dwMaxAllocationSize == 0xFFFFFFFF) - return true; //max allocation size setting hasn't been set - DWORD dwNew = m_statObj.GetCurrentAllocSize() + dwSizeToAdd; - return dwNew < m_dwMaxAllocationSize; - } - - - // Checks to see if the cache can accommodate dwNumEntriesToAdd - // additional entries within its limits. - bool CheckEntryCount(DWORD dwNumEntriesToAdd) - { - if (m_dwMaxEntries == 0xFFFFFFFF) - return true; //max entry size hasn't been set - DWORD dwNew = m_statObj.GetCurrentEntryCount() + dwNumEntriesToAdd; - return dwNew < m_dwMaxEntries; - - } - -protected: - // Takes the element at pos in the hash table and removes it from - // the cache. If there are no references, then the entry is - // deleted, otherwise it is deleted by ReleaseEntry when the - // refcount goes to zero. - HRESULT RemoveAt(POSITION pos, BOOL bDelete) - { - HRESULT hr = S_OK; - ATLASSERT(pos != NULL); - NodeType * pEntry = m_hashTable.GetValueAt(pos); - m_flusher.Remove(pEntry); - m_culler.Remove(pEntry); - if (bDelete) - m_hashTable.RemoveAtPos(pos); - - if ((long)pEntry->dwRef == 0) - hr = InternalRemoveEntry(pEntry); - else - pEntry->pos = NULL; - - return S_OK; - } - - // Does the actual destruction of the node. Deletes the - // NodeType struct and calls the inherited class's - // OnDestroyEntry function, where other necessary destruction - // can take place. Also updates the cache statistics. - // Inherited classes should call RemoveAt unless the element's - // refcount is zero and it has been removed from the - // culler and flusher lists. - HRESULT InternalRemoveEntry(NodeType * pEntry) - { - ATLENSURE(pEntry != NULL); - - T* pT = static_cast(this); - - ATLASSERT((long)pEntry->dwRef == 0); - - pT->OnDestroyEntry(pEntry); - - m_statObj.ReleaseElement(pEntry->dwSize); - - delete pEntry; - - return S_OK; - } -}; // CMemoryCacheBase - -class CCacheDataBase -{ -}; - -struct CCacheDataEx : public CCacheDataBase -{ - CCacheDataEx() - { - hInstance = NULL; - pClient = NULL; - } - - HINSTANCE hInstance; - IMemoryCacheClient * pClient; -}; - - -template , - class SyncClass=CComCriticalSection, - class CullClass=CExpireCuller > -class CMemoryCache: - public CMemoryCacheBase, DataType, CCacheDataEx, - keyType, KeyTrait, FlushClass, CullClass, SyncClass, StatClass> -{ -protected: - CComPtr m_spServiceProv; - CComPtr m_spDllCache; - typedef CMemoryCacheBase, DataType, CCacheDataEx, - keyType, KeyTrait, FlushClass, CullClass, SyncClass, StatClass> baseClass; -public: - virtual ~CMemoryCache() - { - } - - HRESULT Initialize(IServiceProvider * pProvider) - { - baseClass::Initialize(); - m_spServiceProv = pProvider; - if (pProvider) - return m_spServiceProv->QueryService(__uuidof(IDllCache), __uuidof(IDllCache), (void**)&m_spDllCache); - else - return S_OK; - } - - HRESULT AddEntry( - const keyType &Key, - const DataType &data, - DWORD dwSize, - FILETIME * pftExpireTime = NULL, - HINSTANCE hInstance = NULL, - IMemoryCacheClient * pClient = NULL, - HCACHEITEM *phEntry = NULL - ) - { - _ATLTRY - { - HRESULT hr; - NodeType * pEntry = NULL; - hr = baseClass::AddEntry(Key, data, dwSize, (HCACHEITEM *)&pEntry); - if (hr != S_OK) - return hr; - - pEntry->hInstance = hInstance; - pEntry->pClient = pClient; - if (pftExpireTime) - pEntry->cftExpireTime = *pftExpireTime; - - if (hInstance && m_spDllCache) - m_spDllCache->AddRefModule(hInstance); - - baseClass::CommitEntry(static_cast(pEntry)); - - if (phEntry) - *phEntry = static_cast(pEntry); - else - baseClass::ReleaseEntry(static_cast(pEntry)); - - return S_OK; - } - _ATLCATCHALL() - { - return E_FAIL; - } - } - - virtual void OnDestroyEntry(const NodeType * pEntry) - { - ATLASSERT(pEntry); - if (!pEntry) - return; - - if (pEntry->pClient) - pEntry->pClient->Free((void *)&pEntry->Data); - if (pEntry->hInstance && m_spDllCache) - m_spDllCache->ReleaseModule(pEntry->hInstance); - } -}; // CMemoryCache - -// CStdStatData - contains the data that CStdStatClass keeps track of -#define ATL_PERF_CACHE_OBJECT 100 - -struct CPerfStatObject : public CPerfObject -{ - DECLARE_PERF_CATEGORY(CPerfStatObject, ATL_PERF_CACHE_OBJECT, IDS_PERFMON_CACHE, IDS_PERFMON_CACHE_HELP, -1); - - BEGIN_COUNTER_MAP(CPerfStatObject) - DEFINE_COUNTER(m_nHitCount, IDS_PERFMON_HITCOUNT, IDS_PERFMON_HITCOUNT_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_nMissCount, IDS_PERFMON_MISSCOUNT, IDS_PERFMON_MISSCOUNT_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_nCurrentAllocations, IDS_PERFMON_CURRENTALLOCATIONS, IDS_PERFMON_CURRENTALLOCATIONS_HELP, PERF_COUNTER_RAWCOUNT, -3) - DEFINE_COUNTER(m_nMaxAllocations, IDS_PERFMON_MAXALLOCATIONS, IDS_PERFMON_MAXALLOCATIONS_HELP, PERF_COUNTER_RAWCOUNT, -3) - DEFINE_COUNTER(m_nCurrentEntries, IDS_PERFMON_CURRENTENTRIES, IDS_PERFMON_CURRENTENTRIES_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_nMaxEntries, IDS_PERFMON_MAXENTRIES, IDS_PERFMON_MAXENTRIES_HELP, PERF_COUNTER_RAWCOUNT, -1) - END_COUNTER_MAP() - - long m_nHitCount; - long m_nMissCount; - long m_nCurrentAllocations; - long m_nMaxAllocations; - long m_nCurrentEntries; - long m_nMaxEntries; -}; - -// CCachePerfMon - the interface to CPerfMon, with associated definitions -class CCachePerfMon : public CPerfMon -{ -public: - BEGIN_PERF_MAP(_T("ATL Server:Cache")) - CHAIN_PERF_CATEGORY(CPerfStatObject) - END_PERF_MAP() -}; - -// -//CStdStatClass -// Description -// This class provides the implementation of a standard cache statistics accounting class -class CStdStatClass -{ -protected: - CPerfStatObject* m_pStats; - CPerfStatObject m_stats; - -public: - - CStdStatClass() - { - m_pStats = &m_stats; - } - - // This function is not thread safe by design - HRESULT Initialize(CPerfStatObject* pStats = NULL) - { - if (pStats) - m_pStats = pStats; - else - m_pStats = &m_stats; - - ResetCounters(); - return S_OK; - } - - // This function is not thread safe by design - HRESULT Uninitialize() - { - m_pStats = &m_stats; - return S_OK; - } - - void Hit() - { - InterlockedIncrement(&m_pStats->m_nHitCount); - } - - void Miss() - { - InterlockedIncrement(&m_pStats->m_nMissCount); - } - - void AddElement(DWORD dwBytes) - { - DWORD nCurrentEntries = InterlockedIncrement(&m_pStats->m_nCurrentEntries); - AtlInterlockedUpdateMax(nCurrentEntries, &m_pStats->m_nMaxEntries); - - DWORD nCurrentAllocations = dwBytes + AtlInterlockedExchangeAdd(&m_pStats->m_nCurrentAllocations, dwBytes); - AtlInterlockedUpdateMax(nCurrentAllocations, &m_pStats->m_nMaxAllocations); - } - - void ReleaseElement(DWORD dwBytes) - { - InterlockedDecrement(&m_pStats->m_nCurrentEntries); - AtlInterlockedExchangeAdd(&m_pStats->m_nCurrentAllocations, -((long)dwBytes)); - } - - DWORD GetHitCount() - { - return m_pStats->m_nHitCount; - } - - DWORD GetMissCount() - { - return m_pStats->m_nMissCount; - } - - DWORD GetCurrentAllocSize() - { - return m_pStats->m_nCurrentAllocations; - } - - DWORD GetMaxAllocSize() - { - return m_pStats->m_nMaxAllocations; - } - - DWORD GetCurrentEntryCount() - { - return m_pStats->m_nCurrentEntries; - } - - DWORD GetMaxEntryCount() - { - return m_pStats->m_nMaxEntries; - } - - void ResetCounters() - { - m_pStats->m_nHitCount = 0; - m_pStats->m_nMissCount = 0; - m_pStats->m_nCurrentAllocations = 0; - m_pStats->m_nMaxAllocations = 0; - m_pStats->m_nCurrentEntries = 0; - m_pStats->m_nMaxEntries = 0; - } -}; // CStdStatClass - -// -// CNoStatClass -// This is a noop stat class -class CNoStatClass -{ -public: - HRESULT Initialize(){ return S_OK; } - HRESULT Uninitialize(){ return S_OK; } - void Hit(){ } - void Miss(){ } - void AddElement(DWORD){ } - void ReleaseElement(DWORD){ } - DWORD GetHitCount(){ return 0; } - DWORD GetMissCount(){ return 0; } - DWORD GetCurrentAllocSize(){ return 0; } - DWORD GetMaxAllocSize(){ return 0; } - DWORD GetCurrentEntryCount(){ return 0; } - DWORD GetMaxEntryCount(){ return 0; } - void ResetCounters(){ } -}; // CNoStatClass - -// -//CPerfStatClass -// Description -// This class provides the implementation of a cache statistics gathering class -// with PerfMon support -class CPerfStatClass : public CStdStatClass -{ - CPerfStatObject * m_pPerfObject; - CCachePerfMon m_PerfMon; - -public: - - HRESULT Initialize(__in_z_opt LPWSTR szName=NULL) - { - HRESULT hr; - WCHAR szPath[MAX_PATH]; - - if (!szName) - { - // default name is the name of the module - // we don't care about possible truncation if longer than max_path - // we just need an identifier - HINSTANCE hInst = _AtlBaseModule.GetModuleInstance(); - if (::GetModuleFileNameW(hInst, szPath, MAX_PATH) == 0) - { - return E_FAIL; - } - szPath[MAX_PATH-1] = 0; - szName = szPath; - } - - m_pPerfObject = NULL; - ATLTRACE(atlTraceCache, 2, _T("Initializing m_PerfMon\n")); - hr = m_PerfMon.Initialize(); - if (SUCCEEDED(hr)) - { - CPerfLock lock(&m_PerfMon); - if (FAILED(hr = lock.GetStatus())) - { - return hr; - } - - hr = m_PerfMon.CreateInstance(ATL_PERF_CACHE_OBJECT, 0, szName, reinterpret_cast(&m_pPerfObject)); - if (FAILED(hr)) - { - return hr; - } - - CStdStatClass::Initialize(m_pPerfObject); - } - else - ATLASSUME(m_pPerfObject == NULL); - - return hr; - } - - HRESULT Uninitialize() - { - CStdStatClass::Uninitialize(); - - if (m_pPerfObject != NULL) // Initialized m_pPerfObject successfully above - { - HRESULT hr = m_PerfMon.ReleaseInstance(m_pPerfObject); - if (hr != S_OK) - return hr; - - m_PerfMon.UnInitialize(); - } - - return S_OK; - } -}; // CPerfStatClass - -#ifndef ATL_BLOB_CACHE_TIMEOUT -#ifdef _DEBUG -#define ATL_BLOB_CACHE_TIMEOUT 1000 -#else -#define ATL_BLOB_CACHE_TIMEOUT 5000 -#endif // _DEBUG -#endif // ATL_BLOB_CACHE_TIMEOUT - -// -//CBlobCache -// Description: -// Implements a cache that stores pointers to void. Uses the generic CMemoryCacheBase class -// as the implementation. -template -class CBlobCache : public CMemoryCache, SyncObj, CullClass>, - public IMemoryCache, - public IMemoryCacheControl, - public IMemoryCacheStats, - public IWorkerThreadClient -{ - typedef CMemoryCache, SyncObj, CullClass> cacheBase; - - MonitorClass m_Monitor; - -protected: - HANDLE m_hTimer; - -public: - CBlobCache() : m_hTimer(NULL) - { - } - - HRESULT Initialize(IServiceProvider *pProv) - { - HRESULT hr = cacheBase::Initialize(pProv); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(ATL_BLOB_CACHE_TIMEOUT, - static_cast(this), (DWORD_PTR) this, &m_hTimer); - } - - template - HRESULT Initialize(IServiceProvider *pProv, CWorkerThread *pWorkerThread) - { - ATLASSERT(pWorkerThread); - - HRESULT hr = cacheBase::Initialize(pProv); - if (FAILED(hr)) - return hr; - - hr = m_Monitor.Initialize(pWorkerThread); - if (FAILED(hr)) - return hr; - - return m_Monitor.AddTimer(ATL_BLOB_CACHE_TIMEOUT, - static_cast(this), (DWORD_PTR) this, &m_hTimer); - } - - HRESULT Execute(DWORD_PTR dwParam, HANDLE /*hObject*/) - { - CBlobCache* pCache = (CBlobCache*)dwParam; - - if (pCache) - pCache->Flush(); - return S_OK; - } - - HRESULT CloseHandle(HANDLE hObject) - { - ATLASSUME(m_hTimer == hObject); - m_hTimer = NULL; - ::CloseHandle(hObject); - return S_OK; - } - - virtual ~CBlobCache() - { - if (m_hTimer) - { - ATLENSURE(SUCCEEDED(m_Monitor.RemoveHandle(m_hTimer))); - } - } - - HRESULT Uninitialize() - { - HRESULT hrMonitor=S_OK; - if (m_hTimer) - { - hrMonitor=m_Monitor.RemoveHandle(m_hTimer); - m_hTimer = NULL; - } - HRESULT hrShut=m_Monitor.Shutdown(); - HRESULT hrCache=cacheBase::Uninitialize(); - if(FAILED(hrMonitor)) - { - return hrMonitor; - } - if(FAILED(hrShut)) - { - return hrShut; - } - return hrCache; - } - // IUnknown methods - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv) - { - HRESULT hr = E_NOINTERFACE; - if (!ppv) - hr = E_POINTER; - else - { - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IMemoryCache))) - { - *ppv = (IUnknown *) (IMemoryCache *) this; - AddRef(); - hr = S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IMemoryCacheStats))) - { - *ppv = (IUnknown *) (IMemoryCacheStats*)this; - AddRef(); - hr = S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IMemoryCacheControl))) - { - *ppv = (IUnknown *) (IMemoryCacheControl*)this; - AddRef(); - hr = S_OK; - } - - } - return hr; - } - - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } - - // IMemoryCache Methods - HRESULT STDMETHODCALLTYPE Add(LPCSTR szKey, void *pvData, DWORD dwSize, - FILETIME *pftExpireTime, - HINSTANCE hInstClient, - HCACHEITEM *phEntry, - IMemoryCacheClient *pClient) - { - HRESULT hr = E_FAIL; - //if it's a multithreaded cache monitor we'll let the monitor take care of - //cleaning up the cache so we don't overflow our configuration settings. - //if it's not a threaded cache monitor, we need to make sure we don't - //overflow the configuration settings by adding a new element - if (m_Monitor.GetThreadHandle()==NULL) - { - if (!cacheBase::CanAddEntry(dwSize)) - { - //flush the entries and check again to see if we can add - cacheBase::FlushEntries(); - if (!cacheBase::CanAddEntry(dwSize)) - return E_OUTOFMEMORY; - } - } - _ATLTRY - { - hr = cacheBase::AddEntry(szKey, pvData, dwSize, - pftExpireTime, hInstClient, pClient, phEntry); - return hr; - } - _ATLCATCHALL() - { - return E_FAIL; - } - } - - HRESULT STDMETHODCALLTYPE LookupEntry(LPCSTR szKey, HCACHEITEM * phEntry) - { - return cacheBase::LookupEntry(szKey, phEntry); - } - - HRESULT STDMETHODCALLTYPE GetData(const HCACHEITEM hKey, void **ppvData, DWORD *pdwSize) const - { - return cacheBase::GetEntryData(hKey, ppvData, pdwSize); - } - - HRESULT STDMETHODCALLTYPE ReleaseEntry(const HCACHEITEM hKey) - { - return cacheBase::ReleaseEntry(hKey); - } - - HRESULT STDMETHODCALLTYPE RemoveEntry(const HCACHEITEM hKey) - { - return cacheBase::RemoveEntry(hKey); - } - - HRESULT STDMETHODCALLTYPE RemoveEntryByKey(LPCSTR szKey) - { - return cacheBase::RemoveEntryByKey(szKey); - } - - HRESULT STDMETHODCALLTYPE Flush() - { - return cacheBase::FlushEntries(); - } - - - HRESULT STDMETHODCALLTYPE SetMaxAllowedSize(DWORD dwSize) - { - return cacheBase::SetMaxAllowedSize(dwSize); - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedSize(DWORD *pdwSize) - { - return cacheBase::GetMaxAllowedSize(pdwSize); - } - - HRESULT STDMETHODCALLTYPE SetMaxAllowedEntries(DWORD dwSize) - { - return cacheBase::SetMaxAllowedEntries(dwSize); - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedEntries(DWORD *pdwSize) - { - return cacheBase::GetMaxAllowedEntries(pdwSize); - } - - HRESULT STDMETHODCALLTYPE ResetCache() - { - return cacheBase::ResetCache(); - } - - // IMemoryCacheStats methods - HRESULT STDMETHODCALLTYPE ClearStats() - { - m_statObj.ResetCounters(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetHitCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetHitCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMissCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMissCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxEntryCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentEntryCount(); - return S_OK; - } - -}; // CBlobCache - - -// -// CDllCache -// This class manages a cache to handle calls to LoadLibrary -// and FreeLibrary. -// It keeps dlls loaded even after the last call to free library -// a worker thread then calls FreeLibrary on unused dlls -// -#ifndef ATL_DLL_CACHE_TIMEOUT - #ifdef _DEBUG - #define ATL_DLL_CACHE_TIMEOUT 1000 // 1 sec default for debug builds - #else - #define ATL_DLL_CACHE_TIMEOUT 10*60000 // 10 minute default for retail builds - #endif -#endif - -class CNoDllCachePeer -{ -public: - struct DllInfo - { - }; - - BOOL Add(HINSTANCE /*hInst*/, DllInfo * /*pInfo*/) - { - return TRUE; - } - - void Remove(HINSTANCE /*hInst*/, DllInfo * /*pInfo*/) - { - } -}; - -// CDllCache -// Implements IDllCache, an interface that is used to load and unload Dlls. -// To use it, construct an instance of a CDllCache and call Initialize. -// The Initialize call has to match with the type of monitor class you -// templatize on. The monitor thread will call IWorkerThreadClient::Execute -// after its timeout expires. Make sure to Uninitialize the object before -// it is destroyed by calling Uninitialize -// -template -class CDllCache : public IDllCache, - public IWorkerThreadClient -{ -protected: - CComCriticalSection m_critSec; - CSimpleArray m_Dlls; - CSimpleArray m_DllInfos; - MonitorClass m_Monitor; - HANDLE m_hTimer; - - void RemoveDllEntry(DLL_CACHE_ENTRY& entry) - { - ::FreeLibrary(entry.hInstDll); - entry.hInstDll = NULL; - m_Dlls.RemoveAt(m_Dlls.GetSize()-1); - } - -public: - Peer m_Peer; - - CDllCache() : - m_hTimer(NULL) - { - - } - - HRESULT Initialize(DWORD dwTimeout=ATL_DLL_CACHE_TIMEOUT) - { - HRESULT hr = m_critSec.Init(); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(dwTimeout, this, 0, &m_hTimer); - } - - template - HRESULT Initialize(CWorkerThread *pWorkerThread, - DWORD dwTimeout=ATL_DLL_CACHE_TIMEOUT) - { - HRESULT hr = m_critSec.Init(); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(pWorkerThread); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(dwTimeout, this, 0, &m_hTimer); - } - - HRESULT Uninitialize() - { - HRESULT hr = S_OK; - HRESULT hrLatest = S_OK; - if (m_hTimer) - { - hrLatest=m_Monitor.RemoveHandle(m_hTimer); - if(FAILED(hrLatest) && SUCCEEDED(hr)) - { - hr=hrLatest; - } - m_hTimer = NULL; - } - m_Monitor.Shutdown(); - - // free all the libraries we've cached - int nLen = m_Dlls.GetSize(); - for (int i=0; i 0); - entry.bAlive = TRUE; - entry.dwRefs--; - m_critSec.Unlock(); - return TRUE; - } - } - - m_critSec.Unlock(); - // the dll wasn't found - // in the cache, so just - // pass along to ::FreeLibrary - return ::FreeLibrary(hInstDll); - } - - BOOL AddRefModule(HINSTANCE hInstDll) - { - HRESULT hr = m_critSec.Lock(); - if (FAILED(hr)) - return FALSE; - - int nLen = m_Dlls.GetSize(); - for (int i=0; i 0); - entry.dwRefs++; - m_critSec.Unlock(); - return TRUE; - } - } - - m_critSec.Unlock(); - return FALSE; - } - - BOOL ReleaseModule(HINSTANCE hInstDll) - { - HRESULT hr = m_critSec.Lock(); - if (FAILED(hr)) - return FALSE; - - int nLen = m_Dlls.GetSize(); - for (int i=0; i 0); - entry.bAlive = TRUE; - entry.dwRefs--; - m_critSec.Unlock(); - return TRUE; - } - } - m_critSec.Unlock(); - return FALSE; - } - - HRESULT GetEntries(DWORD dwCount, DLL_CACHE_ENTRY *pEntries, DWORD *pdwCopied) - { - if (!pdwCopied) - return E_POINTER; - - HRESULT hr = m_critSec.Lock(); - if (FAILED(hr)) - return hr; - - if (dwCount==0 || pEntries==NULL) - { - // just return the required size - *pdwCopied = m_Dlls.GetSize(); - m_critSec.Unlock(); - return S_OK; - } - - if (dwCount > (DWORD) m_Dlls.GetSize()) - dwCount = m_Dlls.GetSize(); - Checked::memcpy_s(pEntries, dwCount*sizeof(DLL_CACHE_ENTRY), m_Dlls.GetData(), dwCount*sizeof(DLL_CACHE_ENTRY)); - *pdwCopied = dwCount; - m_critSec.Unlock(); - return S_OK; - } - - HRESULT Flush() - { - HRESULT hr = m_critSec.Lock(); - if (FAILED(hr)) - return hr; - - int nLen = m_Dlls.GetSize(); - for (int i=0; i -class CStencilCache : - public CMemoryCacheBase, void *, CCacheDataEx, - CFixedStringKey, CStringElementTraitsI, - FlushClass, CullClass, SyncClass, StatClass>, - public IStencilCache, - public IStencilCacheControl, - public IWorkerThreadClient, - public IMemoryCacheStats, - public CComObjectRootEx -{ -protected: - typedef CMemoryCacheBase, void *, CCacheDataEx, - CFixedStringKey, CStringElementTraitsI, - FlushClass, CullClass, SyncClass, StatClass> cacheBase; - unsigned __int64 m_dwdwStencilLifespan; - - MonitorClass m_Monitor; - HANDLE m_hTimer; - CComPtr m_spDllCache; - -public: - - CStencilCache() : - m_dwdwStencilLifespan(ATL_STENCIL_LIFESPAN), - m_hTimer(NULL) - { - - } - - ~CStencilCache() - { - if (m_hTimer) - { - ATLENSURE(SUCCEEDED(m_Monitor.RemoveHandle(m_hTimer))); - } - } - - HRESULT Execute(DWORD_PTR dwParam, HANDLE /*hObject*/) - { - CStencilCache* pCache = (CStencilCache*)dwParam; - if (pCache) - pCache->FlushEntries(); - return S_OK; - } - - HRESULT CloseHandle(HANDLE hObject) - { - ATLASSUME(m_hTimer == hObject); - m_hTimer = NULL; - ::CloseHandle(hObject); - return S_OK; - } - - HRESULT Initialize(IServiceProvider *pProv, DWORD dwStencilCacheTimeout=ATL_STENCIL_CACHE_TIMEOUT, - __int64 dwdwStencilLifespan=ATL_STENCIL_LIFESPAN) - { - m_dwdwStencilLifespan = dwdwStencilLifespan; - HRESULT hr = cacheBase::Initialize(); - if (FAILED(hr)) - return hr; - hr = E_FAIL; - if (pProv) - hr = pProv->QueryService(__uuidof(IDllCache), __uuidof(IDllCache), (void**)&m_spDllCache); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(dwStencilCacheTimeout, this, (DWORD_PTR) this, &m_hTimer); - } - - template - HRESULT Initialize(IServiceProvider *pProv, CWorkerThread *pWorkerThread, - DWORD dwStencilCacheTimeout=ATL_STENCIL_CACHE_TIMEOUT, __int64 dwdwStencilLifespan=ATL_STENCIL_LIFESPAN) - { - m_dwdwStencilLifespan = dwdwStencilLifespan; - HRESULT hr = cacheBase::Initialize(); - if (FAILED(hr)) - return hr; - hr = E_FAIL; - if (pProv) - hr = pProv->QueryService(__uuidof(IDllCache), __uuidof(IDllCache), (void**)&m_spDllCache); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(pWorkerThread); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(dwStencilCacheTimeout, this, (DWORD_PTR) this, &m_hTimer); - } - - - BEGIN_COM_MAP(CStencilCache) - COM_INTERFACE_ENTRY(IMemoryCacheStats) - COM_INTERFACE_ENTRY(IStencilCache) - COM_INTERFACE_ENTRY(IStencilCacheControl) - END_COM_MAP() -//IStencilCache methods - STDMETHOD(CacheStencil)(LPCSTR szName, void *pStencil, DWORD dwSize, HCACHEITEM *phEntry, - HINSTANCE hInstance, IMemoryCacheClient *pClient) - { - NodeType * pEntry = NULL; - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return hr; - - _ATLTRY - { - hr = cacheBase::AddEntry(szName, pStencil, dwSize, (HCACHEITEM *)&pEntry); - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - if (hr != S_OK) - { - m_syncObj.Unlock(); - return hr; - } - - pEntry->hInstance = hInstance; - pEntry->pClient = pClient; - pEntry->nLifespan = m_dwdwStencilLifespan; - if (hInstance && m_spDllCache) - m_spDllCache->AddRefModule(hInstance); - - cacheBase::CommitEntry(static_cast(pEntry)); - - if (phEntry) - *phEntry = static_cast(pEntry); - else - cacheBase::ReleaseEntry(static_cast(pEntry)); - - m_syncObj.Unlock(); - return hr; - } - - STDMETHOD(LookupStencil)(LPCSTR szName, HCACHEITEM * phStencil) - { - return cacheBase::LookupEntry(szName, phStencil); - } - - STDMETHOD(GetStencil)(const HCACHEITEM hStencil, void ** pStencil) const - { - return cacheBase::GetEntryData(hStencil, pStencil, NULL); - } - - STDMETHOD(AddRefStencil)(const HCACHEITEM hStencil) - { - return cacheBase::AddRefEntry(hStencil); - } - - STDMETHOD(ReleaseStencil)(const HCACHEITEM hStencil) - { - return cacheBase::ReleaseEntry(hStencil); - } - - //IStencilCacheControl - - STDMETHOD(RemoveStencil)(const HCACHEITEM hStencil) - { - return cacheBase::RemoveEntry(hStencil); - } - - STDMETHOD(RemoveStencilByName)(LPCSTR szStencil) - { - return cacheBase::RemoveEntryByKey(szStencil); - } - - STDMETHOD(RemoveAllStencils)() - { - return cacheBase::RemoveAllEntries(); - } - - STDMETHOD(SetDefaultLifespan)(unsigned __int64 dwdwLifespan) - { - m_dwdwStencilLifespan = dwdwLifespan; - return S_OK; - } - - STDMETHOD(GetDefaultLifespan)(unsigned __int64 *pdwdwLifepsan) - { - HRESULT hr = E_POINTER; - if (pdwdwLifepsan) - { - *pdwdwLifepsan = m_dwdwStencilLifespan; - hr = S_OK; - } - return hr; - } - - virtual void OnDestroyEntry(const NodeType * pEntry) - { - ATLASSERT(pEntry); - if (!pEntry) - return; - - if (pEntry->pClient) - pEntry->pClient->Free((void *)&pEntry->Data); - if (pEntry->hInstance && m_spDllCache) - m_spDllCache->ReleaseModule(pEntry->hInstance); - } - - HRESULT Uninitialize() - { - HRESULT hrMonitor=S_OK; - if (m_hTimer) - { - hrMonitor=m_Monitor.RemoveHandle(m_hTimer); - m_hTimer = NULL; - } - m_Monitor.Shutdown(); - HRESULT hrCache=cacheBase::Uninitialize(); - if(FAILED(hrMonitor)) - { - return hrMonitor; - } - return hrCache; - } - // IMemoryCacheStats methods - HRESULT STDMETHODCALLTYPE ClearStats() - { - m_statObj.ResetCounters(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetHitCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetHitCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMissCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMissCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxEntryCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentEntryCount(); - return S_OK; - } -}; // CStencilCache - -// {105A8866-4059-45fe-86AE-FA0EABBFBBB4} -extern "C" __declspec(selectany) const IID IID_IFileCache = { 0x105a8866, 0x4059, 0x45fe, { 0x86, 0xae, 0xfa, 0xe, 0xab, 0xbf, 0xbb, 0xb4 } }; - -__interface ATL_NO_VTABLE __declspec(uuid("105A8866-4059-45fe-86AE-FA0EABBFBBB4")) - IFileCache : public IUnknown -{ - // IFileCache Methods - - STDMETHOD(AddFile)( - LPCSTR szFileName, - LPCSTR szTempFileName, - FILETIME *pftExpireTime, - void *pPeerInfo, - HCACHEITEM * phKey); - STDMETHOD(LookupFile)(LPCSTR szFileName, HCACHEITEM * phKey); - STDMETHOD(GetFile)(const HCACHEITEM hKey, LPSTR * pszFileName, void **ppPeerInfo); - STDMETHOD(ReleaseFile)(const HCACHEITEM hKey); - STDMETHOD(RemoveFile)(const HCACHEITEM hKey); - STDMETHOD(RemoveFileByName)(LPCSTR szFileName); - STDMETHOD(Flush)(); -}; - -#ifndef ATL_FILE_CACHE_TIMEOUT - #define ATL_FILE_CACHE_TIMEOUT 1000 -#endif - -class CNoFileCachePeer -{ -public: - struct PeerInfo - { - }; - - static BOOL Add(PeerInfo* /*pDest*/, PeerInfo * /*pSrc*/) - { - return TRUE; - } - - static BOOL Remove(const PeerInfo* /*pFileInfo*/) - { - return TRUE; - } -}; - -template -struct CCacheDataPeer : public CCacheDataBase -{ - typename Peer::PeerInfo PeerData; -}; - -// A class to keep track of files, with maintenance -- maximum size of cache, -// maximum number of entries, expiration of entries, etc. -- inherits from -// CMemoryCacheBase -template < - class MonitorClass, - class StatClass=CStdStatClass, - class FileCachePeer=CNoFileCachePeer, - class FlushClass=COldFlusher, - class SyncClass=CComCriticalSection, - class CullClass=CExpireCuller > -class CFileCache: - public CMemoryCacheBase, LPSTR, CCacheDataPeer, - CFixedStringKey, CStringElementTraits, - FlushClass, CullClass, SyncClass, StatClass>, - public IWorkerThreadClient, - public IFileCache, - public IMemoryCacheControl, - public IMemoryCacheStats -{ - typedef CMemoryCacheBase, LPSTR, CCacheDataPeer, - CFixedStringKey, CStringElementTraits, - FlushClass, CullClass, SyncClass, StatClass> cacheBase; - - MonitorClass m_Monitor; - -protected: - HANDLE m_hTimer; - -public: - - CFileCache() : m_hTimer(NULL) - { - } - - HRESULT Initialize() - { - HRESULT hr = cacheBase::Initialize(); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(ATL_FILE_CACHE_TIMEOUT, - static_cast(this), (DWORD_PTR) this, &m_hTimer); - } - - template - HRESULT Initialize(CWorkerThread *pWorkerThread) - { - ATLASSERT(pWorkerThread); - - HRESULT hr = cacheBase::Initialize(); - if (FAILED(hr)) - return hr; - hr = m_Monitor.Initialize(pWorkerThread); - if (FAILED(hr)) - return hr; - return m_Monitor.AddTimer(ATL_FILE_CACHE_TIMEOUT, - static_cast(this), (DWORD_PTR) this, &m_hTimer); - } - - - // Callback for CWorkerThread - HRESULT Execute(DWORD_PTR dwParam, HANDLE /*hObject*/) - { - CFileCache* pCache = (CFileCache*)dwParam; - - if (pCache) - pCache->Flush(); - return S_OK; - } - - HRESULT CloseHandle(HANDLE hObject) - { - ATLASSUME(m_hTimer == hObject); - m_hTimer = NULL; - ::CloseHandle(hObject); - return S_OK; - } - - ~CFileCache() - { - if (m_hTimer) - { - ATLENSURE(SUCCEEDED(m_Monitor.RemoveHandle(m_hTimer))); - m_hTimer = NULL; - } - } - - HRESULT Uninitialize() - { - HRESULT hrMonitor=S_OK; - if (m_hTimer) - { - hrMonitor=m_Monitor.RemoveHandle(m_hTimer); - m_hTimer = NULL; - } - m_Monitor.Shutdown(); - HRESULT hrCache=cacheBase::Uninitialize(); - if(FAILED(hrMonitor)) - { - return hrMonitor; - } - return hrCache; - } - - - // IUnknown methods - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv) - { - HRESULT hr = E_NOINTERFACE; - if (!ppv) - hr = E_POINTER; - else - { - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IFileCache))) - { - *ppv = (IUnknown *) (IFileCache *) this; - AddRef(); - hr = S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IMemoryCacheStats))) - { - *ppv = (IMemoryCacheStats*)this; - AddRef(); - hr = S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IMemoryCacheControl))) - { - *ppv = (IMemoryCacheControl*)this; - AddRef(); - hr = S_OK; - } - - } - return hr; - } - - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } - - // Adds a file to the cache. A file is created with a - // temporary name, and then Add is called with the temp - // file name and the final file name, along with expiration data, - // etc. A search on the file name will return the name of - // the file on disk (i.e. the temporary file) - HRESULT STDMETHODCALLTYPE AddFile( - LPCSTR szFileName, - LPCSTR szTempFileName, - FILETIME *pftExpireTime, - void* pPeerInfo, - HCACHEITEM * phKey = NULL) - { - WIN32_FILE_ATTRIBUTE_DATA fadData; - BOOL bRet = GetFileAttributesExA(szTempFileName, GetFileExInfoStandard, &fadData); - if (!bRet) - return AtlHresultFromLastError(); - - __int64 ddwFileSize = (static_cast<__int64>(fadData.nFileSizeHigh) << 32) + fadData.nFileSizeLow; - - DWORD dwRecordedFileSize = (DWORD) (ddwFileSize >> 10); - // Round the file size up to 1K if it is < 1K - if (dwRecordedFileSize == 0) - dwRecordedFileSize = 1; - - if (m_Monitor.GetThreadHandle()==NULL) - { - if (!cacheBase::CanAddEntry(dwRecordedFileSize)) - { - cacheBase::FlushEntries(); - if (!cacheBase::CanAddEntry(dwRecordedFileSize)) - return E_OUTOFMEMORY; - } - } - - NodeType *pEntry = NULL; - HRESULT hr = m_syncObj.Lock(); - if (FAILED(hr)) - return hr; - - hr = E_FAIL; - - // Make a private copy of the file name - CHeapPtr szTempFileCopy; - if (szTempFileCopy.Allocate(MAX_PATH)) - { - if (strlen(szTempFileName) >= MAX_PATH) - { - m_syncObj.Unlock(); - return E_FAIL; - } - Checked::strncpy_s(szTempFileCopy, MAX_PATH, szTempFileName, _TRUNCATE); - - _ATLTRY - { - hr = cacheBase::AddEntry(szFileName, szTempFileCopy, dwRecordedFileSize, (HCACHEITEM*)&pEntry); - szTempFileCopy.Detach(); - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - } - - if (hr != S_OK) - { - m_syncObj.Unlock(); - return hr; - } - - - hr = (TRUE == FileCachePeer::Add(&pEntry->PeerData, - static_cast(pPeerInfo)) ? S_OK : E_FAIL); - if (hr == S_OK) - hr = cacheBase::CommitEntry(static_cast(pEntry)); - - if (hr != S_OK) - { - cacheBase::RemoveEntry(static_cast(pEntry)); - m_syncObj.Unlock(); - return hr; - } - - - if (pftExpireTime) - pEntry->cftExpireTime = *pftExpireTime; - - if (phKey) - *phKey = static_cast(pEntry); - else - cacheBase::ReleaseEntry(pEntry); - - m_syncObj.Unlock(); - return hr; - } - - // Action to take when the entry is removed from the cache - virtual void OnDestroyEntry(const NodeType * pEntry) - { - ATLASSERT(pEntry); - if (!pEntry) - return; - FileCachePeer::Remove(&pEntry->PeerData); - if (pEntry->Data) - { - DeleteFileA(pEntry->Data); - free(pEntry->Data); - const_cast(pEntry)->Data = NULL; - } - } - - // Looks up a file by name. Must be released after use - HRESULT STDMETHODCALLTYPE LookupFile(LPCSTR szFileName, HCACHEITEM * phKey) - { - return cacheBase::LookupEntry(szFileName, phKey); - } - - // Gets the name of the file on disk - HRESULT STDMETHODCALLTYPE GetFile(__in const HCACHEITEM hKey, __deref_out_z_opt LPSTR * pszFileName, __deref_out_opt void **ppPeerInfo) - { - NodeType *pEntry = (NodeType *)hKey; - if (ppPeerInfo) - *ppPeerInfo = &pEntry->PeerData; - return cacheBase::GetEntryData(hKey, pszFileName, NULL); - } - - // Releases a file - HRESULT STDMETHODCALLTYPE ReleaseFile(const HCACHEITEM hKey) - { - return cacheBase::ReleaseEntry(hKey); - } - - // Releases a file and marks it for deletion - HRESULT STDMETHODCALLTYPE RemoveFile(const HCACHEITEM hKey) - { - return cacheBase::RemoveEntry(hKey); - } - - // Removes a file by name -- this calls IMemoryCacheClient->Free - // on the file name, which by default (for CFileCache) deletes the - // file. - HRESULT STDMETHODCALLTYPE RemoveFileByName(LPCSTR szFileName) - { - return cacheBase::RemoveEntryByKey(szFileName); - } - - // Flushes the entries in the cache, eliminates expired entries, - // or if the cache exceeds the parameters (alloc size, num entries), - // culls items based on the sweep mode - HRESULT STDMETHODCALLTYPE Flush() - { - return cacheBase::FlushEntries(); - } - - // IMemoryCacheControl methods - HRESULT STDMETHODCALLTYPE SetMaxAllowedSize(DWORD dwSize) - { - return cacheBase::SetMaxAllowedSize(dwSize); - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedSize(DWORD *pdwSize) - { - return cacheBase::GetMaxAllowedSize(pdwSize); - } - - HRESULT STDMETHODCALLTYPE SetMaxAllowedEntries(DWORD dwSize) - { - return cacheBase::SetMaxAllowedEntries(dwSize); - } - - HRESULT STDMETHODCALLTYPE GetMaxAllowedEntries(DWORD *pdwSize) - { - return cacheBase::GetMaxAllowedEntries(pdwSize); - } - - HRESULT STDMETHODCALLTYPE ResetCache() - { - return cacheBase::ResetCache(); - } - - - // IMemoryCacheStats methods - HRESULT STDMETHODCALLTYPE ClearStats() - { - m_statObj.ResetCounters(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetHitCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetHitCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMissCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMissCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentAllocSize(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentAllocSize(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetMaxEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetMaxEntryCount(); - return S_OK; - } - - HRESULT STDMETHODCALLTYPE GetCurrentEntryCount(DWORD *pdwSize) - { - if (!pdwSize) - return E_POINTER; - *pdwSize = m_statObj.GetCurrentEntryCount(); - return S_OK; - } -}; // CFileCache - -class CDataConnection; // see atldbcli.h -__interface __declspec(uuid("52E7759B-D6CC-4a03-BDF3-80A6BDCA1F94")) -IDataSourceCache : public IUnknown -{ - // Method: Add - // Params: - // szConn: Connection string of data source to connect to - // ppDS: Out pointer to the newly added data source - // Comments: - // Attempts to open a connection to the specified data source - // using a CDataSource object. Once the connection is open, the - // CDatasource is cached. - STDMETHOD(Add)(LPCTSTR szID, LPCOLESTR szConn, CDataConnection *pDS); - - // Method: Remove - // Params: - // szConn: Specifies the connection string of the connection to close - // Comments: - // Closes the specified connection and removes it's entry from the cache - STDMETHOD(Remove)(LPCTSTR szID); - - // Method: Lookup - // Params: - // szConn: Specifies the connection string of the connection to look up - // ppDS: Out pointer to CDataSource object that is connected to the specified - // data source. - STDMETHOD(Lookup)(LPCTSTR szID, CDataConnection *pDS); - - // Method: Uninitialize - // Params: - // None - // Comments: - // Closes removes all connections from the cache. - STDMETHOD(Uninitialize)(); - -}; -#ifndef ATL_DS_CONN_STRING_LEN - #define ATL_DS_CONN_STRING_LEN 512 -#endif - -template <> -class CElementTraits< CDataConnection > : - public CElementTraitsBase< CDataConnection > -{ -public: - static ULONG Hash( INARGTYPE t ) - { - return( ULONG( ULONG_PTR( &t ) ) ); - } - - static bool CompareElements( INARGTYPE element1, INARGTYPE element2 ) - { - return( element1.m_session.m_spOpenRowset == element2.m_session.m_spOpenRowset); - } - - static int CompareElementsOrdered( INARGTYPE /*element1*/, INARGTYPE /*element2*/ ) - { - ATLASSERT(FALSE); - return -1; - } - -}; - -typedef CFixedStringT atlDataSourceKey; -typedef CAtlMap, CElementTraits > atlDataSourceCacheMap; - -template -class CDataSourceCache : - public IDataSourceCache, - public CComObjectRootEx -{ -public: - BEGIN_COM_MAP(CDataSourceCache) - COM_INTERFACE_ENTRY(IDataSourceCache) - END_COM_MAP() - - CDataSourceCache() - { - m_cs.Init(); - } - - virtual ~CDataSourceCache () - { - Uninitialize(); - } - - STDMETHOD(Uninitialize)() - { - HRESULT hr = m_cs.Lock(); - if (SUCCEEDED(hr)) - { - m_ConnectionMap.RemoveAll(); - m_cs.Unlock(); - } - - return hr; - } - - STDMETHOD(Add)(LPCTSTR szID, LPCOLESTR szConn, CDataConnection *pSession) - { - HRESULT hr = E_FAIL; - - if (!szID) - return E_INVALIDARG; // must have session name - - // Do a lookup to make sure we don't add multiple entries - // with the same name. Adding multiple entries with the same name - // could cause some entries to get orphaned. - hr = m_cs.Lock(); - if (FAILED(hr)) - { - return hr; - } - - const atlDataSourceCacheMap::CPair *pPair = - m_ConnectionMap.Lookup(szID); - if (!pPair) - { - // try to open connection - CDataConnection DS; - hr = DS.Open(szConn); - if (hr == S_OK) - { - _ATLTRY - { - if (m_ConnectionMap.SetAt(szID, DS)) - { - if (pSession) // we allow NULL here - *pSession = DS; // copy connection to output. - hr = S_OK; - } - else - hr = E_FAIL; // map add failed - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - } - } - else // lookup succeeded, entry is already in cache - { - // Instead of opening a new connection, just copy - // the one we already have in the cache. - if (pSession) - *pSession = pPair->m_value; - hr = S_OK; - } - m_cs.Unlock(); - return hr; - } - - STDMETHOD(Remove)(LPCTSTR szID) - { - HRESULT hr = E_INVALIDARG; - if (!szID) - return hr; // must have session name - - hr = m_cs.Lock(); - if (SUCCEEDED(hr)) - { - hr = m_ConnectionMap.RemoveKey(szID) ? S_OK : E_FAIL; - m_cs.Unlock(); - } - - return hr; - } - - STDMETHOD(Lookup)(LPCTSTR szID, CDataConnection *pSession) - { - if (!szID||!pSession) - return E_POINTER; - - HRESULT hr = m_cs.Lock(); - bool bRet = true; - if (SUCCEEDED(hr)) - { - bRet = m_ConnectionMap.Lookup(szID, *pSession); - m_cs.Unlock(); - } - - return (bRet && (bool)*pSession)? hr : E_FAIL; - } - -protected: - atlDataSourceCacheMap m_ConnectionMap; - TCritSec m_cs; -}; - - -// Some helpers for using the datasource cache. -// -// Function: GetDataSource -// Params: -// pProvider: Pointer to IServiceProvider that provides the -// data source cache service -// szID: The name of the connection (can be same as szDS) -// szDS: OLEDB connection string for data source -// ppDS: Out pointer to CDataSource. The CDataSource will be connected -// to the OLEDB provider specified by szDS on successful return. -// RetVal: -// Returns S_OK on success. -static HRESULT ATL_NOINLINE GetDataSource(IServiceProvider *pProvider, - LPCTSTR szID, LPCOLESTR szConn, - CDataConnection *pSession) -{ - if (!pProvider || !szID || !szConn) - return E_POINTER; - - CComPtr spDSCache; - HRESULT hr; - hr = pProvider->QueryService(__uuidof(IDataSourceCache), __uuidof(IDataSourceCache), (void**)&spDSCache); - if (hr == S_OK && spDSCache) - { - hr = spDSCache->Add(szID, szConn, pSession); - } - return hr; -} - -// -// Function: RemoveDataSource -// Params: -// pProvider: Pointer to IServiceProvider that provides the -// data source cache service -// szID: Name of the datasource connection to remove from the cache -// RetVal: -// none -// Comments: -// Removes the datasource entry from the datasource cache. Since entries are -// copied to the client on calls to lookup and add, removing an entry will not -// release the connections of existing clients. -static HRESULT ATL_NOINLINE RemoveDataSource(IServiceProvider *pProvider, LPCTSTR szID) -{ - if (!pProvider || !szID) - return E_POINTER; - - CComPtr spDSCache; - HRESULT hr = pProvider->QueryService(__uuidof(IDataSourceCache), __uuidof(IDataSourceCache), (void**)&spDSCache); - if (spDSCache) - hr = spDSCache->Remove(szID); - return hr; -} - -} // namespace ATL -#pragma pack(pop) - -#pragma warning (pop) - -#endif // __ATLCACHE_H__ diff --git a/ATL90/include/atlcrypt.h b/ATL90/include/atlcrypt.h deleted file mode 100644 index 8e8ac7d..0000000 --- a/ATL90/include/atlcrypt.h +++ /dev/null @@ -1,376 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLCRYPT_H__ -#define __ATLCRYPT_H__ - -#pragma once - -#include -#include - - -#pragma pack(push,_ATL_PACKING) -namespace ATL -{ - -class CCryptKey; - -class CCryptProv -{ -protected: - HCRYPTPROV m_hProv; - -public: - CCryptProv() throw(); - CCryptProv( const CCryptProv& prov ) throw(); - explicit CCryptProv( HCRYPTPROV hProv, BOOL bTakeOwnership = FALSE ) throw(); - ~CCryptProv() throw(); - - CCryptProv& operator=( const CCryptProv& prov ) throw(); - - HRESULT AddRef() throw(); - void Attach( HCRYPTPROV hProv, BOOL bTakeOwnership = FALSE ) throw(); - HCRYPTPROV Detach() throw(); - HRESULT Release() throw(); - - - HRESULT Initialize(DWORD dwProviderType = PROV_RSA_FULL, - LPCTSTR szContainer = NULL, LPCTSTR szProvider = MS_DEF_PROV, - DWORD dwFlags = 0) throw(); - HRESULT InitVerifyContext(DWORD dwProviderType = PROV_RSA_FULL, - LPCTSTR szProvider = MS_DEF_PROV, DWORD dwFlags = 0) throw(); - HRESULT InitCreateKeySet(DWORD dwProviderType = PROV_RSA_FULL, - LPCTSTR szContainer = NULL, LPCTSTR szProvider = MS_DEF_PROV, - DWORD dwFlags = 0) throw(); - - HRESULT DeleteKeySet(DWORD dwProviderType = PROV_RSA_FULL, - LPCTSTR szContainer = NULL, LPCTSTR szProvider = MS_DEF_PROV, - DWORD dwFlags = 0) throw(); - - HRESULT Uninitialize(); - - HRESULT GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags = 0) throw(); - HRESULT SetParam( DWORD dwParam, BYTE* pbData, DWORD dwFlags = 0) throw(); - HRESULT GetName(__out_ecount_part_z(*pdwLength, *pdwLength) LPSTR szBuf, __inout DWORD * pdwLength) throw(); - HRESULT GetContainer(__out_ecount_part_z(*pdwLength, *pdwLength) LPSTR szBuf, __inout DWORD * pdwLength) throw(); - HRESULT GetImpType(DWORD * pdwImpType) throw(); - HRESULT GetVersion(DWORD * pdwVersion) throw(); - HRESULT GetProvType(DWORD * pdwType) throw(); - HRESULT GetSecurityDesc(SECURITY_INFORMATION * pSecInfo) throw(); - HRESULT SetSecurityDesc(SECURITY_INFORMATION SecInfo) throw(); - - HRESULT GenRandom(ULONG nLength, BYTE* pbBuffer ) throw(); - - inline HCRYPTPROV GetHandle() throw() - { - return m_hProv; - } -}; // class CCryptProv - - -// class CCryptHash -// Provides base functionality of hashes. -class CCryptHash -{ -protected: - HCRYPTHASH m_hHash; - -public: - CCryptHash() throw(); - CCryptHash( const CCryptHash& hash ) throw(); - explicit CCryptHash( HCRYPTHASH hHash, BOOL bTakeOwnership = FALSE ) throw(); - ~CCryptHash() throw(); - - void Attach( HCRYPTHASH hHash, BOOL bTakeOwnership = FALSE ) throw(); - void Destroy() throw(); - HCRYPTHASH Detach() throw(); - HCRYPTHASH Duplicate() const throw(); - - HRESULT Uninitialize() throw(); - HRESULT Detach(HCRYPTHASH * phHash) throw(); - HRESULT AddData(const BYTE * pbData, DWORD dwDataLen, DWORD dwFlags = 0) throw(); - HRESULT AddString(LPCTSTR szData, DWORD dwFlags = 0) throw(); - HRESULT GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags = 0) throw(); - HRESULT SetParam(DWORD dwParam, BYTE * pbData, DWORD dwFlags = 0) throw(); - HRESULT GetAlgId(ALG_ID * pAlgId) throw(); - HRESULT GetSize(DWORD * pdwSize) throw(); - HRESULT GetValue(BYTE * pBuf, DWORD * pdwSize) throw(); - HRESULT SetValue(BYTE * pBuf) throw(); - HRESULT Sign( - BYTE * pbSignature, - DWORD * pdwSigLen, - DWORD dwFlags = 0, - DWORD dwKeySpec = AT_SIGNATURE) throw(); - HRESULT VerifySignature( - const BYTE * pbSignature, - DWORD pdwSignLen, - CCryptKey &PubKey, - DWORD dwFlags = 0) throw(); - - inline HCRYPTHASH GetHandle() - { - return m_hHash; - } - static CCryptHash EmptyHash; - -}; // class CCryptHash - -// class CCryptKey -// Provides the functionality for cryptographic keys, i.e. encrypting, decrypting. -class CCryptKey -{ -protected: - HCRYPTKEY m_hKey; - -public: - CCryptKey() throw(); - CCryptKey( const CCryptKey& key ) throw(); - explicit CCryptKey( HCRYPTKEY hKey, BOOL bTakeOwnership = FALSE ) throw(); - ~CCryptKey() throw(); - - void Attach( HCRYPTKEY hKey, BOOL bTakeOwnership = FALSE ) throw(); - void Destroy() throw(); - HCRYPTKEY Detach() throw(); - HCRYPTKEY Duplicate() const throw(); - - HRESULT Uninitialize() throw(); - HRESULT Encrypt( - BOOL final, - BYTE * pbData, - DWORD * pdwDataLen, - DWORD dwBufLen, - CCryptHash &Hash = CCryptHash::EmptyHash) throw(); - - HRESULT Encrypt( - const BYTE * pbPlainText, - DWORD dwPlainTextLen, - BYTE * pbCipherText, - DWORD * pdwCipherTextLen, - CCryptHash &Hash = CCryptHash::EmptyHash) throw(); - - HRESULT Decrypt( - BOOL final, - BYTE * pbData, - DWORD * pdwDataLen, - CCryptHash &Hash = CCryptHash::EmptyHash) throw(); - HRESULT Decrypt( - const BYTE * pbCipherText, - DWORD dwCipherTextLen, - BYTE * pbPlainText, - DWORD * pdwPlainTextLen, - CCryptHash &Hash = CCryptHash::EmptyHash) throw(); - HRESULT EncryptString( - LPCTSTR szPlainText, - BYTE * pbCipherText, - DWORD * pdwCipherTextLen, - CCryptHash &Hash = CCryptHash::EmptyHash) throw(); - HRESULT ExportSimpleBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw(); - HRESULT ExportPublicKeyBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw(); - HRESULT ExportPrivateKeyBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw(); - HRESULT GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags = 0) throw(); - HRESULT SetParam(DWORD dwParam, BYTE * pbData, DWORD dwFlags = 0) throw(); - HRESULT GetAlgId(ALG_ID * pAlgId) throw(); - HRESULT SetAlgId(ALG_ID AlgId, DWORD dwFlags) throw(); - HRESULT GetBlockLength(DWORD * pdwBlockLen) throw(); - HRESULT GetKeyLength(DWORD * pdwKeyLen) throw(); - HRESULT GetSalt(BYTE * pbSalt, DWORD * pdwLength) throw(); - HRESULT SetSalt(BYTE * pbSalt) throw(); - HRESULT SetSaltEx(_CRYPTOAPI_BLOB * pBlobSalt) throw(); - HRESULT GetPermissions(DWORD * pdwPerms) throw(); - HRESULT SetPermissions(DWORD dwPerms) throw(); - HRESULT GetP(BYTE * pbP, DWORD * pdwLength) throw(); - HRESULT SetP(_CRYPTOAPI_BLOB * pBlobP) throw(); - HRESULT SetP(BYTE * pbP, DWORD dwLength) throw(); - HRESULT GetQ(BYTE * pbQ, DWORD * pdwLength) throw(); - HRESULT SetQ(_CRYPTOAPI_BLOB * pBlobQ) throw(); - HRESULT SetQ(BYTE * pbQ, DWORD dwLength) throw(); - HRESULT GetG(BYTE * pbG, DWORD * pdwLength) throw(); - HRESULT SetG(_CRYPTOAPI_BLOB * pBlobG) throw(); - HRESULT SetG(BYTE * pbG, DWORD dwLength) throw(); - HRESULT SetX() throw(); - HRESULT GetEffKeyLen(DWORD * pdwEffKeyLen) throw(); - HRESULT SetEffKeyLen(DWORD dwEffKeyLen) throw(); - HRESULT GetPadding(DWORD * pdwPadding) throw(); - HRESULT SetPadding(DWORD dwPadding) throw(); - HRESULT GetIV(BYTE * pbIV, DWORD * pdwLength) throw(); - HRESULT SetIV(BYTE * pbIV) throw(); - HRESULT GetMode(DWORD * pdwMode) throw(); - HRESULT SetMode(DWORD dwMode) throw(); - HRESULT GetModeBits(DWORD * pdwModeBits) throw(); - HRESULT SetModeBits(DWORD dwModeBits) throw(); - - inline HCRYPTKEY GetHandle() throw() - { - return m_hKey; - } - - static CCryptKey EmptyKey; -}; // class CCryptKey - - - -// Specific instances of Keys and Hashes - -// class CCryptDerivedKey -// A key that is derived from a hashed password. Two keys derived -// from the same password will be identical. -class CCryptDerivedKey : public CCryptKey -{ -public: - HRESULT Initialize( - CCryptProv &Prov, - CCryptHash &Hash, - ALG_ID algid = CALG_RC4, - DWORD dwFlags = CRYPT_EXPORTABLE) throw(); -}; // class CCryptDerivedKey - -// class CCryptRandomKey -// A randomly generated key. Can be used internally by a program -// to protect data during execution, or can be exported with Crypt.Export -// -// Currently it is possible to pass in AT_KEYEXCHANGE or AT_SIGNATURE -// for algid, but these two will generate keys for the current key set, and -// the resulting handle can only be used for exporting and importing keys or -// signing hashes. -class CCryptRandomKey : public CCryptKey -{ -public: - HRESULT Initialize( - CCryptProv &Prov, - ALG_ID algid = CALG_RC4, - DWORD dwFlags = CRYPT_EXPORTABLE) throw(); -}; // class CCryptRandomKey - -// class CCryptUserExKey -// Obtains the user's key exchange key pair. -class CCryptUserExKey : public CCryptKey -{ -public: - HRESULT Initialize(CCryptProv &Prov) throw(); - HRESULT Create(CCryptProv &Prov) throw(); -}; // class CCryptUserExKey - -// class CCryptUserSigKey -// Obtains the user's signature key pair -class CCryptUserSigKey : public CCryptKey -{ -public: - HRESULT Initialize(CCryptProv &Prov) throw(); - HRESULT Create(CCryptProv &Prov) throw(); -}; // class CCryptUserSigKey - -// class CCryptImportKey -// Forms a key from an imported key blob -class CCryptImportKey : public CCryptKey -{ -public: - HRESULT Initialize( - CCryptProv &Prov, - BYTE * pbData, - DWORD dwDataLen, - CCryptKey &PubKey, - DWORD dwFlags) throw(); -}; // class CCryptImportKey - - -// class CCryptHash -// A generic hash that may or may not take a key. -class CCryptKeyedHash : public CCryptHash -{ -public: - - HRESULT Initialize(CCryptProv &Prov, ALG_ID Algid, CCryptKey &Key, DWORD dwFlags) throw(); -}; // class CCryptKeyedHash - -// class CCryptMD5Hash -// RSA's MD5 hash (RSA's most recent hash as of 9/7/99); -class CCryptMD5Hash : public CCryptHash -{ -public: - - HRESULT Initialize(CCryptProv &Prov, LPCTSTR szText = NULL) throw(); -}; // class CCryptMD5Hash - -// class CCryptMD4Hash -// RSA's MD4 hash -class CCryptMD4Hash : public CCryptHash -{ -public: - - HRESULT Initialize(CCryptProv &Prov, LPCTSTR szText = NULL) throw(); -}; // class CCryptMD4Hash - - -// class CCryptMD2Hash -// RSA's MD2 hash -class CCryptMD2Hash : public CCryptHash -{ -public: - - HRESULT Initialize(CCryptProv &Prov, LPCTSTR szText = NULL) throw(); -}; // class CCryptMD2Hash - - -// class CCryptSHAHash -// The Secure Hash Algorithm hash, from NIST and NSA. Technically, SHA-1. -class CCryptSHAHash : public CCryptHash -{ -public: - - HRESULT Initialize(CCryptProv &Prov, LPCTSTR szText = NULL) throw(); -}; // class CCryptSHAHash - -// The Secure Hash Algorithm, from NIST and NSA. Identical to CCryptSHA -typedef CCryptSHAHash CCryptSHA1Hash; - - -// class CCryptHMACHash -// Hash-base Message Authentication Code keyed hash -class CCryptHMACHash : public CCryptHash -{ -public: - HRESULT Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText = NULL) throw(); -}; // class CCryptHMACHash - -// class CCryptMACHash -// Message Authentication Code keyed hash. Believed to be less secure than HMAC -class CCryptMACHash : public CCryptHash -{ -public: - HRESULT Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText = NULL) throw(); -}; // class CCryptMACHash - -// class CCryptSSL3SHAMD5Hash -// Hash algorithm used by Secure Socket Layer -class CCryptSSL3SHAMD5Hash : public CCryptHash -{ -public: - HRESULT Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText = NULL) throw(); -}; // class CCryptSSl3SHAMD5Hash - -}; // namespace ATL - - -#include -#pragma pack(pop) -#endif // __ATLCRYPT_H__ diff --git a/ATL90/include/atlcrypt.inl b/ATL90/include/atlcrypt.inl deleted file mode 100644 index bfd119f..0000000 --- a/ATL90/include/atlcrypt.inl +++ /dev/null @@ -1,1062 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - - -#ifndef __ATLCRYPT_INL__ -#define __ATLCRYPT_INL__ - -#pragma once - -#ifndef __ATLCRYPT_H__ - #error atlcrypt.inl requires atlcrypt.h to be included first -#endif - - -namespace ATL -{ - -inline CCryptProv::CCryptProv( const CCryptProv& prov ) throw() -{ - m_hProv = prov.m_hProv; - if (m_hProv) - AddRef(); -} - -inline CCryptProv::CCryptProv( HCRYPTPROV hProv, BOOL bTakeOwnership ) throw() -{ - m_hProv = hProv; - if (m_hProv && !bTakeOwnership) - AddRef(); -} - -inline CCryptProv::~CCryptProv() throw() -{ - Release(); -} - -inline CCryptProv& CCryptProv::operator=( const CCryptProv& prov ) throw() -{ - if(this!=&prov) - { - Release(); - - m_hProv = prov.m_hProv; - if( m_hProv != NULL ) - { - AddRef(); - } - } - return( *this ); -} - -inline HRESULT CCryptProv::AddRef() throw() -{ - ATLASSUME( m_hProv != NULL ); - - if (!CryptContextAddRef( m_hProv, NULL, 0)) - { - return AtlHresultFromLastError(); - } - return S_OK; -} - -inline void CCryptProv::Attach( HCRYPTPROV hProv, BOOL bTakeOwnership ) throw() -{ - ATLASSUME( m_hProv == NULL ); - - m_hProv = hProv; - if (m_hProv && !bTakeOwnership) - AddRef(); -} - -inline HCRYPTPROV CCryptProv::Detach() throw() -{ - HCRYPTPROV hProv; - - hProv = m_hProv; - m_hProv = NULL; - - return( hProv ); -} - - -inline CCryptProv::CCryptProv() throw() : - m_hProv( NULL ) -{ -} - -inline HRESULT CCryptProv::Release() throw() -{ - if( m_hProv != NULL ) - { - if (!CryptReleaseContext( m_hProv, 0 )) - { - return AtlHresultFromLastError(); - } - m_hProv = NULL; - } - return S_OK; -} - -inline HRESULT CCryptProv::Initialize( - DWORD dwProviderType, - LPCTSTR szContainer, - LPCTSTR szProvider, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hProv == NULL); - - if (!CryptAcquireContext(&m_hProv, szContainer, szProvider, dwProviderType, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptProv::InitVerifyContext( - DWORD dwProviderType, - LPCTSTR szProvider, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hProv == NULL); - - if (!CryptAcquireContext(&m_hProv, NULL, szProvider, dwProviderType, CRYPT_VERIFYCONTEXT | dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptProv::InitCreateKeySet( - DWORD dwProviderType, - LPCTSTR szContainer, - LPCTSTR szProvider, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hProv == NULL); - - if (!CryptAcquireContext(&m_hProv, szContainer, szProvider, dwProviderType, CRYPT_NEWKEYSET | dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptProv::DeleteKeySet( - DWORD dwProviderType, - LPCTSTR szContainer, - LPCTSTR szProvider, - DWORD dwFlags) throw() -{ - HCRYPTPROV hProv = NULL; - if (!CryptAcquireContext(&hProv, szContainer, szProvider, dwProviderType, CRYPT_DELETEKEYSET | dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - - -inline HRESULT CCryptProv::Uninitialize() throw() -{ - ATLASSUME(m_hProv != NULL); - - if (!CryptReleaseContext(m_hProv, 0)) - { - return AtlHresultFromLastError(); - } - else - { - m_hProv = NULL; - return S_OK; - } -} - -inline HRESULT CCryptProv::GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags) throw() -{ - ATLASSUME(m_hProv != NULL); - - if (!CryptGetProvParam(m_hProv, dwParam, pbData, pdwDataLen, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptProv::SetParam( DWORD dwParam, BYTE* pbData, DWORD dwFlags) throw() -{ - ATLASSUME(m_hProv != NULL); - - if (!CryptSetProvParam(m_hProv, dwParam, pbData, dwFlags )) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptProv::GetName(__out_bcount_part(*pdwLength, *pdwLength) LPSTR szBuf, __inout DWORD * pdwLength) throw() -{ - return GetParam(PP_NAME, (BYTE *)szBuf, pdwLength); -} - -inline HRESULT CCryptProv::GetContainer(__out_bcount_part(*pdwLength, *pdwLength) LPSTR szBuf, __inout DWORD * pdwLength) throw() -{ - return GetParam(PP_CONTAINER, (BYTE *)szBuf, pdwLength); -} - -inline HRESULT CCryptProv::GetImpType(DWORD * pdwImpType) throw() -{ - DWORD dwLength = sizeof(DWORD); - return GetParam(PP_IMPTYPE, (BYTE *)pdwImpType, &dwLength); -} - -inline HRESULT CCryptProv::GetVersion(DWORD * pdwVersion) throw() -{ - DWORD dwLength = sizeof(DWORD); - return GetParam(PP_VERSION, (BYTE *)pdwVersion, &dwLength); -} - -inline HRESULT CCryptProv::GetProvType(DWORD * pdwType) throw() -{ - DWORD dwLength = sizeof(DWORD); - return GetParam(PP_PROVTYPE, (BYTE * )pdwType, &dwLength); -} - -inline HRESULT CCryptProv::GetSecurityDesc(SECURITY_INFORMATION * pSecInfo) throw() -{ - DWORD dwSize = sizeof(SECURITY_INFORMATION); - return GetParam(PP_KEYSET_SEC_DESCR, (BYTE *)pSecInfo, &dwSize); -} - -inline HRESULT CCryptProv::SetSecurityDesc(SECURITY_INFORMATION SecInfo) throw() -{ - return SetParam(PP_KEYSET_SEC_DESCR, (BYTE *)&SecInfo); -} - -inline HRESULT CCryptProv::GenRandom(ULONG nLength, BYTE* pbBuffer ) throw() -{ - ATLASSUME(m_hProv != NULL); - - if (!CryptGenRandom( m_hProv, nLength, pbBuffer )) - { - return AtlHresultFromLastError(); - } - - return S_OK; -} - -inline CCryptHash::CCryptHash() throw() : - m_hHash( NULL ) -{ -} - -inline CCryptHash::CCryptHash( const CCryptHash& hash ) throw() -{ - m_hHash = hash.Duplicate(); -} - -inline CCryptHash::CCryptHash( HCRYPTHASH hHash, BOOL bTakeOwnership ) throw() -{ - if (bTakeOwnership) - m_hHash = hHash; - else - { - m_hHash = NULL; - BOOL bRet = ::CryptDuplicateHash( hHash, NULL, 0, &m_hHash ); - if (!bRet) - m_hHash = NULL; - } -} - -inline CCryptHash::~CCryptHash() throw() -{ - Destroy(); -} - -inline void CCryptHash::Attach( HCRYPTHASH hHash, BOOL bTakeOwnership ) throw() -{ - ATLASSUME( m_hHash == NULL ); - - if (bTakeOwnership) - m_hHash = hHash; - else - { - m_hHash = NULL; - BOOL bRet = ::CryptDuplicateHash( hHash, NULL, 0, &m_hHash ); - if (!bRet) - m_hHash = NULL; - } -} - -inline void CCryptHash::Destroy() throw() -{ - if( m_hHash != NULL ) - { - BOOL bSuccess; - - bSuccess = ::CryptDestroyHash( m_hHash ); - - // can fail if the cryptographic service provider - // (managed by CCryptProv) has already been destroyed - ATLASSERT( bSuccess ); - m_hHash = NULL; - } -} - -inline HCRYPTHASH CCryptHash::Detach() throw() -{ - HCRYPTHASH hHash; - - hHash = m_hHash; - m_hHash = NULL; - - return hHash; -} - -inline HCRYPTHASH CCryptHash::Duplicate() const throw() -{ - BOOL bSuccess; - HCRYPTHASH hHash; - - ATLASSUME( m_hHash != NULL ); - - hHash = NULL; - bSuccess = ::CryptDuplicateHash( m_hHash, NULL, 0, &hHash ); - if( !bSuccess ) - { - return NULL; - } - - return hHash; -} - -inline HRESULT CCryptHash::Uninitialize() throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptDestroyHash(m_hHash)) - { - return AtlHresultFromLastError(); - } - else - { - m_hHash = NULL; - return S_OK; - } -} - -inline HRESULT CCryptHash::Detach(HCRYPTHASH * phHash) throw() -{ - ATLASSERT(phHash); - if (!phHash) - return E_INVALIDARG; - - *phHash = m_hHash; - m_hHash = NULL; - - return S_OK; -} - -inline HRESULT CCryptHash::AddData(const BYTE * pbData, DWORD dwDataLen, DWORD dwFlags) throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptHashData(m_hHash, pbData, dwDataLen, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; - -} - -inline HRESULT CCryptHash::AddString(LPCTSTR szData, DWORD dwFlags) throw() -{ - return AddData((BYTE *)szData, (DWORD)_tcslen(szData) * sizeof(TCHAR), dwFlags); -} - -inline HRESULT CCryptHash::GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags) throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptGetHashParam(m_hHash, dwParam, pbData, pdwDataLen, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptHash::SetParam(DWORD dwParam, BYTE * pbData, DWORD dwFlags) throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptSetHashParam(m_hHash, dwParam, pbData, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptHash::GetAlgId(ALG_ID * pAlgId) throw() -{ - DWORD dwSize = sizeof(ALG_ID); - return GetParam(HP_ALGID, (BYTE *)pAlgId, &dwSize); -} - -inline HRESULT CCryptHash::GetSize(DWORD * pdwSize) throw() -{ - DWORD dwLength = sizeof(DWORD); - return GetParam(HP_HASHSIZE, (BYTE *)pdwSize, &dwLength); -} - -inline HRESULT CCryptHash::GetValue(BYTE * pBuf, DWORD * pdwSize) throw() -{ - return GetParam(HP_HASHVAL, pBuf, pdwSize); -} - -inline HRESULT CCryptHash::SetValue(BYTE * pBuf) throw() -{ - return SetParam(HP_HASHVAL, pBuf); -} - -inline HRESULT CCryptHash::Sign( - BYTE * pbSignature, - DWORD * pdwSigLen, - DWORD dwFlags, - DWORD dwKeySpec) throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptSignHash(m_hHash, dwKeySpec, NULL, dwFlags, pbSignature, pdwSigLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptHash::VerifySignature( - const BYTE * pbSignature, - DWORD dwSigLen, - CCryptKey &PubKey, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hHash != NULL); - - if (!CryptVerifySignature(m_hHash, pbSignature, dwSigLen, PubKey.GetHandle(), NULL, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -__declspec(selectany) CCryptHash CCryptHash::EmptyHash = CCryptHash(); -__declspec(selectany) CCryptKey CCryptKey::EmptyKey = CCryptKey(); -inline CCryptKey::CCryptKey() throw() : - m_hKey( NULL ) -{ -} - -inline CCryptKey::CCryptKey( const CCryptKey& key ) throw() -{ - m_hKey = key.Duplicate(); -} - -inline CCryptKey::CCryptKey( HCRYPTKEY hKey, BOOL bTakeOwnership ) throw() -{ - if (bTakeOwnership) - m_hKey = hKey; - else - { - BOOL bSuccess = ::CryptDuplicateKey( hKey, NULL, 0, &m_hKey ); - if( !bSuccess ) - m_hKey = NULL; - } -} - -inline CCryptKey::~CCryptKey() throw() -{ - Destroy(); -} - -inline void CCryptKey::Attach( HCRYPTKEY hKey, BOOL bTakeOwnership ) throw() -{ - ATLASSUME( m_hKey == NULL ); - if (bTakeOwnership) - m_hKey = hKey; - else - { - BOOL bSuccess = ::CryptDuplicateKey( hKey, NULL, 0, &m_hKey ); - if( !bSuccess ) - m_hKey = NULL; - } -} - -inline void CCryptKey::Destroy() throw() -{ - if( m_hKey != NULL ) - { - BOOL bSuccess; - - bSuccess = ::CryptDestroyKey( m_hKey ); - - // can fail if the cryptographic service provider - // (managed by CCryptProv) has already been destroyed - ATLASSERT( bSuccess ); - m_hKey = NULL; - } -} - -inline HCRYPTKEY CCryptKey::Detach() throw() -{ - HCRYPTKEY hKey; - - hKey = m_hKey; - m_hKey = NULL; - - return( hKey ); -} - -inline HCRYPTKEY CCryptKey::Duplicate() const throw() -{ - BOOL bSuccess; - - ATLASSUME( m_hKey != NULL ); - - HCRYPTKEY hKey = NULL; - bSuccess = ::CryptDuplicateKey( m_hKey, NULL, 0, &hKey ); - if( !bSuccess ) - return NULL; - - return hKey; -} - -inline HRESULT CCryptKey::Uninitialize() throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptDestroyKey(m_hKey)) - { - return AtlHresultFromLastError(); - } - else - { - m_hKey = NULL; - return S_OK; - } -} - -inline HRESULT CCryptKey::Encrypt( - BOOL final, - BYTE * pbData, - DWORD * pdwDataLen, - DWORD dwBufLen, - CCryptHash &Hash) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!::CryptEncrypt(m_hKey, Hash.GetHandle(), final, 0, pbData, pdwDataLen, dwBufLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; - -} - -inline HRESULT CCryptKey::Decrypt(BOOL final, BYTE * pbData, DWORD * pdwDataLen, CCryptHash &Hash) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!::CryptDecrypt(m_hKey, Hash.GetHandle(), final, 0, pbData, pdwDataLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - - -inline HRESULT CCryptKey::Encrypt( - const BYTE * pbPlainText, - DWORD dwPlainTextLen, - BYTE * pbCipherText, - DWORD * pdwCipherTextLen, - CCryptHash &Hash) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (*pdwCipherTextLen < dwPlainTextLen) - return ERROR_MORE_DATA; - - Checked::memcpy_s(pbCipherText, dwPlainTextLen, pbPlainText, dwPlainTextLen); - DWORD dwSize = dwPlainTextLen; - if (!::CryptEncrypt(m_hKey, Hash.GetHandle(), TRUE, 0, pbCipherText, &dwSize, *pdwCipherTextLen)) - { - return AtlHresultFromLastError(); - } - - *pdwCipherTextLen = dwSize; - return S_OK; - -} - -inline HRESULT CCryptKey::Decrypt( - const BYTE * pbCipherText, - DWORD dwCipherTextLen, - BYTE * pbPlainText, - DWORD * pdwPlainTextLen, - CCryptHash &Hash) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (*pdwPlainTextLen < dwCipherTextLen) - return ERROR_MORE_DATA; - - Checked::memcpy_s(pbPlainText, dwCipherTextLen, pbCipherText, dwCipherTextLen); - DWORD dwSize = dwCipherTextLen; - if (!::CryptDecrypt(m_hKey, Hash.GetHandle(), TRUE, 0, pbPlainText, &dwSize)) - { - return AtlHresultFromLastError(); - } - - *pdwPlainTextLen = dwSize; - return S_OK; -} - -inline HRESULT CCryptKey::EncryptString( - LPCTSTR szPlainText, - BYTE * pbCipherText, - DWORD * pdwCipherTextLen, - CCryptHash &Hash) throw() -{ - DWORD dwSize = ((DWORD)_tcslen(szPlainText) + 1) * sizeof(TCHAR); - return Encrypt((BYTE *)szPlainText, dwSize, pbCipherText, pdwCipherTextLen, Hash); -} - -inline HRESULT CCryptKey::ExportSimpleBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptExportKey(m_hKey, ExpKey.GetHandle(), SIMPLEBLOB, dwFlags, pbData, pdwDataLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKey::ExportPublicKeyBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptExportKey(m_hKey, ExpKey.GetHandle(), PUBLICKEYBLOB, dwFlags, pbData, pdwDataLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKey::ExportPrivateKeyBlob( - CCryptKey &ExpKey, - DWORD dwFlags, - BYTE * pbData, - DWORD * pdwDataLen) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptExportKey(m_hKey, ExpKey.GetHandle(), PRIVATEKEYBLOB, dwFlags, pbData, pdwDataLen)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKey::GetParam(DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptGetKeyParam(m_hKey, dwParam, pbData, pdwDataLen, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKey::SetParam(DWORD dwParam, BYTE * pbData, DWORD dwFlags) throw() -{ - ATLASSUME(m_hKey != NULL); - - if (!CryptSetKeyParam(m_hKey, dwParam, pbData, dwFlags)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKey::GetAlgId(ALG_ID * pAlgId) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_ALGID, (BYTE *)pAlgId, &dwSize); -} - -inline HRESULT CCryptKey::SetAlgId(ALG_ID AlgId, DWORD dwFlags) throw() -{ - return SetParam(KP_ALGID, (BYTE *)&AlgId, dwFlags); -} - -inline HRESULT CCryptKey::GetBlockLength(DWORD * pdwBlockLen) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_BLOCKLEN, (BYTE *)pdwBlockLen, &dwSize); -} - -inline HRESULT CCryptKey::GetKeyLength(DWORD * pdwKeyLen) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_KEYLEN, (BYTE *)pdwKeyLen, &dwSize); -} - -inline HRESULT CCryptKey::GetSalt(BYTE * pbSalt, DWORD * pdwLength) throw() -{ - return GetParam(KP_SALT, pbSalt, pdwLength); -} - -inline HRESULT CCryptKey::SetSalt(BYTE * pbSalt) throw() -{ - return SetParam(KP_SALT, pbSalt); -} - -inline HRESULT CCryptKey::SetSaltEx(_CRYPTOAPI_BLOB * pBlobSalt) throw() -{ - return SetParam(KP_SALT_EX, (BYTE *)pBlobSalt); -} - -inline HRESULT CCryptKey::GetPermissions(DWORD * pdwPerms) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_PERMISSIONS, (BYTE *)pdwPerms, &dwSize); -} - -inline HRESULT CCryptKey::SetPermissions(DWORD dwPerms) throw() -{ - return SetParam(KP_PERMISSIONS, (BYTE *)&dwPerms); -} - -inline HRESULT CCryptKey::GetP(BYTE * pbP, DWORD * pdwLength) throw() -{ - return GetParam(KP_P, (BYTE *)pbP, pdwLength); -} - -inline HRESULT CCryptKey::SetP(_CRYPTOAPI_BLOB * pBlobP) throw() -{ - return SetParam(KP_P, (BYTE *)pBlobP); -} - -inline HRESULT CCryptKey::SetP(BYTE * pbP, DWORD dwLength) throw() -{ - _CRYPTOAPI_BLOB blob = { dwLength, pbP }; - return SetParam(KP_P, (BYTE *)&blob); -} - -inline HRESULT CCryptKey::GetQ(BYTE * pbQ, DWORD * pdwLength) throw() -{ - return GetParam(KP_Q, (BYTE *)pbQ, pdwLength); -} - -inline HRESULT CCryptKey::SetQ(_CRYPTOAPI_BLOB * pBlobQ) throw() -{ - return SetParam(KP_Q, (BYTE *)pBlobQ); -} - -inline HRESULT CCryptKey::SetQ(BYTE * pbQ, DWORD dwLength) throw() -{ - _CRYPTOAPI_BLOB blob = { dwLength, pbQ }; - return SetParam(KP_Q, (BYTE *)&blob); -} - -inline HRESULT CCryptKey::GetG(BYTE * pbG, DWORD * pdwLength) throw() -{ - return GetParam(KP_G, (BYTE *)pbG, pdwLength); -} - -inline HRESULT CCryptKey::SetG(_CRYPTOAPI_BLOB * pBlobG) throw() -{ - return SetParam(KP_G, (BYTE *)pBlobG); -} - -inline HRESULT CCryptKey::SetG(BYTE * pbG, DWORD dwLength) throw() -{ - _CRYPTOAPI_BLOB blob = { dwLength, pbG }; - return SetParam(KP_G, (BYTE *)&blob); -} - -inline HRESULT CCryptKey::SetX() throw() -{ - return SetParam(KP_X, NULL); -} - -inline HRESULT CCryptKey::GetEffKeyLen(DWORD * pdwEffKeyLen) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_EFFECTIVE_KEYLEN, (BYTE *)pdwEffKeyLen, &dwSize); -} - -inline HRESULT CCryptKey::SetEffKeyLen(DWORD dwEffKeyLen) throw() -{ - return SetParam(KP_EFFECTIVE_KEYLEN, (BYTE *)&dwEffKeyLen); -} - -inline HRESULT CCryptKey::GetPadding(DWORD * pdwPadding) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_PADDING, (BYTE *)pdwPadding, &dwSize); -} - -inline HRESULT CCryptKey::SetPadding(DWORD dwPadding) throw() -{ - return SetParam(KP_PADDING, (BYTE *)&dwPadding); -} - -inline HRESULT CCryptKey::GetIV(BYTE * pbIV, DWORD * pdwLength) throw() -{ - return GetParam(KP_IV, pbIV, pdwLength); -} - -inline HRESULT CCryptKey::SetIV(BYTE * pbIV) throw() -{ - return SetParam(KP_IV, pbIV); -} - -inline HRESULT CCryptKey::GetMode(DWORD * pdwMode) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_MODE, (BYTE *)pdwMode, &dwSize); -} - -inline HRESULT CCryptKey::SetMode(DWORD dwMode) throw() -{ - return SetParam(KP_MODE, (BYTE *)&dwMode); -} - -inline HRESULT CCryptKey::GetModeBits(DWORD * pdwModeBits) throw() -{ - DWORD dwSize = sizeof(DWORD); - return GetParam(KP_MODE_BITS, (BYTE *)pdwModeBits, &dwSize); -} - -inline HRESULT CCryptKey::SetModeBits(DWORD dwModeBits) throw() -{ - return SetParam(KP_MODE_BITS, (BYTE *)&dwModeBits); -} - -inline HRESULT CCryptDerivedKey::Initialize( - CCryptProv &Prov, - CCryptHash &Hash, - ALG_ID algid, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptDeriveKey(Prov.GetHandle(), algid, Hash.GetHandle(), dwFlags, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptRandomKey::Initialize(CCryptProv &Prov, ALG_ID algid, DWORD dwFlags) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptGenKey(Prov.GetHandle(), algid, dwFlags, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; - -} - -inline HRESULT CCryptUserExKey::Initialize(CCryptProv &Prov) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptGetUserKey(Prov.GetHandle(), AT_KEYEXCHANGE, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptUserExKey::Create(CCryptProv &Prov) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptGenKey(Prov.GetHandle(), AT_KEYEXCHANGE, 0, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptUserSigKey::Initialize(CCryptProv &Prov) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptGetUserKey(Prov.GetHandle(), AT_SIGNATURE, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptUserSigKey::Create(CCryptProv &Prov) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptGenKey(Prov.GetHandle(), AT_SIGNATURE, 0, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptImportKey::Initialize( - CCryptProv &Prov, - BYTE * pbData, - DWORD dwDataLen, - CCryptKey &PubKey, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hKey == NULL); - - if (!CryptImportKey(Prov.GetHandle(), pbData, dwDataLen, PubKey.GetHandle(), dwFlags, &m_hKey)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptKeyedHash::Initialize( - CCryptProv &Prov, - ALG_ID Algid, - CCryptKey &Key, - DWORD dwFlags) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), Algid, Key.GetHandle(), dwFlags, &m_hHash)) - { - return AtlHresultFromLastError(); - } - else return S_OK; -} - -inline HRESULT CCryptMD5Hash::Initialize(CCryptProv &Prov, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_MD5, 0, 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - - if (szText!=NULL) - return AddString(szText); - else return S_OK; -} - -inline HRESULT CCryptMD4Hash::Initialize(CCryptProv &Prov, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_MD4, 0, 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; -} - -inline HRESULT CCryptMD2Hash::Initialize(CCryptProv &Prov, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_MD2, 0, 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; -} - -inline HRESULT CCryptSHAHash::Initialize(CCryptProv &Prov, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_SHA, 0, 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; -} - -inline HRESULT CCryptHMACHash::Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_HMAC, Key.GetHandle(), 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; - -} - -inline HRESULT CCryptMACHash::Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_MAC, Key.GetHandle(), 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; - -} - -inline HRESULT CCryptSSL3SHAMD5Hash::Initialize(CCryptProv &Prov, CCryptKey &Key, LPCTSTR szText) throw() -{ - ATLASSUME(m_hHash == NULL); - - if (!CryptCreateHash(Prov.GetHandle(), CALG_SSL3_SHAMD5, Key.GetHandle(), 0, &m_hHash)) - { - return AtlHresultFromLastError(); - } - if (szText!=NULL) - return AddString(szText); - else return S_OK; - -} - -}; // namespace ATL - -#endif //__ATLCRYPT_INL__ diff --git a/ATL90/include/atlextmgmt.h b/ATL90/include/atlextmgmt.h deleted file mode 100644 index 59f8d43..0000000 --- a/ATL90/include/atlextmgmt.h +++ /dev/null @@ -1,1279 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLEXTMGMT_H__ -#define __ATLEXTMGMT_H__ - -#pragma once -#pragma warning(push) -#pragma warning(disable: 4702) -#include -#include -#include -#include - -// -// You can change the local group that is used for authorizing -// site administrators by #define'ing ATL_DEFAULT_AUTH group -// to something else before including this header file. For -// example: -// #define ATL_DEFAULT_AUTHGRP CSid(_T("My Heros")) -// Verify that the logged on user is a member of -// the local group 'My Heros' before allowing them to -// administrate this site. -// -// #define ATL_DEFAULT_AUTHGRP Sids::World -// Allow everyone access -// -// #define ATL_DEFAULT_AUTHGRP Sids::Null -// Allow no one access -// -#ifndef ATL_DEFAULT_AUTHGRP - #define ATL_DEFAULT_AUTHGRP Sids::Admins() -#endif - -// If you #define ATL_NO_DEFAULT_AUTHORITY then there will be no authorization -// check before allowing access to management functions. You can also #define -// ATL_NO_DEFAULT_AUTHORITY and then declare you own instance of _Authority -// before #include-ing atlextmgmt.h to use a different authorization scheme. -#ifndef ATL_NO_DEFAULT_AUTHORITY - __declspec(selectany) CDefaultAuth _Authority; -#endif - -// You can choose which of the management handlers actually get used by -// #defining the following constants before including this header -// _ATL_THREADPOOL_MANAGEMENT (The thread pool manager web service and web based UI) -// _ATL_STENCILCACHE_MANAGEMENT (The stencil cache manager web service and web based UI) -// _ATL_DLLCACHE_MANAGEMENT (The DLL cache manager service and web based UI) - -// You can use the following constants to remove the web based UI if you don't -// want to use it. -// _ATL_THREADPOOL_NOUI (removes the thread pool mgr's stencil handler) -// _ATL_STENCILCACHE_NOUI (removes the stencil cache mgr's stencil handler) -// _ATL_DLLCACHE_NOUI (removes the dll cache mgr's stencil handler) - -// You can use the following constants to remove the web service management -// components individually -// _ATL_THREADPOOL_NOWEBSERVICE (removes the thread pool mgr's stencil handler) -// _ATL_STENCILCACHE_NOWEBSERVICE (removes the stencil cache mgr's stencil handler) -// _ATL_DLLCACHE_NOWEBSERVICE (removes the dll cache mgr's stencil handler) - - -// The following constants declare resource names of stencils included -// as resources in the module that uses this header. These stencils are -// used for the web based UI for the management objects. You can provide -// stencils of your own by including them as resources and redefining these -// constants before including this header. -#ifndef IDR_THREADMGR_SRF - #define IDR_THREADMGR_SRF "THREADMGR.SRF" -#endif - -#ifndef IDR_STENCILMGR_SRF - #define IDR_STENCILMGR_SRF "STENCILMGR.SRF" -#endif - -#ifndef IDR_DLLMGR_SRF - #define IDR_DLLMGR_SRF "DLLMGR.SRF" -#endif - -// A warning so users using the web based UI to manage their extension -// will remember to include the stencil resources in their projects -#if (defined(_ATL_THREADPOOL_MANAGEMENT) && !defined(_ATL_THREADPOOL_NOUI)) || (defined(_ATL_STENCILCACHE_MANAGEMENT) && !defined(_ATL_STENCILCACHE_NOUI)) || (defined(_ATL_DLLCACHE_MANAGEMENT) && !defined(_ATL_DLLCACHE_NOUI)) -#ifndef NO_ATL_MGMT_STENCIL_WARNING - #pragma message("*************** Please Note ***************") - #pragma message("Your usage of atlextmgmt.h requires you to include management") - #pragma message("stencil resources in your module's resource file.") - #pragma message("Please make sure you include atlsrv.rc in your resource file.\r\n") -#endif -#endif - -// These constants define the names used for the handler objects for the -// various services. You can change the names by redefining these constants -// before including this header - -#ifndef ID_THREADMGR_WEBSERVICE_NAME - #define ID_THREADMGR_WEBSERVICE_NAME "ThreadPoolManager" -#endif - -#ifndef ID_THREADMGR_WEBSERVICE_URL - #define ID_THREADMGR_WEBSERVICE_URL "http://www.microsoft.com/vc/atlserver/soap/ThreadPoolManager" -#endif - -#ifndef ID_THREADMGR_WEBSERVICE_WSDL - #define ID_THREADMGR_WEBSERVICE_WSDL "GenThreadPoolManagerWSDL" -#endif - -#ifndef ID_THREADMGR_SRFHANDLER_NAME - #define ID_THREADMGR_SRFHANDLER_NAME "ThreadMgrSrf" -#endif - -#ifndef ID_STENCILCACHEMGR_WEBSERVICE_NAME - #define ID_STENCILCACHEMGR_WEBSERVICE_NAME "StencilCacheManager" -#endif - -#ifndef ID_STENCILCACHEMGR_WEBSERVICE_URL - #define ID_STENCILCACHEMGR_WEBSERVICE_URL "http://www.microsoft.com/vc/atlserver/soap/StencilCacheManager" -#endif - -#ifndef ID_STENCILCACHEMGR_WEBSERVICE_WSDL - #define ID_STENCILCACHEMGR_WEBSERVICE_WSDL "GenStencilCacheManagerWSDL" -#endif - -#ifndef ID_STENCILCACHEMGR_SRFHANDLER_NAME - #define ID_STENCILCACHEMGR_SRFHANDLER_NAME "StencilMgrSrf" -#endif - -#ifndef ID_DLLCACHEMGR_WEBSERVICE_NAME - #define ID_DLLCACHEMGR_WEBSERVICE_NAME "DllCacheManager" -#endif - -#ifndef ID_DLLCACHEMGR_WEBSERVICE_URL - #define ID_DLLCACHEMGR_WEBSERVICE_URL "http://www.microsoft.com/vc/atlserver/soap/DllCacheManager" -#endif - -#ifndef ID_DLLCACHEMGR_WEBSERVICE_WSDL - #define ID_DLLCACHEMGR_WEBSERVICE_WSDL "GenDllCacheManagerWSDL" -#endif - - -#ifndef ID_DLLCACHEMGR_SRFHANDLER_NAME - #define ID_DLLCACHEMGR_SRFHANDLER_NAME "DllMgrSrf" -#endif - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -[emitidl(restricted)]; - -#define ATL_COLOR_TR1 RGB(0xd2, 0xff, 0xff) -#define ATL_COLOR_TR2 RGB(0xd2, 0xff, 0xd2) -#define ATL_COLOR_BODYBG RGB(0xec, 0xf9, 0xec) - -// _AtlRedirectToPage builds up a redirect URL from the -// current request plus a Handler= specification and -// redirects the user's browser to that page. -inline HTTP_CODE _AtlRedirectToPage( - IHttpServerContext *pContext, - CHttpRequest& request, - CHttpResponse& response, - const char *szHandler) -{ - ATLENSURE(pContext); - CStringA strRedirect("http://"); - - char buff[ATL_URL_MAX_URL_LENGTH]; - DWORD dwLen = static_cast(_countof(buff)); - if (!pContext->GetServerVariable("SERVER_NAME", buff, &dwLen)) - { - return HTTP_FAIL; - } - buff[_countof(buff)-1]='\0'; - strRedirect+=buff; - - dwLen = static_cast(_countof(buff)); - if (!request.GetUrl(buff, &dwLen)) - { - return HTTP_FAIL; - } - buff[_countof(buff)-1]='\0'; - strRedirect+=buff; - strRedirect+=szHandler; - - if (strRedirect.GetLength() >= ATL_URL_MAX_URL_LENGTH) - { - return HTTP_FAIL; - } - - BOOL bOK=response.Redirect(strRedirect.GetString()); - - return bOK ? HTTP_SUCCESS_NO_PROCESS : HTTP_FAIL; -} - -#ifdef _ATL_THREADPOOL_MANAGEMENT -/////////////////////////////////////////////////////////////////////// -// Thread pool management - -[ uuid("44e9962a-5207-4d2a-a466-5f08a76e0e5d"), object ] -__interface IThreadPoolMgr -{ - [id(0)] STDMETHOD(SetSize)([in] int nNumThreads); - [id(1)] STDMETHOD(GetSize)([out,retval] int *pnNumThreads); - -}; - - -class CThreadPoolMgrObject -{ -public: - CThreadPoolMgrObject() throw() - { - } - - HRESULT SetSize(int nNumThreads) throw() - { - if (!m_spThreadPoolConfig) - return E_UNEXPECTED; - - CRevertThreadToken revert; - if (!revert.Initialize()) - return E_FAIL; - - HRESULT hr = m_spThreadPoolConfig->SetSize(nNumThreads); - - DWORD dwErr = revert.Restore(); - if (dwErr) - return AtlHresultFromWin32(dwErr); - - return hr; - } - - - HRESULT GetSize(int *pnNumThreads) throw() - { - if (!m_spThreadPoolConfig) - return E_UNEXPECTED; - - return m_spThreadPoolConfig->GetSize(pnNumThreads); - - } - - HTTP_CODE Initialize(IServiceProvider *pProvider) throw() - { - ATLASSERT(pProvider); // should never be NULL - if (!pProvider) - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - - if (m_spThreadPoolConfig) - return HTTP_SUCCESS; // already initialized - - pProvider->QueryService(__uuidof(IThreadPoolConfig), &m_spThreadPoolConfig); - return m_spThreadPoolConfig ? HTTP_SUCCESS : HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - -private: - CComPtr m_spThreadPoolConfig; -}; - -#ifndef _ATL_THREADPOOL_NOWEBSERVICE -#pragma warning(push) -#pragma warning(disable:4199) -[ - soap_handler( - name= ID_THREADMGR_WEBSERVICE_NAME, - namespace= ID_THREADMGR_WEBSERVICE_URL, - protocol= "soap" - ), - request_handler( - name= ID_THREADMGR_WEBSERVICE_NAME, - sdl= ID_THREADMGR_WEBSERVICE_WSDL - ) -] -class CThreadPoolManager : - public IThreadPoolMgr -{ -#pragma warning(pop) -public: - [soap_method] - STDMETHOD(SetSize)(int nNumThreads) - { - return m_PoolMgr.SetSize(nNumThreads); - } - - [soap_method] - STDMETHOD(GetSize)(int *pnNumThreads) - { - return m_PoolMgr.GetSize(pnNumThreads); - } - - // override HandleRequest to Initialize our m_spServiceProvider - // and to handle authorizing the client. - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - HTTP_CODE hcErr = m_PoolMgr.Initialize(pProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - - // Make sure caller is authorized on this system -__if_exists(_Authority) -{ - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(pRequestInfo, ATL_DEFAULT_AUTHGRP)) -} - if (hcErr == HTTP_SUCCESS) - { - hcErr = __super::HandleRequest(pRequestInfo, pProvider); - } - return hcErr; - } -private: - CThreadPoolMgrObject m_PoolMgr; -}; -#endif //_ATL_THREADPOOL_NOWEBSERVICE - -#ifndef _ATL_THREADPOOL_NOUI -#define INVALID_COMMAND_ID -1 -#define MAX_COMMAND_ID 64 - -[request_handler(name=ID_THREADMGR_SRFHANDLER_NAME)] -class CThreadMgrStencil -{ -public: - CThreadMgrStencil() : - m_nColor(ATL_COLOR_TR1) - { - - } - - [tag_name("GetSize")] - HTTP_CODE GetSize() - { - int nSize = 0; - HRESULT hr = m_PoolMgr.GetSize(&nSize); - if (SUCCEEDED(hr)) - { - m_HttpResponse << nSize; - } - else - m_HttpResponse << "size not found"; - - return HTTP_SUCCESS; - } - - [tag_name("GetTRColor")] - HTTP_CODE GetTRColor() - { - m_nColor = (m_nColor == ATL_COLOR_TR1) ? ATL_COLOR_TR2 : ATL_COLOR_TR1; - TCHAR cr[8]; - if (RGBToHtml(m_nColor, cr, sizeof(cr))) - m_HttpResponse << cr; - - return HTTP_SUCCESS; - } - - [tag_name("GetBodyColor")] - HTTP_CODE GetBodyColor() - { - TCHAR cr[8]; - if (RGBToHtml(ATL_COLOR_BODYBG, cr, sizeof(cr))) - m_HttpResponse << cr; - return HTTP_SUCCESS; - } - - - HTTP_CODE ValidateAndExchange() throw() - { - _ATLTRY - { - // Initialize the thread pool manager instance. Internally - // the initialize function will only intialize it's data structures - // once. - HTTP_CODE hcErr = m_PoolMgr.Initialize(m_spServiceProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - -__if_exists(_Authority) -{ - // Make sure caller is authorized on this system - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(m_pRequestInfo, ATL_DEFAULT_AUTHGRP)) - if (hcErr != HTTP_SUCCESS) - return hcErr; -} - - - m_HttpResponse.SetContentType("text/html"); - - CString strHandler, strOptParam; - int nCmdToExec = INVALID_COMMAND_ID; - - if (m_HttpRequest.GetMethod() == CHttpRequest::HTTP_METHOD_POST) - { - // check to see if we have a "Method" form variable and can execute a command - DWORD dwErr = m_HttpRequest.FormVars.Exchange("Method", &strHandler); - if (dwErr == VALIDATION_S_OK) - { - if (strHandler == _T("ExecuteCommand")) - { - // get the value of the command parameter so we can execute it - dwErr = m_HttpRequest.FormVars.Validate("command", &nCmdToExec, 0, MAX_COMMAND_ID); - if (dwErr == VALIDATION_S_OK) - { - // get the optional parameter if it's there. - m_HttpRequest.FormVars.Validate("DynValue", &strOptParam, 0, MAX_COMMAND_ID); - - hcErr = ExecCommand(nCmdToExec, strOptParam); - return hcErr; - } - } - } - } - - // If we had a proper command to execute, we would have done it by now. - // Just handle like it's a normal request to view the thread count. - hcErr = LoadStencilResource(m_hInstHandler, IDR_THREADMGR_SRF); - return hcErr; - - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } - - HTTP_CODE ExecCommand(int nCmdToExec, CString& strOptParam) - { - switch (nCmdToExec) - { - case 0: - TCHAR *pStop = NULL; - int nValue = _tcstoul(strOptParam, &pStop, 10); - m_PoolMgr.SetSize(nValue); - break; - }; - - return _AtlRedirectToPage( - m_spServerContext, - m_HttpRequest, - m_HttpResponse, - "?Handler=" ID_THREADMGR_SRFHANDLER_NAME - ); - } -private: - CThreadPoolMgrObject m_PoolMgr; - long m_nColor; - CString m_strUrl; - -}; - - -#endif // _ATL_THREADPOOL_NOUI -#endif // _ATL_THREADPOOL_MANAGEMENT - -#ifdef _ATL_STENCILCACHE_MANAGEMENT -////////////////////////////////////////////////////////////////////// -// Stencil cache management -class CStencilCacheMgrObject -{ -public: - CStencilCacheMgrObject() - { - - } - - HRESULT GetCurrentEntryCount(__int64 *pdwSize) - { - ATLASSUME(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - HRESULT hr = m_spMemCacheStats->GetCurrentEntryCount(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - HRESULT ClearStats() - { - ATLENSURE(m_spMemCacheStats); - return m_spMemCacheStats->ClearStats(); - } - - HRESULT GetHitCount(__int64 *pdwSize) - { - ATLENSURE(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - HRESULT hr = m_spMemCacheStats->GetHitCount(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - HRESULT GetMissCount(__int64 *pdwSize) - { - ATLENSURE(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - - HRESULT hr = m_spMemCacheStats->GetMissCount(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - HRESULT GetCurrentAllocSize(__int64 *pdwSize) - { - ATLENSURE(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - - HRESULT hr = m_spMemCacheStats->GetCurrentAllocSize(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - HRESULT GetMaxAllocSize(__int64 *pdwSize) - { - ATLENSURE(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - - HRESULT hr = m_spMemCacheStats->GetMaxAllocSize(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - - HRESULT GetMaxEntryCount(__int64 *pdwSize) - { - ATLENSURE(m_spMemCacheStats); - if (!pdwSize) - return E_INVALIDARG; - - DWORD dwValue; - - HRESULT hr = m_spMemCacheStats->GetMaxEntryCount(&dwValue); - if (hr == S_OK) - { - *pdwSize = dwValue; - } - return hr; - } - - - HRESULT RemoveStencil(__int64 hStencil) - { - ATLENSURE(m_spStencilCacheControl); - return m_spStencilCacheControl->RemoveStencil((const HCACHEITEM)hStencil); - } - - HRESULT RemoveStencilByName(BSTR szStencil) throw() - { - ATLENSURE_RETURN(m_spStencilCacheControl); - return m_spStencilCacheControl->RemoveStencilByName(CW2A(szStencil)); - } - - - HRESULT RemoveAllStencils() - { - ATLENSURE(m_spStencilCacheControl); - return m_spStencilCacheControl->RemoveAllStencils(); - } - - // we show lifespan in milliseconds in the UI so we have to - // do the conversion to 100ns intervals here. - HRESULT SetDefaultLifespan(unsigned __int64 dwdwLifespan) - { - ATLENSURE(m_spStencilCacheControl); - // convert to 100ns intervals - return m_spStencilCacheControl->SetDefaultLifespan(dwdwLifespan * CFileTime::Millisecond); - } - - HRESULT GetDefaultLifespan(unsigned __int64 *pdwdwLifespan) - { - ATLENSURE(m_spStencilCacheControl); - ATLENSURE(pdwdwLifespan!=NULL); - *pdwdwLifespan = 0; - unsigned __int64 dwls = 0; - HRESULT hr = m_spStencilCacheControl->GetDefaultLifespan(&dwls); - - // convert to milliseconds - if (SUCCEEDED(hr)) - { - dwls /= CFileTime::Millisecond; - *pdwdwLifespan = dwls; - } - - return hr; - } - - HTTP_CODE Initialize(IServiceProvider *pProvider) throw() - { - - ATLASSERT(pProvider); // should never be NULL - if (!pProvider) - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - - - if (m_spMemCacheStats && m_spStencilCacheControl) - return HTTP_SUCCESS; // already initialized - - CComPtr spStencilCache; - pProvider->QueryService(__uuidof(IStencilCache), &spStencilCache); - if (spStencilCache) - { - if (!m_spMemCacheStats) - { - spStencilCache->QueryInterface(__uuidof(IMemoryCacheStats), - (void**)&m_spMemCacheStats); - } - if (!m_spStencilCacheControl) - { - spStencilCache->QueryInterface(__uuidof(IStencilCacheControl), - (void**)&m_spStencilCacheControl); - } - } - - return (m_spMemCacheStats && m_spStencilCacheControl) - ? HTTP_SUCCESS : HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - -private: - CComPtr m_spMemCacheStats; - CComPtr m_spStencilCacheControl; -}; - - -#ifndef _ATL_STENCILCACHE_NOWEBSERVICE - -[ uuid("3813895C-4C4C-41df-95F4-12220140B164"), object ] -__interface IStencilCacheMgr -{ - // data access - [id(0)] STDMETHOD(GetCurrentEntryCount)([out,retval] __int64 *pdwSize); - [id(1)] STDMETHOD(GetHitCount)([out,retval] __int64 *pdwSize); - [id(2)] STDMETHOD(GetMissCount)([out,retval] __int64 *pdwSize); - [id(3)] STDMETHOD(GetCurrentAllocSize)([out,retval] __int64 *pdwSize); - [id(4)] STDMETHOD(GetMaxAllocSize)([out,retval] __int64 *pdwSize); - [id(5)] STDMETHOD(GetMaxEntryCount)([out,retval] __int64 *pdwSize); - [id(6)] STDMETHOD(GetDefaultLifespan)([out,retval] unsigned __int64 *pdwdwLifespan); - - // commands - [id(7)] STDMETHOD(ClearStats)(); - [id(8)] STDMETHOD(RemoveStencil)([in] __int64 hStencil); - [id(9)] STDMETHOD(RemoveStencilByName)([in] BSTR szStencil); - [id(10)] STDMETHOD(RemoveAllStencils)(); - [id(11)] STDMETHOD(SetDefaultLifespan)([in] unsigned __int64 dwdwLifespan); -}; - -#pragma warning(push) -#pragma warning(disable:4199) -[ - soap_handler( name= ID_STENCILCACHEMGR_WEBSERVICE_NAME, - namespace= ID_STENCILCACHEMGR_WEBSERVICE_URL, - protocol= "soap" - ), - request_handler( - name= ID_STENCILCACHEMGR_WEBSERVICE_NAME, - sdl= ID_STENCILCACHEMGR_WEBSERVICE_WSDL ) -] -class CStencilCacheManager : - public IStencilCacheMgr -{ -#pragma warning(pop) -public: - [ soap_method ] - STDMETHOD(GetCurrentEntryCount)(__int64 *pdwSize) - { - return m_MgrObj.GetCurrentEntryCount(pdwSize); - } - - [ soap_method ] - STDMETHOD(ClearStats)() - { - return m_MgrObj.ClearStats(); - } - - [ soap_method ] - STDMETHOD(GetHitCount)(__int64 *pdwSize) - { - return m_MgrObj.GetHitCount(pdwSize); - } - - [ soap_method ] - STDMETHOD(GetMissCount)(__int64 *pdwSize) - { - return m_MgrObj.GetMissCount(pdwSize); - } - - [ soap_method ] - STDMETHOD(GetCurrentAllocSize)(__int64 *pdwSize) - { - return m_MgrObj.GetCurrentAllocSize(pdwSize); - } - - [ soap_method ] - STDMETHOD(GetMaxAllocSize)(__int64 *pdwSize) - { - return m_MgrObj.GetMaxAllocSize(pdwSize); - } - - [ soap_method ] - STDMETHOD(GetMaxEntryCount)(__int64 *pdwSize) - { - return m_MgrObj.GetMaxEntryCount(pdwSize); - } - - [ soap_method ] - STDMETHOD(RemoveStencil)(__int64 hStencil) - { - return m_MgrObj.RemoveStencil(hStencil); - } - - [ soap_method ] - STDMETHOD(RemoveStencilByName)(BSTR bstrStencil) - { - return m_MgrObj.RemoveStencilByName(bstrStencil); - } - - [ soap_method ] - STDMETHOD(RemoveAllStencils)() - { - return m_MgrObj.RemoveAllStencils(); - } - - // we show lifespan in milliseconds in the UI. - // m_MgrObj handles the conversion to 100ns intervals. - [ soap_method ] - STDMETHOD(SetDefaultLifespan)(unsigned __int64 dwdwLifespan) - { - return m_MgrObj.SetDefaultLifespan(dwdwLifespan); - } - - [ soap_method ] - STDMETHOD(GetDefaultLifespan)(unsigned __int64 *pdwdwLifespan) - { - return m_MgrObj.GetDefaultLifespan(pdwdwLifespan); - } - - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - HTTP_CODE hcErr = m_MgrObj.Initialize(pProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - -__if_exists(_Authority) -{ - // Make sure caller is authorized on this system - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(pRequestInfo, ATL_DEFAULT_AUTHGRP)) -} - if (hcErr == HTTP_SUCCESS) - { - hcErr = __super::HandleRequest(pRequestInfo, pProvider); - } - return hcErr; - } -private: - CStencilCacheMgrObject m_MgrObj; -}; -#endif //_ATL_STENCILCACHE_NOWEBSERVICE -#ifndef _ATL_STENCILCACHE_NOUI -typedef HRESULT (CStencilCacheMgrObject::*PFNGETDATA)(__int64 *pdwSize); - -struct CCache_data -{ - PFNGETDATA m_pfn; - char m_sz[128]; -}; - -#define INVALID_DATA_PTR ((DWORD_PTR) -1) -#define INVALID_COMMAND_ID -1 -#define MAX_COMMAND_ID 64 -#define ATL_STENCILCACHECMD_CLEARALLSTATS 0 -#define ATL_STENCILCACHECMD_REMOVESTENCIL 1 -#define ATL_STENCILCACHECMD_REMOVEALLSTENCILS 2 -#define ATL_STENCILCACHECMD_SETDEFLIFESPAN 3 - -[request_handler(name=ID_STENCILCACHEMGR_SRFHANDLER_NAME)] -class CStencilMgr -{ -public: - CStencilMgr() - { - m_pData = (CCache_data*)INVALID_DATA_PTR; - m_nColor = ATL_COLOR_TR1; - } - - HTTP_CODE ValidateAndExchange() throw() - { - _ATLTRY - { - HTTP_CODE hcErr = m_MgrObj.Initialize(m_spServiceProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - -__if_exists(_Authority) -{ - // Make sure caller is authorized on this system - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(m_pRequestInfo, ATL_DEFAULT_AUTHGRP)) - if (hcErr != HTTP_SUCCESS) - return hcErr; -} - m_HttpResponse.SetContentType("text/html"); - - // check to see if we have a "Handler" form variable - CString strHandler, strOptParam; - int nCmdToExec; - - if (m_HttpRequest.GetMethod() == CHttpRequest::HTTP_METHOD_POST) - { - DWORD dwErr = m_HttpRequest.FormVars.Exchange("Method", &strHandler); - if (dwErr == VALIDATION_S_OK) - { - if (strHandler == _T("ExecuteCommand")) - { - // get the value of the command parameter so we can execute it - dwErr = m_HttpRequest.FormVars.Validate("command", &nCmdToExec, 0, MAX_COMMAND_ID); - if (dwErr == VALIDATION_S_OK) - { - // get the optional parameter if it's there. - m_HttpRequest.FormVars.Validate("DynValue", &strOptParam, 0, MAX_COMMAND_ID); - hcErr = ExecCommand(nCmdToExec, strOptParam); - return hcErr; - } - } - } - } - hcErr = LoadStencilResource(m_hInstHandler, IDR_STENCILMGR_SRF); - return hcErr; - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } - - HTTP_CODE ExecCommand(int nCmdToExec, CString& strOptParam) - { - switch (nCmdToExec) - { - case ATL_STENCILCACHECMD_CLEARALLSTATS: - m_MgrObj.ClearStats(); - break; - - case ATL_STENCILCACHECMD_REMOVESTENCIL: - m_MgrObj.RemoveStencilByName(strOptParam.AllocSysString()); - break; - - case ATL_STENCILCACHECMD_REMOVEALLSTENCILS: - m_MgrObj.RemoveAllStencils(); - break; - - case ATL_STENCILCACHECMD_SETDEFLIFESPAN: - TCHAR *pStop = NULL; - m_MgrObj.SetDefaultLifespan(_tcstoul(strOptParam, &pStop, 10)); - break; - }; - - return _AtlRedirectToPage( - m_spServerContext, - m_HttpRequest, - m_HttpResponse, - "?Handler=" ID_STENCILCACHEMGR_SRFHANDLER_NAME - ); - - } - - [tag_name("GetNextStencilCacheStats")] - HTTP_CODE GetNextStencilCacheStats() - { - if (m_pData == (CCache_data*)INVALID_DATA_PTR) - { - m_pData = GetCacheData(); - return HTTP_SUCCESS; - } - m_pData++; - - if (m_pData->m_pfn != NULL) - return HTTP_SUCCESS; - - m_pData = (CCache_data*)INVALID_DATA_PTR; - return HTTP_S_FALSE; - - } - - [tag_name("GetCacheValue")] - HTTP_CODE GetCacheValue() - { - ATLENSURE(m_pData); - ATLENSURE(m_pData != (CCache_data*)INVALID_DATA_PTR); - m_HttpResponse << m_pData->m_sz; - return HTTP_SUCCESS; - } - - [tag_name("GetCacheQuantity")] - HTTP_CODE GetCacheQuantity() - { - ATLENSURE(m_pData); - ATLENSURE(m_pData != (CCache_data*)INVALID_DATA_PTR); - __int64 dwValue = 0; - PFNGETDATA pfn = m_pData->m_pfn; - ATLENSURE(pfn); - CStencilCacheMgrObject *pMgr = &m_MgrObj; - (pMgr->*pfn)(&dwValue); - - m_HttpResponse << dwValue; - return HTTP_SUCCESS; - } - - [tag_name("GetTRColor")] - HTTP_CODE GetTRColor() - { - m_nColor = (m_nColor == ATL_COLOR_TR1) ? ATL_COLOR_TR2 : ATL_COLOR_TR1; - TCHAR cr[8]; - if (RGBToHtml(m_nColor, cr, sizeof(cr))) - m_HttpResponse << cr; - - return HTTP_SUCCESS; - } - - [tag_name("GetBodyColor")] - HTTP_CODE GetBodyColor() - { - TCHAR cr[8]; - if (RGBToHtml(ATL_COLOR_BODYBG, cr, sizeof(cr))) - m_HttpResponse << cr; - return HTTP_SUCCESS; - } -private: - static CCache_data* GetCacheData() - { - static CCache_data cache_data[] = - { - {(PFNGETDATA)&CStencilCacheMgrObject::GetCurrentEntryCount, "Current Cache Entry Count(stencils)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetHitCount, "Cache Hit Count(stencils)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetMissCount, "Cache Miss Count(stencils)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetCurrentAllocSize, "Cache memory allocation(bytes)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetMaxAllocSize, "Cache maximum allocation size(bytes)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetMaxEntryCount, "Cache maximum entry count(stencils)"}, - {(PFNGETDATA)&CStencilCacheMgrObject::GetDefaultLifespan, "Default stencil lifespan(ms)"}, - {NULL, NULL} - }; - return cache_data; - } - - CStencilCacheMgrObject m_MgrObj; - CCache_data *m_pData; - long m_nColor; -}; -//__declspec(selectany) CComObjectGlobal CStencilMgr::m_cachemgr; -#endif // _ATL_STENCILCACHE_NOUI -#endif // _ATL_STENCILCACHE_MANAGEMENT - -////////////////////////////////////////////////////////////////////// -// DLL cache management -#ifdef _ATL_DLLCACHE_MANAGEMENT - - -#ifndef _ATL_DLLCACHE_NOWEBSERVICE -[export] -#endif -struct _DLL_CACHE_ENTRY -{ - DWORD hInstDll; - DWORD dwRefs; - BSTR szDllName; -}; - - -class CDllMgrObject -{ -public: - HRESULT GetEntries(DWORD dwCount, _DLL_CACHE_ENTRY *pEntries, DWORD *pdwCopied) - { - ATLASSUME(m_spDllCache); - HRESULT hr = E_FAIL; - DLL_CACHE_ENTRY *pe = NULL; - - if (!m_spDllCache) - return E_UNEXPECTED; - - if (dwCount != 0 && pEntries == NULL) - return E_UNEXPECTED; // asking for entries but no place to put them - - if (!pdwCopied) - return E_POINTER; - *pdwCopied = 0; - - if (dwCount) - { - pe = new DLL_CACHE_ENTRY[dwCount]; - if (!pe) - return E_OUTOFMEMORY; - } - - hr = m_spDllCache->GetEntries(dwCount, pe, pdwCopied); - if (hr == S_OK && dwCount != 0 && pEntries != NULL) - { - // SysAllocString our path strings - for (DWORD i = 0; i<*pdwCopied; i++) - { - pEntries[i].hInstDll = (DWORD)(DWORD_PTR)pe[i].hInstDll; - pEntries[i].dwRefs = pe[i].dwRefs; - pEntries[i].szDllName = ::SysAllocString(CA2W(pe[i].szDllName)); - } - } - - delete [] pe; - return hr; - } - - - HRESULT GetEntryCount(DWORD *pdwCount) - { - ATLASSUME(m_spDllCache); - if (!m_spDllCache) - return E_UNEXPECTED; - - return m_spDllCache->GetEntries(0, NULL, pdwCount); - } - - HTTP_CODE Initialize(IServiceProvider *pProvider) - { - ATLASSERT(pProvider); // should never be NULL - if (!pProvider) - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - - if (m_spDllCache) - return HTTP_SUCCESS; // already initialized - - pProvider->QueryService(__uuidof(IDllCache), &m_spDllCache); - return m_spDllCache ? HTTP_SUCCESS : HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - -private: - CComPtr m_spDllCache; - -}; // CDllMgrObject - - -#ifndef _ATL_DLLCACHE_NOWEBSERVICE -// _DLL_CACHE_ENTRY is our own version of DLL_CACHE_ENTRY(atlcache.h) that -// uses a BSTR instead of a fixed length string for the szDllName for compatiblility -// with our SOAP implementation. -[ uuid("A0C00AF8-CEA5-46b9-97ED-FDEE55B583EF"), object ] -__interface IDllCacheMgr -{ - [id(0)] STDMETHOD(GetEntries)([in] DWORD dwCount, [out] _DLL_CACHE_ENTRY *pEntries, [out, retval] DWORD *pdwCopied); - [id(1)] STDMETHOD(GetEntryCount)([out, retval] DWORD *pdwCount); - -}; - - -#pragma warning(push) -#pragma warning(disable:4199) -[ - soap_handler( - name= ID_DLLCACHEMGR_WEBSERVICE_NAME, - namespace= ID_DLLCACHEMGR_WEBSERVICE_URL, - protocol= "soap" - ), - request_handler( - name= ID_DLLCACHEMGR_WEBSERVICE_NAME, - sdl= ID_DLLCACHEMGR_WEBSERVICE_WSDL - ) -] -class CDllCacheManager : - public IDllCacheMgr -{ -#pragma warning(pop) -public: - [soap_method] - HRESULT GetEntries(DWORD dwCount, _DLL_CACHE_ENTRY *pEntries, DWORD *pdwCopied) - { - return m_MgrObj.GetEntries(dwCount, pEntries, pdwCopied); - } - - [soap_method] - STDMETHOD(GetEntryCount)(DWORD *pdwCount) - { - return m_MgrObj.GetEntries(0, NULL, pdwCount); - } - - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - HTTP_CODE hcErr = m_MgrObj.Initialize(pProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - -__if_exists(_Authority) -{ - // Make sure caller is authorized on this system - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(pRequestInfo, ATL_DEFAULT_AUTHGRP)) -} - if (hcErr == HTTP_SUCCESS) - { - hcErr = __super::HandleRequest(pRequestInfo, pProvider); - } - return hcErr; - } - -protected: - CDllMgrObject m_MgrObj; -}; -#endif _ATL_DLLCACHE_NOWEBSERVICE - -#ifndef _ATL_DLLCACHE_NOUI -#define INVALID_INDEX -1 - -[ - request_handler(name=ID_DLLCACHEMGR_SRFHANDLER_NAME) -] -class CDllCacheMgr -{ -public: - CDllCacheMgr() : m_nColor(ATL_COLOR_TR1), - m_nEnumCount(INVALID_INDEX), - m_nEnumIndex(INVALID_INDEX), - m_pEntries(NULL) - { - - } - - [tag_name("GetTRColor")] - HTTP_CODE GetTRColor() - { - m_nColor = (m_nColor == ATL_COLOR_TR1) ? ATL_COLOR_TR2 : ATL_COLOR_TR1; - TCHAR cr[8]; - if (RGBToHtml(m_nColor, cr, sizeof(cr))) - m_HttpResponse << cr; - - return HTTP_SUCCESS; - } - - [tag_name("GetBodyColor")] - HTTP_CODE GetBodyColor() - { - TCHAR cr[8]; - if (RGBToHtml(ATL_COLOR_BODYBG, cr, sizeof(cr))) - m_HttpResponse << cr; - return HTTP_SUCCESS; - } - - - [tag_name("GetNumEntries")] - HTTP_CODE GetNumEntries() - { - DWORD dwEntries = 0; - m_MgrObj.GetEntryCount(&dwEntries); - m_HttpResponse << dwEntries; - return HTTP_SUCCESS; - } - - - [tag_name("EnumEntries")] - HTTP_CODE EnumEntries() - { - // we lock the cache while we enum entries so no entries - // will be removed during the enumeration request. - if (m_nEnumIndex == INVALID_INDEX) - { - // set up for the iteration - m_MgrObj.GetEntryCount((DWORD*)&m_nEnumCount); - if (!m_nEnumCount) - return HTTP_S_FALSE; // nothing to enum - - m_pEntries = new _DLL_CACHE_ENTRY[m_nEnumCount]; - if (!m_pEntries) - return HTTP_ERROR(500, ISE_SUBERR_OUTOFMEM); - - DWORD dwFetched = INVALID_INDEX; - - if (S_OK != m_MgrObj.GetEntries(m_nEnumCount, m_pEntries, &dwFetched)) - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - - m_nEnumIndex = 0; - return HTTP_SUCCESS; - } - - m_nEnumIndex++; - if (m_nEnumIndex < m_nEnumCount) - return HTTP_SUCCESS; // continue iterating - - else - { - // done, clean up - for (int i = 0; i< m_nEnumCount; i++) - { - ::SysFreeString(m_pEntries[i].szDllName); - } - delete [] m_pEntries; - m_pEntries = NULL; - m_nEnumCount = INVALID_INDEX; - m_nEnumIndex = INVALID_INDEX; - return HTTP_S_FALSE; // terminate iterations. - } - } - - [tag_name("GetDllName")] - HTTP_CODE GetDllName() - { - m_HttpResponse << m_pEntries[m_nEnumIndex].szDllName; - return HTTP_SUCCESS; - } - - [tag_name("GetDllReferences")] - HTTP_CODE GetDllReferences() - { - m_HttpResponse << m_pEntries[m_nEnumIndex].dwRefs; - return HTTP_SUCCESS; - } - - HTTP_CODE ValidateAndExchange() - { - - HTTP_CODE hcErr = m_MgrObj.Initialize(m_spServiceProvider); - if (hcErr != HTTP_SUCCESS) - return hcErr; - -__if_exists(_Authority) -{ - // Make sure caller is authorized on this system - hcErr = HTTP_FAIL; - ATLTRY(hcErr = _Authority.IsAuthorized(m_pRequestInfo, ATL_DEFAULT_AUTHGRP)) - if (hcErr != HTTP_SUCCESS) - return hcErr; -} - hcErr = LoadStencilResource(m_hInstHandler, IDR_DLLMGR_SRF); - m_HttpResponse.SetContentType("text/html"); - return hcErr; - - } - - CDllMgrObject m_MgrObj; - long m_nColor; - int m_nEnumCount; - int m_nEnumIndex; - _DLL_CACHE_ENTRY *m_pEntries; - -}; - -#endif // _ATL_DLLCACHE_NOUI -#endif // _ATL_DLLCACHE_MANAGEMENT - -}; // ATL - -#pragma pack(pop) -#pragma warning(pop) -#endif // __ATLEXTMGMT_H__ diff --git a/ATL90/include/atlhtml.h b/ATL90/include/atlhtml.h deleted file mode 100644 index 4922e58..0000000 --- a/ATL90/include/atlhtml.h +++ /dev/null @@ -1,1682 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLHTML_H__ -#define __ATLHTML_H__ - -#pragma once - -#include -#include -#include - - - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -#define TAGF_NONE 0 -#define TAGF_HASEND 1 -#define TAGF_BLOCK 2 - - -struct ATL_HTML_TAG -{ - LPCTSTR szTagName; - UINT uFlags; -}; - -enum ATL_HTML_TAGS { - ATL_HTML_TAG_BODY, - ATL_HTML_TAG_A, - ATL_HTML_TAG_B, - ATL_HTML_TAG_I, - ATL_HTML_TAG_U, - ATL_HTML_TAG_FONT, - ATL_HTML_TAG_IMG, - ATL_HTML_TAG_HR, - ATL_HTML_TAG_BR, - ATL_HTML_TAG_DIV, - ATL_HTML_TAG_BLOCKQUOTE, - ATL_HTML_TAG_ADDRESS, - ATL_HTML_TAG_P, - ATL_HTML_TAG_H1, - ATL_HTML_TAG_H2, - ATL_HTML_TAG_H3, - ATL_HTML_TAG_H4, - ATL_HTML_TAG_H5, - ATL_HTML_TAG_H6, - ATL_HTML_TAG_PRE, - ATL_HTML_TAG_Q, - ATL_HTML_TAG_SUB, - ATL_HTML_TAG_SUP, - ATL_HTML_TAG_INS, - ATL_HTML_TAG_DEL, - ATL_HTML_TAG_EM, - ATL_HTML_TAG_STRONG, - ATL_HTML_TAG_DFN, - ATL_HTML_TAG_CODE, - ATL_HTML_TAG_SAMP, - ATL_HTML_TAG_KBD, - ATL_HTML_TAG_VAR, - ATL_HTML_TAG_CITE, - ATL_HTML_TAG_ABBR, - ATL_HTML_TAG_ACRONYM, - ATL_HTML_TAG_OL, - ATL_HTML_TAG_UL, - ATL_HTML_TAG_LI, - ATL_HTML_TAG_DL, - ATL_HTML_TAG_DT, - ATL_HTML_TAG_DD, - ATL_HTML_TAG_TABLE, - ATL_HTML_TAG_TR, - ATL_HTML_TAG_TD, - ATL_HTML_TAG_FORM, - ATL_HTML_TAG_INPUT, - ATL_HTML_TAG_SELECT, - ATL_HTML_TAG_OPTION, - ATL_HTML_TAG_HEAD, - ATL_HTML_TAG_HTML, - ATL_HTML_TAG_MAP, - ATL_HTML_TAG_AREA, - ATL_HTML_TAG_BASE, - ATL_HTML_TAG_BDO, - ATL_HTML_TAG_BIG, - ATL_HTML_TAG_BUTTON, - ATL_HTML_TAG_IFRAME, - ATL_HTML_TAG_LABEL, - ATL_HTML_TAG_LINK, - ATL_HTML_TAG_META, - ATL_HTML_TAG_NOFRAMES, - ATL_HTML_TAG_NOSCRIPT, - ATL_HTML_TAG_COL, - ATL_HTML_TAG_COLGROUP, - ATL_HTML_TAG_FIELDSET, - ATL_HTML_TAG_LEGEND, - ATL_HTML_TAG_TBODY, - ATL_HTML_TAG_TEXTAREA, - ATL_HTML_TAG_TFOOT, - ATL_HTML_TAG_TH, - ATL_HTML_TAG_TITLE, - ATL_HTML_TAG_TT, - ATL_HTML_TAG_SMALL, - ATL_HTML_TAG_SPAN, - ATL_HTML_TAG_OBJECT, - ATL_HTML_TAG_PARAM, - ATL_HTML_TAG_LAST }; - -extern __declspec(selectany) const ATL_HTML_TAG s_tags[] = -{ - { _T("body"), TAGF_HASEND | TAGF_BLOCK }, - { _T("a"), TAGF_HASEND }, - { _T("b"), TAGF_HASEND }, - { _T("i"), TAGF_HASEND }, - { _T("u"), TAGF_HASEND }, - { _T("font"), TAGF_HASEND }, - { _T("img"), TAGF_NONE }, - { _T("hr"), TAGF_NONE }, - { _T("br"), TAGF_NONE }, - { _T("div"), TAGF_HASEND | TAGF_BLOCK }, - { _T("blockquote"), TAGF_HASEND | TAGF_BLOCK }, - { _T("adress"), TAGF_HASEND }, - { _T("p"), TAGF_HASEND | TAGF_BLOCK }, - { _T("h1"), TAGF_HASEND | TAGF_BLOCK}, - { _T("h2"), TAGF_HASEND | TAGF_BLOCK}, - { _T("h3"), TAGF_HASEND | TAGF_BLOCK }, - { _T("h4"), TAGF_HASEND | TAGF_BLOCK }, - { _T("h5"), TAGF_HASEND | TAGF_BLOCK }, - { _T("h6"), TAGF_HASEND | TAGF_BLOCK }, - { _T("pre"), TAGF_HASEND | TAGF_BLOCK }, - { _T("q"), TAGF_HASEND }, - { _T("sub"), TAGF_HASEND }, - { _T("sup"), TAGF_HASEND }, - { _T("ins"), TAGF_HASEND }, - { _T("del"), TAGF_HASEND }, - { _T("em"), TAGF_HASEND }, - { _T("strong"), TAGF_HASEND }, - { _T("dfn"), TAGF_HASEND }, - { _T("code"), TAGF_HASEND }, - { _T("samp"), TAGF_HASEND }, - { _T("kbd"), TAGF_HASEND }, - { _T("var"), TAGF_HASEND }, - { _T("cite"), TAGF_HASEND }, - { _T("abbr"), TAGF_HASEND }, - { _T("acronym"), TAGF_HASEND }, - { _T("ol"), TAGF_HASEND | TAGF_BLOCK }, - { _T("ul"), TAGF_HASEND | TAGF_BLOCK }, - { _T("li"), TAGF_HASEND }, - { _T("dl"), TAGF_HASEND | TAGF_BLOCK }, - { _T("dt"), TAGF_HASEND }, - { _T("dd"), TAGF_HASEND }, - { _T("table"), TAGF_HASEND }, - { _T("tr"), TAGF_HASEND }, - { _T("td"), TAGF_HASEND }, - { _T("form"), TAGF_HASEND }, - { _T("input"), TAGF_HASEND }, - { _T("select"), TAGF_HASEND }, - { _T("option"), TAGF_HASEND }, - { _T("head"), TAGF_HASEND | TAGF_BLOCK }, - { _T("html"), TAGF_HASEND | TAGF_BLOCK }, - { _T("map"), TAGF_HASEND | TAGF_BLOCK }, - { _T("area"), TAGF_BLOCK }, - { _T("base"), TAGF_BLOCK }, - { _T("bdo"), TAGF_HASEND }, - { _T("big"), TAGF_HASEND }, - { _T("button"), TAGF_HASEND }, - { _T("iframe"), TAGF_HASEND }, - { _T("label"), TAGF_HASEND }, - { _T("link"), TAGF_NONE }, - { _T("meta"), TAGF_BLOCK }, - { _T("noframes"), TAGF_BLOCK }, - { _T("noscript"), TAGF_BLOCK }, - { _T("col"), TAGF_BLOCK }, - { _T("colgroup"), TAGF_HASEND | TAGF_BLOCK }, - { _T("fieldset"), TAGF_HASEND | TAGF_BLOCK }, - { _T("legend"), TAGF_HASEND | TAGF_BLOCK }, - { _T("tbody"), TAGF_HASEND | TAGF_BLOCK }, - { _T("textarea"), TAGF_HASEND | TAGF_BLOCK }, - { _T("tfoot"), TAGF_HASEND | TAGF_BLOCK }, - { _T("th"), TAGF_HASEND | TAGF_BLOCK }, - { _T("title"), TAGF_HASEND | TAGF_BLOCK }, - { _T("tt"), TAGF_HASEND }, - { _T("small"), TAGF_HASEND }, - { _T("span"), TAGF_HASEND }, - { _T("object"), TAGF_HASEND | TAGF_BLOCK }, - { _T("param"), TAGF_NONE }, -}; - -class AtlHtmlAttrs -{ -public: - CString m_strAttrs; - - AtlHtmlAttrs() - { - - } - -#pragma warning(push) -#pragma warning(disable : 4793) - AtlHtmlAttrs(int nCount, ...) - { - va_list args; - - va_start(args, nCount); - for (int i=0; i(szAttrs[0]))) -#else - if (!iswspace(szAttrs[0])) -#endif - m_strAttrs = _T(" "); - m_strAttrs += szAttrs; - } - } - - operator LPCTSTR() - { - return m_strAttrs; - } - -}; - -class CStreamOnWriteStream : public IStream -{ -public: - IWriteStream *m_pWriteStream; - - CStreamOnWriteStream() - { - m_pWriteStream = NULL; - } - - void Init(IWriteStream *pWriteStream) - { - m_pWriteStream = pWriteStream; - } - - // IUnknown methods - STDMETHOD(QueryInterface)(REFIID riid, void **ppv) - { - if (!ppv) - return E_POINTER; - - *ppv = NULL; - - if (IsEqualGUID(riid, IID_IUnknown) || - IsEqualGUID(riid, IID_IStream) || - IsEqualGUID(riid, IID_ISequentialStream)) - { - *ppv = (IStream *) this; - } - if (!*ppv) - return E_NOINTERFACE; - return S_OK; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - - // ISequentialStream methods - HRESULT STDMETHODCALLTYPE Read(void * /*pDest*/, ULONG /*dwMaxLen*/, ULONG * /*pdwRead*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE Write(const void *pv, ULONG cb, ULONG *pcbWritten) - { - ATLASSUME(m_pWriteStream); - HRESULT hr = m_pWriteStream->WriteStream((const char *) pv, cb, pcbWritten); - return (hr==S_OK) ? S_OK : STG_E_WRITEFAULT; - } - - // IStream methods - HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, ULARGE_INTEGER * /*plibNewPosition*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE SetSize(ULARGE_INTEGER /*libNewSize*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE CopyTo(IStream * /*pstm*/, ULARGE_INTEGER /*cb*/, ULARGE_INTEGER * /*pcbRead*/, ULARGE_INTEGER * /*pcbWritten*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE Commit(DWORD /*grfCommitFlags*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE Revert(void) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE LockRegion(ULARGE_INTEGER /*libOffset*/, ULARGE_INTEGER /*cb*/, DWORD /*dwLockType*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE UnlockRegion(ULARGE_INTEGER /*libOffset*/, ULARGE_INTEGER /*cb*/, DWORD /*dwLockType*/) - { - return E_NOTIMPL; - } - - HRESULT STDMETHODCALLTYPE Stat(STATSTG * /*pstatstg*/, DWORD /*grfStatFlag*/) - { - return E_NOTIMPL; - } - - - HRESULT STDMETHODCALLTYPE Clone(IStream ** /*ppstm*/) - { - return E_NOTIMPL; - } -}; - -class CStreamFormatter -{ -protected: - CStreamOnWriteStream m_sows; - IStream *m_pStream; - BOOL m_bAddCRLF; - BOOL m_bEmitUnicode; - UINT m_nConversionCodepage; - -public: - CStreamFormatter() - { - m_pStream = NULL; - m_bAddCRLF = TRUE; - m_bEmitUnicode = FALSE; - m_nConversionCodepage = _AtlGetConversionACP(); - } - - void Initialize(IStream *pStream, BOOL bAddCRLF=TRUE) - { - m_pStream = pStream; - m_bAddCRLF = bAddCRLF; - } - - void Initialize(IWriteStream *pWriteStream, BOOL bAddCRLF=TRUE) - { - m_bAddCRLF = bAddCRLF; - m_sows.Init(pWriteStream); - m_pStream = &m_sows; - } - - void EmitUnicode(BOOL bEmitUnicode) - { - m_bEmitUnicode = bEmitUnicode; - } - - void SetConversionCodepage(UINT nConversionCodepage) - { - m_nConversionCodepage = nConversionCodepage; - } - - void AddCRLF(bool bNewVal) - { - m_bAddCRLF = bNewVal; - } - - HRESULT WriteRaw(LPCTSTR szString, int nCount=-1) - { - ATLENSURE_RETURN(szString != NULL); - if (!m_pStream) - return E_FAIL; - - if (m_bEmitUnicode) - { -#ifdef _UNICODE - LPCWSTR sz = szString; - if (nCount == -1) - nCount = (int) wcslen(szString); -#else - CA2W sz(szString, m_nConversionCodepage); - nCount = (int) wcslen(sz); -#endif - DWORD dwWritten; - return m_pStream->Write(sz, (DWORD) nCount*sizeof(WCHAR), &dwWritten); - } - else - { -#ifdef _UNICODE - CW2A sz(szString, m_nConversionCodepage); - nCount = (int) strlen(sz); -#else - LPCSTR sz = szString; - if (nCount == -1) - nCount = (int) strlen(szString); -#endif - DWORD dwWritten; - return m_pStream->Write(sz, (DWORD) nCount, &dwWritten); - } - } - - HRESULT StartTag(int nTagIndex, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - if (nTagIndex < 0 || nTagIndex >= ATL_HTML_TAG_LAST) - return E_INVALIDARG; - if (m_bAddCRLF && (s_tags[nTagIndex].uFlags & TAGF_BLOCK)) - WriteRaw(_T("\r\n")); - HRESULT hr = StartTag(s_tags[nTagIndex].szTagName, szContent, szAttrs); - if (FAILED(hr)) - return hr; - if (m_bAddCRLF && (s_tags[nTagIndex].uFlags & TAGF_BLOCK)) - WriteRaw(_T("\r\n")); - return S_OK; - } - - HRESULT StartTag(LPCTSTR szTag, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - HRESULT hr; - hr = WriteRaw(_T("<")); - if (FAILED(hr)) - return hr; - hr = WriteRaw(szTag); - if (FAILED(hr)) - return hr; - hr = WriteAttributes(szAttrs); - if (FAILED(hr)) - return hr; - hr = WriteRaw(_T(">")); - if (FAILED(hr)) - return hr; - if (szContent && *szContent) - { - WriteRaw(szContent); - EndTag(szTag); - } - return S_OK; - } - - HRESULT EndTag(int nTagIndex) - { - if (nTagIndex < 0 || nTagIndex >= ATL_HTML_TAG_LAST) - return E_INVALIDARG; - if (m_bAddCRLF && (s_tags[nTagIndex].uFlags & TAGF_BLOCK)) - WriteRaw(_T("\r\n")); - HRESULT hr = EndTag(s_tags[nTagIndex].szTagName); - if (FAILED(hr)) - return hr; - if (m_bAddCRLF && (s_tags[nTagIndex].uFlags & TAGF_BLOCK)) - WriteRaw(_T("\r\n")); - return S_OK; - } - - HRESULT EndTag(LPCTSTR szTag) - { - HRESULT hr = WriteRaw(_T("")); - } - - HRESULT WriteAttributes(LPCTSTR szAttrs) - { - if (szAttrs && szAttrs[0]) - { -#ifndef UNICODE - if (!isspace(static_cast(szAttrs[0]))) -#else - if (!iswspace(szAttrs[0])) -#endif - WriteRaw(_T(" ")); - return WriteRaw(szAttrs); - } - - return S_OK; - } - -#pragma warning(push) -#pragma warning(disable : 4793) - HRESULT WriteFormatted(LPCTSTR szFormat, ...) - { - ATLASSERT(szFormat != NULL); - if (!m_pStream) - return E_FAIL; - - va_list args; - va_start(args, szFormat); - - - TCHAR buffFixed[1024]; - CTempBuffer buffHeap; - TCHAR *szTemp = buffFixed; - int nCount = _vstprintf_s((LPTSTR)szTemp, _countof(buffFixed), szFormat, args); - if (nCount < 0) - { - // we'll have to dynamically allocate the buffer - nCount = _vsctprintf(szFormat, args); - szTemp = NULL; - ATLTRY(szTemp = buffHeap.Allocate(nCount + 1)); - if (!szTemp) - return E_OUTOFMEMORY; - nCount = _vstprintf_s(szTemp, nCount+1, szFormat, args); - } - - va_end(args); - - if (nCount > 0) - return WriteRaw(szTemp, (DWORD) nCount); - return E_UNEXPECTED; - } -#pragma warning(pop) -}; - -template -class CSimpleStack -{ -public: - int m_nTop; - TData m_Data[nMax]; - - CSimpleStack() - { - m_nTop = -1; - } - - bool IsEmpty() - { - return (m_nTop == -1); - } - - bool Push(const TData *pData) - { - if (m_nTop + 1 >= nMax) - return false; - - m_nTop++; - - m_Data[m_nTop] = *pData; - return true; - } - - bool Pop(TData *pData) - { - if (m_nTop < 0) - return false; - - *pData = m_Data[m_nTop]; - m_nTop--; - return true; - } -}; - - -struct HTML_SCHEME -{ - CString strBgColor; - CString strLinkColor; - CString strVLinkColor; - CString strALinkColor; - CString strBackground; - int nTopMargin; - int nLeftMargin; - - CString strTdBgColor; - CString strTableBgColor; - CString strTrBgColor; - - HTML_SCHEME() - { - nTopMargin = -1; - nLeftMargin = -1; - } -}; - -template -class CHtmlGenBase : public CStreamFormatter -{ -public: - T* GetOuter() - { - return static_cast(this); - } - - enum ATL_HTML_FORM_METHOD { ATL_HTML_FORM_METHOD_NONE=0, ATL_HTML_FORM_METHOD_GET, ATL_HTML_FORM_METHOD_POST, ATL_HTML_FORM_METHOD_MULTIPART }; - - CHtmlGenBase() - { - m_nWidthPercent = -1; - m_nHeightPercent = -1; - m_nFormMethod = ATL_HTML_FORM_METHOD_NONE; - m_pScheme = NULL; - } - - void SetScheme(HTML_SCHEME *pScheme) - { - m_pScheme = pScheme; - } - - HRESULT body(LPCTSTR szBgColor=NULL, LPCTSTR szBackground=NULL, LPCTSTR szTopMargin=NULL, LPCTSTR szLeftMargin=NULL, - LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szBgColor && *szBgColor) - Attrs.Add(_T("bgColor"), szBgColor); - else if (m_pScheme && m_pScheme->strBgColor.GetLength()) - Attrs.Add(_T("bgColor"), m_pScheme->strBgColor); - - if (szBackground && *szBackground) - Attrs.Add(_T("background"), szBackground); - else if (m_pScheme && m_pScheme->strBackground.GetLength()) - Attrs.Add(_T("background"), m_pScheme->strBackground); - - if (m_pScheme && m_pScheme->strLinkColor.GetLength()) - Attrs.Add(_T("link"), m_pScheme->strLinkColor); - - if (m_pScheme && m_pScheme->strALinkColor.GetLength()) - Attrs.Add(_T("alink"), m_pScheme->strALinkColor); - - if (m_pScheme && m_pScheme->strVLinkColor.GetLength()) - Attrs.Add(_T("vlink"), m_pScheme->strVLinkColor); - - if (szTopMargin && *szTopMargin) - Attrs.Add(_T("topmargin"), szTopMargin); - else if (m_pScheme && m_pScheme->nTopMargin != -1) - Attrs.AddFormat(_T("topmargin=\"%d\""), m_pScheme->nTopMargin); - - if (szLeftMargin && *szLeftMargin) - Attrs.Add(_T("leftmargin"), szLeftMargin); - else if (m_pScheme && m_pScheme->nLeftMargin != -1) - Attrs.AddFormat(_T("leftmargin=\"%d\""), m_pScheme->nLeftMargin); - - return GetOuter()->StartTag(ATL_HTML_TAG_BODY, NULL, Attrs); - } - - HRESULT bodyEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_BODY); - } - - HRESULT a(LPCTSTR szHref, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (m_strState.GetLength()==0) - { - if (szHref && *szHref) - Attrs.Add(_T("href"), szHref); - return GetOuter()->StartTag(ATL_HTML_TAG_A, szContent, Attrs); - } - - const TCHAR *szQuestion = NULL; - if(szHref) - szQuestion = _tcschr(szHref, '?'); - - CString strHref = szHref; - if (!szQuestion) - strHref.Append("?"); - else - strHref.Append("&"); - - strHref += m_strState; - - if (szHref && *szHref) - Attrs.Add(_T("href"), strHref); - - return GetOuter()->StartTag(ATL_HTML_TAG_A, szContent, Attrs); - } - - HRESULT aEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_A); - } - - HRESULT b(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_B, szContent, szAttrs); - } - - HRESULT bEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_B); - } - - HRESULT i(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_I, szContent, szAttrs); - } - - HRESULT iEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_I); - } - - HRESULT u(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_U, szContent, szAttrs); - } - - HRESULT uEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_U); - } - - HRESULT font(LPCTSTR szFace, LPCTSTR szSize=NULL, LPCTSTR szColor=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - if (szFace && *szFace) - Attrs.Add(_T("face"), szFace); - if (szSize && *szSize) - Attrs.Add(_T("size"), szSize); - if (szColor && *szColor) - Attrs.Add(_T("color"), szColor); - return GetOuter()->StartTag(ATL_HTML_TAG_FONT, NULL, Attrs); - } - - HRESULT font(COLORREF clrColor, LPCTSTR szAttrs=NULL) - { - TCHAR szColor[8]; - _stprintf_s(szColor, _countof(szColor), _T("#%02x%02x%02x"), GetRValue(clrColor), - GetGValue(clrColor), GetBValue(clrColor)); - return GetOuter()->font(NULL, NULL, szColor, szAttrs); - } - - HRESULT fontEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_FONT); - } - - HRESULT img(LPCTSTR szSrc, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szSrc && *szSrc); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("src"), szSrc); - - return GetOuter()->StartTag(ATL_HTML_TAG_IMG, NULL, Attrs); - } - - HRESULT br(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_BR, NULL, szAttrs); - } - - HRESULT hr(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_HR, NULL, szAttrs); - } - - HRESULT div(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DIV, szContent, szAttrs); - } - - HRESULT divEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DIV); - } - - HRESULT blockquote(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_BLOCKQUOTE, szContent, szAttrs); - } - - HRESULT blockquoteEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_BLOCKQUOTE); - } - - HRESULT address(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_ADDRESS, szContent, szAttrs); - } - - HRESULT addressEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_ADDRESS); - } - - HRESULT p(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_P, szContent, szAttrs); - } - - HRESULT pEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_P); - } - - HRESULT h(int nLevel=1, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - if (nLevel < 1 || nLevel > 6) - return E_INVALIDARG; - return GetOuter()->StartTag(ATL_HTML_TAG_H1+nLevel-1, szContent, szAttrs); - } - - HRESULT hEnd(int nLevel=1) - { - if (nLevel < 1 || nLevel > 6) - return E_INVALIDARG; - return GetOuter()->EndTag(ATL_HTML_TAG_H1+nLevel-1); - } - - HRESULT pre(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_PRE, szContent, szAttrs); - } - - HRESULT preEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_PRE); - } - - HRESULT q(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_Q, szContent, szAttrs); - } - - HRESULT qEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_Q); - } - - HRESULT sub(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_SUB, szContent, szAttrs); - } - - HRESULT subEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SUB); - } - - HRESULT sup(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_SUP, szContent, szAttrs); - } - - HRESULT supEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SUP); - } - - HRESULT ins(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_INS, szContent, szAttrs); - } - - HRESULT insEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_INS); - } - - HRESULT del(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DEL, szContent, szAttrs); - } - - HRESULT delEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DEL); - } - - - HRESULT em(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_EM, szContent, szAttrs); - } - - HRESULT emEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_EM); - } - - HRESULT strong(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_STRONG, szContent, szAttrs); - } - - HRESULT strongEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_STRONG); - } - - HRESULT dfn(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DFN, szContent, szAttrs); - } - - HRESULT dfnEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DFN); - } - - HRESULT code(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_CODE, szContent, szAttrs); - } - - HRESULT codeEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_CODE); - } - - HRESULT samp(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_SAMP, szContent, szAttrs); - } - - HRESULT sampEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SAMP); - } - - HRESULT kbd(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_KBD, szContent, szAttrs); - } - - HRESULT kbdEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_KBD); - } - - HRESULT var(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_VAR, szContent, szAttrs); - } - - HRESULT varEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_VAR); - } - - HRESULT cite(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_CITE, szContent, szAttrs); - } - - HRESULT citeEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_CITE); - } - - HRESULT abbr(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_ABBR, szContent, szAttrs); - } - - HRESULT abbrEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_ABBR); - } - - HRESULT acronym(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_ACRONYM, szContent, szAttrs); - } - - HRESULT acronymEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_ACRONYM); - } - - - HRESULT ol(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_OL, NULL, szAttrs); - } - - HRESULT ul(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_UL, NULL, szAttrs); - } - - HRESULT olEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_OL); - } - - HRESULT ulEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_UL); - } - - HRESULT li(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_LI, szContent, szAttrs); - } - - HRESULT liEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_LI); - } - - HRESULT dl(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DL, szContent, szAttrs); - } - - HRESULT dlEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DL); - } - - HRESULT dt(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DT, szContent, szAttrs); - } - - HRESULT dtEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DT); - } - - HRESULT dd(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_DD, szContent, szAttrs); - } - - HRESULT ddEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_DD); - } - - void SetSizePercent(int nWidth, int nHeight) - { - m_nWidthPercent = nWidth; - m_nHeightPercent = nHeight; - } - - HRESULT table(int nBorderWidth=0, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - m_RowStack.Push(&m_tableState); - m_tableState.Clear(); - - Attrs.AddFormat(_T("border=\"%d\""), nBorderWidth); - - if (m_nWidthPercent != -1) - Attrs.AddFormat(_T("width=\"%d%%\""), m_nWidthPercent); - if (m_nHeightPercent != -1) - Attrs.AddFormat(_T("height=\"%d%%\""), m_nHeightPercent); - - if (m_pScheme && m_pScheme->strTableBgColor.GetLength()) - Attrs.Add(_T("bgcolor"), m_pScheme->strTableBgColor); - - m_nWidthPercent = -1; - m_nHeightPercent = -1; - return GetOuter()->StartTag(ATL_HTML_TAG_TABLE, NULL, Attrs); - } - - HRESULT tableEnd() - { - if (m_tableState.m_bRowOpen) - GetOuter()->trEnd(); - m_RowStack.Pop(&m_tableState); - return GetOuter()->EndTag(ATL_HTML_TAG_TABLE); - } - - HRESULT tr(LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (m_RowStack.IsEmpty()) - GetOuter()->table(); - if (m_tableState.m_bRowOpen) - GetOuter()->trEnd(); - m_tableState.m_bRowOpen = true; - - if (m_pScheme && m_pScheme->strTrBgColor.GetLength()) - Attrs.Add(_T("bgcolor"), m_pScheme->strTrBgColor); - return GetOuter()->StartTag(ATL_HTML_TAG_TR, NULL, Attrs); - } - - HRESULT td(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (!m_tableState.m_bRowOpen) - GetOuter()->tr(); - m_tableState.m_bDataOpen = true; - if (m_pScheme && m_pScheme->strTdBgColor.GetLength()) - Attrs.Add(_T("bgColor"), m_pScheme->strTdBgColor); - - HRESULT hr = GetOuter()->StartTag(ATL_HTML_TAG_TD, szContent, Attrs); - if (FAILED(hr)) - return hr; - if (szContent) - m_tableState.m_bDataOpen = false; - return S_OK; - } - - HRESULT tdEnd() - { - if (!m_tableState.m_bDataOpen) - return S_OK; - m_tableState.m_bDataOpen = false; - return GetOuter()->EndTag(ATL_HTML_TAG_TD); - } - - HRESULT trEnd() - { - if (!m_tableState.m_bRowOpen) - return S_OK; - if (m_tableState.m_bDataOpen) - GetOuter()->tdEnd(); - m_tableState.m_bRowOpen = false; - return GetOuter()->EndTag(ATL_HTML_TAG_TR); - } - - HRESULT form(LPCTSTR szAction, ATL_HTML_FORM_METHOD nMethod=ATL_HTML_FORM_METHOD_GET, LPCTSTR szAttrs=NULL) - { - static const LPCTSTR s_szFormMethods[] = { NULL, _T("get"), _T("post"), _T("multipart-www-url-encoded") }; - return GetOuter()->form(szAction, s_szFormMethods[nMethod], szAttrs); - } - - HRESULT form(LPCTSTR szAction, LPCTSTR szMethod, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szAction && *szAction) - Attrs.Add(_T("action"), szAction); - if (szMethod && *szMethod) - Attrs.Add(_T("method"), szMethod); - - return GetOuter()->StartTag(ATL_HTML_TAG_FORM, NULL, Attrs); - } - - HRESULT input(LPCTSTR szType, LPCTSTR szName, LPCTSTR szValue, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szType && *szType) - Attrs.Add(_T("type"), szType); - if (szName && *szName) - Attrs.Add(_T("name"), szName); - if (szValue && *szValue) - Attrs.Add(_T("value"), szValue); - return GetOuter()->StartTag(ATL_HTML_TAG_INPUT, NULL, Attrs); - } - - HRESULT submit(LPCTSTR szValue=NULL, LPCTSTR szName=NULL, LPCTSTR szAttrs=NULL) - { - return input(_T("submit"), szName, szValue, szAttrs); - } - - HRESULT textarea(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_TEXTAREA, szContent, szAttrs); - } - - HRESULT textareaEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_TEXTAREA); - } - - HRESULT formEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_FORM); - } - - - HRESULT select(LPCTSTR szName, BOOL bMultiple=FALSE, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szName && *szName); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("name"), szName); - if (bMultiple) - Attrs.Add(_T("multiple"), NULL); - return GetOuter()->StartTag(ATL_HTML_TAG_SELECT, NULL, Attrs); - } - - HRESULT option(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_OPTION, szContent, szAttrs); - } - - HRESULT optionEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_OPTION); - } - - HRESULT selectEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SELECT); - } - - - HRESULT head(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_HEAD, NULL, szAttrs); - } - - HRESULT headEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_HEAD); - } - - HRESULT html(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_HTML, NULL, szAttrs); - } - - HRESULT htmlEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_HTML); - } - - HRESULT map(LPCTSTR szName, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szName && *szName); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("name"), szName); - return GetOuter()->StartTag(ATL_HTML_TAG_MAP, NULL, Attrs); - } - - HRESULT mapEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_MAP); - } - - HRESULT area(LPCTSTR szAlt, LPCTSTR szHref=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szAlt && *szAlt) - Attrs.Add(_T("alt"), szAlt); - if (szHref && *szHref) - Attrs.Add(_T("href"), szHref); - return GetOuter()->StartTag(ATL_HTML_TAG_AREA, NULL, Attrs); - } - - HRESULT base(LPCTSTR szHref, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szHref && *szHref); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("href"), szHref); - return GetOuter()->StartTag(ATL_HTML_TAG_BASE, NULL, Attrs); - } - - HRESULT bdo(LPCTSTR szDir, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szDir&& *szDir); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("dir"), szDir); - return GetOuter()->StartTag(ATL_HTML_TAG_BDO, szContent, Attrs); - } - - HRESULT bdoEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_BDO); - } - - HRESULT big(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_BIG, szContent, szAttrs); - } - - HRESULT bigEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_BIG); - } - - HRESULT button(LPCTSTR szName=NULL, LPCTSTR szValue=NULL, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szName && *szName) - Attrs.Add(_T("name"), szName); - if (szValue && *szValue) - Attrs.Add(_T("value"), szValue); - return GetOuter()->StartTag(ATL_HTML_TAG_BUTTON, szContent, Attrs); - } - - HRESULT buttonEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_BUTTON); - } - - HRESULT iframe(LPCTSTR szSrc=NULL, LPCTSTR szWidth=NULL, LPCTSTR szHeight=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szSrc && *szSrc) - Attrs.Add(_T("src"), szSrc); - if (szWidth && *szWidth) - Attrs.Add(_T("width"), szWidth); - if (szHeight && *szHeight) - Attrs.Add(_T("height"), szHeight); - return GetOuter()->StartTag(ATL_HTML_TAG_IFRAME, NULL, Attrs); - } - - HRESULT iframeEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_IFRAME); - } - - HRESULT label(LPCTSTR szFor=NULL, LPCTSTR szAccessKey=NULL, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szFor && *szFor) - Attrs.Add(_T("for"), szFor); - if (szAccessKey && *szAccessKey) - Attrs.Add(_T("accesskey"), szAccessKey); - return GetOuter()->StartTag(ATL_HTML_TAG_LABEL, szContent, Attrs); - } - - HRESULT labelEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_LABEL); - } - - HRESULT link(LPCTSTR szRel=NULL, LPCTSTR szHref=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szRel && *szRel) - Attrs.Add(_T("rel"), szRel); - if (szHref && *szHref) - Attrs.Add(_T("href"), szHref); - return GetOuter()->StartTag(ATL_HTML_TAG_LINK, NULL, Attrs); - } - - HRESULT meta(LPCTSTR szName=NULL, LPCTSTR szContent=NULL, LPCTSTR szHttpEquiv=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (szName && *szName) - Attrs.Add(_T("name"), szName); - if (szContent && *szContent) - Attrs.Add(_T("content"), szContent); - if (szHttpEquiv && *szHttpEquiv) - Attrs.Add(_T("http-equiv"), szHttpEquiv); - return GetOuter()->StartTag(ATL_HTML_TAG_META, NULL, Attrs); - } - - HRESULT noframes(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_NOFRAMES, szContent, szAttrs); - } - - HRESULT noframesEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_NOFRAMES); - } - - HRESULT noscript(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_NOSCRIPT, szContent, szAttrs); - } - - HRESULT noscriptEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_NOSCRIPT); - } - - HRESULT col(int nSpan=1, LPCTSTR szWidth=NULL, LPCTSTR szHeight=NULL, LPCTSTR szVAlign=NULL, - LPCTSTR szHAlign=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - - if (nSpan != 1) - Attrs.AddFormat(_T("span"), _T("\"%d\""), nSpan); - if (szWidth && *szWidth) - Attrs.Add(_T("width"), szWidth); - if (szHeight && *szHeight) - Attrs.Add(_T("height"), szHeight); - if (szVAlign && *szVAlign) - Attrs.Add(_T("valign"), szVAlign); - if (szHAlign && *szHAlign) - Attrs.Add(_T("align"), szHAlign); - return GetOuter()->StartTag(ATL_HTML_TAG_COL, NULL, Attrs); - } - - HRESULT colgroup(int nSpan=1, LPCTSTR szWidth=NULL, LPCTSTR szHeight=NULL, LPCTSTR szVAlign=NULL, - LPCTSTR szHAlign=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - if (nSpan != 1) - Attrs.AddFormat(_T("span"), _T("\"%d\""), nSpan); - if (szWidth && *szWidth) - Attrs.Add(_T("width"), szWidth); - if (szHeight && *szHeight) - Attrs.Add(_T("height"), szHeight); - if (szVAlign && *szVAlign) - Attrs.Add(_T("valign"), szVAlign); - if (szHAlign && *szHAlign) - Attrs.Add(_T("align"), szHAlign); - return GetOuter()->StartTag(ATL_HTML_TAG_COL, NULL, Attrs); - } - - HRESULT colgroupEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_COLGROUP); - } - - HRESULT fieldset(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_FIELDSET, NULL, szAttrs); - } - - HRESULT fieldsetEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_FIELDSET); - } - - HRESULT legend(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_LEGEND, szContent, szAttrs); - } - - HRESULT legendEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_LEGEND); - } - - HRESULT tbody(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_TBODY, NULL, szAttrs); - } - - HRESULT tbodyEnd() - { - return GetOuter()->StartTag(ATL_HTML_TAG_TBODY); - } - - HRESULT tfoot(LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_TFOOT, NULL, szAttrs); - } - - HRESULT tfootEnd() - { - return GetOuter()->StartTag(ATL_HTML_TAG_TFOOT); - } - - HRESULT th(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - if (!m_tableState.m_bRowOpen) - GetOuter()->tr(); - m_tableState.m_bDataOpen = true; - return GetOuter()->StartTag(ATL_HTML_TAG_TH, szContent, szAttrs); - } - - HRESULT thEnd() - { - ATLASSUME(m_tableState.m_bDataOpen); - m_tableState.m_bDataOpen = false; - return GetOuter()->EndTag(ATL_HTML_TAG_TH); - } - - HRESULT title(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_TITLE, szContent, szAttrs); - } - - HRESULT titleEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_TITLE); - } - - HRESULT tt(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_TT, szContent, szAttrs); - } - - HRESULT ttEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_TT); - } - - // unfortunately, we can't use small since it is defined as char - // in rpcndr.h! - HRESULT _small(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_SMALL, szContent, szAttrs); - } - - HRESULT _smallEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SMALL); - } - - HRESULT span(LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - return GetOuter()->StartTag(ATL_HTML_TAG_SPAN, szContent, szAttrs); - } - - HRESULT spanEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_SPAN); - } - - HRESULT object(LPCTSTR szClassId, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - if (szClassId && *szClassId) - Attrs.Add(_T("classid"), szClassId); - return GetOuter()->StartTag(ATL_HTML_TAG_OBJECT, szContent, Attrs); - } - - HRESULT object(REFCLSID rclsid, LPCTSTR szContent=NULL, LPCTSTR szAttrs=NULL) - { - USES_CONVERSION_EX; - OLECHAR szClsid[64]; - CString strClassId; - int i = StringFromGUID2(rclsid, szClsid, 64); - if (!i) - return E_FAIL; - szClsid[i-2] = 0; // don't want curly braces - strClassId.Format(_T("clsid:%s"), OLE2T_EX_DEF(szClsid+1)); - return object(strClassId, szContent, szAttrs); - } - - HRESULT objectEnd() - { - return GetOuter()->EndTag(ATL_HTML_TAG_OBJECT); - } - - HRESULT param(LPCTSTR szName, LPCTSTR szValue, LPCTSTR szAttrs=NULL) - { - ATLASSERT(szName && *szName); - - AtlHtmlAttrs Attrs; - Attrs.Set(szAttrs); - - Attrs.Add(_T("name"), szName); - if (szValue && *szValue) - Attrs.Add(_T("value"), szValue); - return GetOuter()->StartTag(ATL_HTML_TAG_PARAM, NULL, Attrs); - } - -private: - CString m_strState; - HTML_SCHEME *m_pScheme; - - struct TableState - { - TableState() : m_bRowOpen(false), m_bDataOpen(false) - { - - } - - void Clear() - { - m_bRowOpen = false; - m_bDataOpen = false; - } - - bool m_bRowOpen; - bool m_bDataOpen; - }; - - ATL_HTML_FORM_METHOD m_nFormMethod; - - TableState m_tableState; - CSimpleStack m_RowStack; - - int m_nWidthPercent; - int m_nHeightPercent; -}; - -class CHtmlGen : public CHtmlGenBase -{ -public: -}; - -} // namespace ATL -#pragma pack(pop) - -#endif // __ATLHTML_H__ diff --git a/ATL90/include/atlhttp.h b/ATL90/include/atlhttp.h deleted file mode 100644 index e8a4321..0000000 --- a/ATL90/include/atlhttp.h +++ /dev/null @@ -1,725 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLHTTP_H__ -#define __ATLHTTP_H__ - -#pragma once -#ifndef __CPPUNWIND -#pragma warning(push) -#pragma warning(disable: 4702) -#endif -#ifndef _WINSOCKAPI_ - #include -#endif -#include -#include -#include -#include -#define SECURITY_WIN32 -#include -#include -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "ws2_32.lib") -#pragma comment(lib, "SECUR32.LIB") -#endif // !_ATL_NO_DEFAULT_LIBS - -#include - -#pragma warning(push) -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -template -class CAtlHttpClientT; -class CAtlBaseAuthObject; - -enum status_headerparse{ - ATL_HEADER_PARSE_COMPLETE=0, - ATL_HEADER_PARSE_HEADERNOTCOMPLETE, - ATL_HEADER_PARSE_HEADERERROR -}; - -enum readstate{rs_init=0, rs_readheader, rs_scanheader, rs_readbody, rs_complete}; - -#define ATL_HEADER_END "\r\n\r\n" -#define ATL_HEADER_END_LEN 4 -#define ATL_DW_HEADER_END 0x0a0d0a0d -#define ATL_FIELDNAME_DELIMITER _T(':') -#define ATL_MAX_FIELDNAME_LEN 1024 -#define ATL_MAX_VALUE_LEN 1024 -#define ATL_AUTH_HDR_SIZE 1024 -#define ATL_READ_BUFF_SIZE 2048 -#define ATL_INVALID_STATUS -1 -#define ATL_HTTP_HEADER _T(" HTTP/1.1\r\n") -#define ATL_HTTP_HEADER_PROXY _T(" HTTP/1.1\r\n") -#ifndef ATL_HTTP_USERAGENT - #define ATL_HTTP_USERAGENT _T("User-Agent: Microsoft-ATL-Native/") _T(_ATL_VER_RBLD) _T("\r\n") -#endif - -#define ATL_IS_INVALIDCREDHANDLE(x) ((x.dwLower==0xFFFFFFFF) && (x.dwUpper==0xFFFFFFFF)) -#define ATL_HTTP_AUTHTYPE_NTLM _T("NTLM") -#define ATL_HTTP_AUTHTYPE_BASIC _T("BASIC") -#define ATL_HTTP_METHOD_GET _T("GET") -#define ATL_HTTP_METHOD_POST _T("POST") - -#ifndef MAX_REALM_LEN - #define MAX_REALM_LEN 1024 -#endif - -#ifndef _ATL_MAX_AUTH_BUFF - #define _ATL_MAX_AUTH_BUFF 512 -#endif - -__interface IAuthInfo; -typedef bool (WINAPI *PFNATLCHUNKEDCB)(BYTE** ppData, DWORD *pdwSize, DWORD_PTR dwParam); -typedef bool (WINAPI *PFNATLSTATUSCALLBACK)(DWORD dwBytesSent, DWORD_PTR dwParam); - -#define ATL_HTTP_FLAG_AUTO_REDIRECT 0x1 -#define ATL_HTTP_FLAG_PROCESS_RESULT 0x2 -#define ATL_HTTP_FLAG_SEND_CALLBACK 0x4 -#define ATL_HTTP_FLAG_SEND_BLOCKS 0x8 -#define ATL_HTTP_FLAG_INVALID_FLAGS 0xFFFFFFFF - -#ifndef ATL_HTTP_DEFAULT_BLOCK_SIZE - #define ATL_HTTP_DEFAULT_BLOCK_SIZE 4096 -#endif - -#define ATL_HTTP_CLIENT_EMPTY_READ_RETRIES 5 - -struct ATL_NAVIGATE_DATA -{ - LPCTSTR szExtraHeaders; - LPCTSTR szMethod; - LPCTSTR szDataType; - DWORD dwDataLen; - DWORD dwFlags; - DWORD dwTimeout; - DWORD dwSendBlockSize; - DWORD dwReadBlockSize; - DWORD_PTR m_lParamSend; - DWORD_PTR m_lParamRead; - DWORD_PTR m_lParamChunkCB; - short nPort; - BYTE *pData; - PFNATLCHUNKEDCB pfnChunkCallback; - PFNATLSTATUSCALLBACK pfnSendStatusCallback; - PFNATLSTATUSCALLBACK pfnReadStatusCallback; -}; - -class CAtlNavigateData : public ATL_NAVIGATE_DATA -{ -public: - CAtlNavigateData() throw(); // public construction - CAtlNavigateData(const CAtlNavigateData &rhs); - CAtlNavigateData(const ATL_NAVIGATE_DATA &rhs); - CAtlNavigateData& operator=(const CAtlNavigateData &rhs); - CAtlNavigateData& operator=(const ATL_NAVIGATE_DATA &rhs); - DWORD SetFlags(DWORD dwNewFlags) throw(); // set all flags - DWORD GetFlags() throw(); // get value of flags - DWORD AddFlags(DWORD dwFlagsToAdd) throw(); // add one or more flags to existing flags - DWORD RemoveFlags(DWORD dwFlagsToRemove) throw(); // remove one or more flags from existing flags - LPCTSTR SetExtraHeaders(LPCTSTR szNewHeaders) throw(); // set the extra request headers - LPCTSTR GetExtraHeaders() throw(); // get the extra request headers - LPCTSTR SetMethod(LPCTSTR szNewMethod) throw(); // set the HTTP request method - LPCTSTR GetMethod() throw(); // get the HTTP request method - short SetPort(short newPort) throw(); // set the TCP port for this request - short GetPort() throw(); // get the TCP port for this request - void SetPostData(BYTE *pData, DWORD dwDataLen, LPCTSTR szDataType) throw(); // Set data to be sent as the reqeust entity body - DWORD SetSocketTimeout(DWORD dwNewTimeout) throw(); // Set the timeout for this socket - DWORD GetSocketTimeout() throw(); // Get the timeout for this socket - DWORD SetSendBlockSize(DWORD dwBlockSize) throw(); // Set the size of the blocks used to send data - DWORD GetSendBlockSize() throw(); // get the size of the blocks used to send data - DWORD SetReadBlockSize(DWORD dwBlockSize) throw(); // Set the size of the blocks used to send data - DWORD GetReadBlockSize() throw(); // get the size of the blocks used to send data - PFNATLCHUNKEDCB SetChunkCallback(PFNATLCHUNKEDCB pfn, DWORD_PTR dwParam) throw(); // set the callback function used for sending chunked data - PFNATLCHUNKEDCB GetChunkCallback() throw(); // get the chunked callback function - PFNATLSTATUSCALLBACK SetSendStatusCallback(PFNATLSTATUSCALLBACK pfn, DWORD_PTR dwData) throw(); // sets a function pointer to be called after bytes are sent over the socket - PFNATLSTATUSCALLBACK GetSendStatusCallback() throw(); // returns current status callback function - PFNATLSTATUSCALLBACK SetReadStatusCallback(PFNATLSTATUSCALLBACK pfn, DWORD_PTR dwData) throw(); - PFNATLSTATUSCALLBACK GetReadStatusCallback() throw(); -}; - -template -class CAtlHttpClientT : - private TSocketClass -{ -public: - CAtlHttpClientT() throw(); - virtual ~CAtlHttpClientT() - { - } - - // Use these functions to send an HTTP request and retrieve - // the response. - bool Navigate( - const CUrl* pUrl, - ATL_NAVIGATE_DATA *pNavData = NULL - ) throw(...); - - bool Navigate( - LPCTSTR szServer, - LPCTSTR szPath, - ATL_NAVIGATE_DATA *pNavData = NULL - ) throw(...); - - bool Navigate( - LPCTSTR szURL, - ATL_NAVIGATE_DATA *pNavData = NULL - ) throw(...); - - - // Performs navigation, sending data with Transfer-Coding: chunked - bool NavigateChunked( - const CUrl *pUrl, - ATL_NAVIGATE_DATA *pData - ) throw(); - - bool NavigateChunked( - LPCTSTR szServer, - LPCTSTR szPath, - ATL_NAVIGATE_DATA *pNavData - ) throw(); - - bool NavigateChunked( - LPCTSTR szURL, - ATL_NAVIGATE_DATA *pNavData - ) throw(); - - // Use to set/retrieve information about the proxy server used - // when making this request via a proxy server. - bool SetProxy(LPCTSTR szProxy = NULL, short nProxyPort = 0) throw(); - void RemoveProxy() throw(); - LPCTSTR GetProxy() const throw(); - short GetProxyPort() const throw(); - - // Use these functions to add/remove/find objects that will - // be used to authorize request when a 401 Not Authorized response - // is received. This class maps these objects by scheme name in map. - // Override NegotiateAuth to change the way authorization negotiation occurs. - bool AddAuthObj(LPCTSTR szScheme, CAtlBaseAuthObject *pObject, IAuthInfo *pInfo=NULL) throw(); - const CAtlBaseAuthObject* FindAuthObject(LPCTSTR szScheme) throw(); - bool RemoveAuthObject(LPCTSTR szScheme) throw(); - virtual bool NegotiateAuth(bool bProxy) throw(); - - - // Retrieve the value of a response header - bool GetHeaderValue(LPCTSTR szName, CString& strValue) const throw(); - bool GetHeaderValue(__in_z LPCTSTR szName, __out_ecount_part_z_opt(*pdwLen, *pdwLen) LPTSTR szBuffer, __inout DWORD *pdwLen) const throw(); - - DWORD GetResponseLength() throw(); // Get the number of bytes in the response - const BYTE* GetResponse() throw(); // Get the entire response - DWORD GetBodyLength() const throw(); // Get the length of the body of the response (everything after the \r\n\r\n) - const BYTE* GetBody() throw(); // Get the body of the response (length is determined by GetBodyLength()) - DWORD GetRawResponseHeaderLength() throw(); // Get the length of the raw request headers - bool GetRawResponseHeader(LPBYTE szBuffer, DWORD *pdwLen) throw(); // Get the raw request headers - LPCURL GetCurrentUrl() const throw(); // Get a pointer to the current URL for this request - DWORD GetFlags() const throw(); // Retrieve flags used for processing this request - int GetStatus() throw(); // Get the HTTP status code that resulted from making this request - LPCTSTR GetMethod() throw(); // Get the HTTP method used for making this request - BYTE* GetPostData() throw(); // Get a pointer to raw data being sent with this request - DWORD GetPostDataLen() throw(); // Get the length of the raw data sent with this request - LPCTSTR GetPostDataType() throw(); // Get the data type (sent as Content-Type header) for this request - DWORD GetLastError() throw(); // Retrieves errors from the underlying socket - const SOCKET& GetSocket() throw(); // Retrieves the underlying socket. Be careful! - void Close() throw(); // Close the connection - DWORD SetSocketTimeout(DWORD dwNewTimeout) throw(); // Sets a new socket timeout, returns the old timeout. - DWORD GetSocketTimeout() throw(); // retrieves the current socket timeout - void AuthProtocolFailed(LPCTSTR szProto) throw(); // notifies us of failure to connect with the named protocol - const ATL_NAVIGATE_DATA* GetCurrentNavdata(); - enum HTTP_RESPONSE_READ_STATUS - { - RR_OK = 0, // response was successfully processed - RR_FAIL, // an unknown error occurred reading the HTTP response - RR_STATUS_INVALID, // could not parse the status line - RR_PARSEHEADERS_FAILED, // failed to parse HTTP response headers - RR_READSOCKET_FAILED, // failed to read response data from socket - RR_READBODY_FAILED, // failed to successfully read the entity body of the HTTP response - RR_READCHUNKEDBODY_FAILED, // failed to read a 'Transfer-Encoding: chunked' response body - RR_NOT_READ // we haven't started reading the response. - }; - HTTP_RESPONSE_READ_STATUS GetResponseStatus(); - - -// Implementation - HTTP_RESPONSE_READ_STATUS ReadHttpResponse() throw(); - void ResetConnection() throw(); - bool ProcessStatus(DWORD dwFlags) throw(); - bool BuildRequest(/*out*/CString *pstrRequest, - LPCTSTR szDataType=NULL, - LPCTSTR szExtraHeaders=NULL) throw(); - - void SetSilentLogonOk(bool bSet) - { - m_bSilentLogonOk = bSet; - } -protected: - DWORD WriteWithNoData(LPCSTR pRequest, DWORD dwRequestLen); - DWORD WriteWithCallback(LPCSTR pRequest, DWORD dwRequestLen); - DWORD WriteWithChunks(LPCSTR pRequest, DWORD dwRequestLen); - DWORD WriteWithData(LPCSTR pRequest, DWORD dwRequestLen); - bool SetDefaultUrl(LPCTSTR szUrl, short nPortNumber=ATL_URL_DEFAULT_HTTP_PORT) throw(); - bool SetDefaultUrl(LPCURL pUrl, short nPortNumber=ATL_URL_DEFAULT_HTTP_PORT) throw(); - bool SetDefaultMethod(LPCTSTR szMethod) throw(); - void InitializeObject() throw(); - void ResetRequest() throw(); - bool ReadSocket() throw(); - unsigned char* FindHeaderEnd(unsigned char** ppBegin) throw(); - bool LookupRegProxy() throw(); - bool DisconnectIfRequired() throw(); - bool ConnectSocket() throw(); - - long GetContentLength() throw(); - LPCSTR NextLine(BYTE* pCurr) throw(); - bool IsMsgBodyChunked() throw(); - LPCSTR FindEndOfHeader(LPCSTR pszStart) throw(); - bool DecodeHeader(LPCSTR pHeaderStart, LPCSTR pHeaderEnd) throw(); - virtual void OnSetCookie(LPCTSTR /*szCookie*/) throw(); - LPCSTR ParseStatusLine(BYTE* pBuffer) throw(); - int CrackResponseHeader(LPCSTR pBuffer, /*out*/ LPCSTR *pEnd) throw(); - bool ReadBody(int nContentLen, int nCurrentBodyLen) throw(); - bool ReadChunkedBody() throw(); - bool ReconnectIfRequired() throw(); - bool CompleteURL(CString& strURL) throw(); - bool ProcessObjectMoved() throw(); - bool _SetDefaultUrl(LPCTSTR szURL, short nPort) throw(); - - enum CHUNK_STATE{ - READ_CHUNK_SIZE, // need to read the size of a chunk. - READ_CHUNK_SIZE_FOOTER, - READ_CHUNK_DATA, // need to read the actual data - READ_CHUNK_DATA_FOOTER, // need to read the chunk footer. - READ_CHUNK_TRAILER, // Read the trailer headers at the end of the chunk data - READ_CHUNK_TRAILER_FOOTER, // read the final crlf - CHUNK_READ_DATA_COMPLETE, // done reading chunk data. - }; - - enum CHUNK_LEX_RESULT{ - LEX_OK, - LEX_OUTOFDATA, - LEX_ERROR, - LEX_TRAILER_COMPLETE - }; - - CHUNK_LEX_RESULT get_chunked_size(__deref_inout char *&pBuffStart, __deref_inout char *&pBuffEnd, __inout long* pnChunkSize) throw(); - bool move_leftover_bytes(__in_ecount(nLen) char *pBufferStart, __in int nLen, __deref_inout char *&pBuffStart, __deref_inout char *&pBuffEnd) throw(); - CHUNK_LEX_RESULT get_chunked_data(__deref_inout char *&pBufferStart, __deref_inout char *&pBufferEnd, long nChunkSize, - __deref_out_ecount_part(*pnDataLen, *pnDataLen) char **ppDataStart, __inout long *pnDataLen) throw(); - CHUNK_LEX_RESULT consume_chunk_trailer(__deref_inout char *&pBufferStart, __deref_inout char *pBufferEnd) throw(); - CHUNK_LEX_RESULT consume_chunk_footer(__deref_inout char *&pBufferStart, __deref_inout char *&pBufferEnd) throw(); - - typedef CAtlMap< - CString, - CString, - CStringElementTraitsI, - CStringElementTraitsI - > HeaderMapType; - - typedef CAtlMap < - CString, - CAtlBaseAuthObject*, - CStringElementTraitsI - > AuthMapType; - - typedef CAtlArray< - CString, - CStringElementTraitsI - > AuthListType; - - HeaderMapType m_HeaderMap; // Map of response headers - AuthMapType m_AuthMap; // Map of pointers to authorization objects. - AuthListType m_AuthTypes; // list of authorization types the server is willing to use. - BOOL m_bSilentLogonOk; - CAtlIsapiBuffer<> m_current; // The entire response - CUrl m_urlCurrent; // URL of current request - - CString m_strMethod; // Current request method. - CString m_strProxy; // Path to current proxy server. - - long m_nStatus; // Current response status (from status line) - short m_nProxyPort; // Port used on current proxy server - DWORD m_dwBodyLen; // Length of body - DWORD m_dwHeaderLen; // Length of current raw headers - DWORD m_dwHeaderStart; - BYTE *m_pCurrent; - BYTE *m_pEnd; // the end of the data we've read fromt he socket; - ATL_NAVIGATE_DATA *m_pNavData; - HTTP_RESPONSE_READ_STATUS m_LastResponseParseError; -}; //CAtlHttpClientT -typedef CAtlHttpClientT CAtlHttpClient; - - -// Interface used to acquire authentication information from clients -__interface IAuthInfo -{ - HRESULT GetPassword(__out_ecount_part_z_opt(*pdwBuffSize, *pdwBuffSize) LPTSTR szPwd, __inout DWORD *pdwBuffSize); - HRESULT GetUsername(__out_ecount_part_z_opt(*pdwBuffSize, *pdwBuffSize) LPTSTR szUid, __inout DWORD *pdwBuffSize); - HRESULT GetDomain(__out_ecount_part_z_opt(*pdwBuffSize, *pdwBuffSize) LPTSTR szDomain, __inout DWORD *pdwBuffSize); -}; -typedef HRESULT (IAuthInfo::*PFNAUTHFUNC)(LPTSTR szPwd, DWORD *pdwSize); - -// pure virtual class that describes required functions for authoriztion -// objects -class CAtlBaseAuthObject -{ -public: - CAtlBaseAuthObject(); - virtual bool Authenticate(LPCTSTR szAuthTypes, bool bProxy) = 0; - virtual void Init(CAtlHttpClient *pSocket, IAuthInfo *pAuthInfo) = 0; - bool m_bFailed; -}; - -// strings used for authentication. -extern __declspec(selectany)const TCHAR * const g_pszWWWAuthenticate = _T("www-authenticate"); -extern __declspec(selectany)const TCHAR * const g_pszProxyAuthenticate = _T("proxy-authenticate"); - -// Performs NTLM authentication -class CNTLMAuthObject : - public CAtlBaseAuthObject -{ -public: - virtual ~CNTLMAuthObject() throw(); - CNTLMAuthObject() throw(); - CNTLMAuthObject(IAuthInfo *pAuthInfo) throw(); - void SetAuthInfo(IAuthInfo *pAuthInfo) throw(); - bool GetCredentialNames(CString& theName); - -// Implementation - // Called by the CAtlHttpClient class to authenticate a user. - virtual void Init(CAtlHttpClient *pSocket, IAuthInfo *pAuthInfo=NULL) throw(); - - // Called by the CAtlHttpClient class to initialize this authentication object. - virtual bool Authenticate(LPCTSTR szAuthTypes, bool bProxy) throw(); -protected: - bool AcquireCredHandle() throw(); - // This function creates an NTML Authorization header - // and sends it to the HTTP server. - bool SendSecurityInfo(SecBuffer *pSecBuffer, LPSTR *pszBuffer) throw(); - bool DoNTLMAuthenticate() throw(); - - IAuthInfo *m_pAuthInfo; - CAtlHttpClient *m_pSocket; - CredHandle m_hCredentials; - int m_nMaxTokenSize; - TimeStamp m_ts; - bool m_bProxy; - static const char * const m_pszFmtWWW; - static const char * const m_pszFmtProxy; - CAtlNavigateData m_CurrentRequestData; - -}; // CNTLMAuthObject - -// Performs BASIC authentication for an CAtlHttpClient -// object. Caller must implement an IAuthInfo interface -// and pass it to this object before this object attempts -// to authenticate or authentication will fail. -class CBasicAuthObject : - public CAtlBaseAuthObject -{ -public: - CBasicAuthObject() throw(); - CBasicAuthObject(IAuthInfo *pAuthInfo) throw(); - void SetAuthInfo(IAuthInfo *pAuthInfo) throw(); - LPCTSTR GetRealm() throw(); // Retrieve's the realm being used. - -// Implementation - // Called by the CAtlHttpClient class to authenticate a user. - virtual bool Authenticate(LPCTSTR szAuthTypes, bool bProxy) throw(); - - // Called by the CAtlHttpClient class to initialize this authentication object. - virtual void Init(CAtlHttpClient *pSocket, IAuthInfo *pAuthInfo=NULL) throw(); -protected: - bool DoBasicAuthenticate() throw(); - bool CrackRealm(LPCTSTR szHeader) throw(); - - IAuthInfo *m_pAuthInfo; - CAtlHttpClient *m_pClient; - TCHAR m_szRealm[MAX_REALM_LEN]; - bool m_bProxy; - static const char * const m_pszFmtWWW; - static const char * const m_pszFmtProxy; -}; // CBasicAuthObject - -__declspec(selectany)const char * const CBasicAuthObject::m_pszFmtWWW = "Authorization: Basic "; -__declspec(selectany)const char * const CBasicAuthObject::m_pszFmtProxy = "Proxy-Authorization: Basic "; -__declspec(selectany)const char * const CNTLMAuthObject::m_pszFmtWWW = "Authorization: NTLM %s\r\n"; -__declspec(selectany)const char * const CNTLMAuthObject::m_pszFmtProxy = "Proxy-Authorization: NTLM %s\r\n"; - -typedef CTempBuffer CAuthInfoBuffType; -inline bool _AtlGetAuthInfoHelper(IAuthInfo *pObj, PFNAUTHFUNC pFunc, CAuthInfoBuffType& buff, DWORD *dwLen) throw() -{ - ATLENSURE_RETURN_VAL(pObj, false); - ATLENSURE_RETURN_VAL(pFunc, false); - DWORD dwSize = _ATL_MAX_AUTH_BUFF; - bool bRet = true; - TCHAR *szValue = NULL; - _ATLTRY - { - szValue = buff.Allocate(_ATL_MAX_AUTH_BUFF); - HRESULT hr = E_FAIL; - if (szValue) - { - hr = (pObj->*pFunc)(szValue, &dwSize); - if (hr != S_OK) - { - if (hr == E_OUTOFMEMORY) - { - // buffer not big enough, try to allocate - szValue = buff.Reallocate(dwSize); - if (szValue) - { - // retry the call - if (S_OK != (pObj->*pFunc)(szValue, &dwSize)) - bRet = false; - } - else - bRet = false; - } - else - bRet = false; - } - } - else - bRet = false; - - } - _ATLCATCHALL() - { - bRet = false; - } - if (bRet) - *dwLen = (DWORD)_tcslen(szValue); - else - *dwLen = 0; - return bRet; -} - -// -// Security Service Provider Interface (sspi) Helper classes -// These classes are used as helpers for structures used in -// SSPI functions. -// -class CSecAuthIdentity : public SEC_WINNT_AUTH_IDENTITY_EX -{ -public: - CSecAuthIdentity() throw() - { - Version = SEC_WINNT_AUTH_IDENTITY_VERSION; - Length = sizeof(SEC_WINNT_AUTH_IDENTITY_EX); -#ifdef _UNICODE - Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE; -#else - Flags = SEC_WINNT_AUTH_IDENTITY_ANSI; -#endif - } - - - bool Init(IAuthInfo *pAuthInfo) throw() - { - if (!pAuthInfo) - return false; - - if (!_AtlGetAuthInfoHelper(pAuthInfo, &IAuthInfo::GetUsername, buffUserName, &UserLength)) - return false; - - if (!_AtlGetAuthInfoHelper(pAuthInfo, &IAuthInfo::GetPassword, buffPassword, &PasswordLength)) - return false; - - if (!_AtlGetAuthInfoHelper(pAuthInfo, &IAuthInfo::GetDomain, buffDomain, &DomainLength)) - return false; - -#ifndef _UNICODE - User = (unsigned char*)(char*)buffUserName; - Domain = DomainLength > 0 ? (unsigned char*)(char*)buffDomain : 0; - Password = PasswordLength > 0 ? (unsigned char*)(char*)buffPassword : 0; -#else - // have to cast to unsigned short *, because SEC_WINNT_AUTH_IDENTITY_EXW - // uses unsigned short instead of wchar_t - User = (unsigned short *)(wchar_t*)buffUserName; - Domain = DomainLength > 0 ? (unsigned short *)(wchar_t*)buffDomain : 0; - Password = PasswordLength > 0 ? (unsigned short *)(wchar_t*)buffPassword : 0; -#endif - return true; - } - -protected: - CAuthInfoBuffType buffUserName; - CAuthInfoBuffType buffPassword; - CAuthInfoBuffType buffDomain; -}; // CSecAuthIdentity - -class CSecBuffer : public SecBuffer -{ -public: - CSecBuffer() throw() - { - cbBuffer = 0; - BufferType = 0; - pvBuffer = NULL; - m_cbAlloc = 0; - } - - ~CSecBuffer() throw() - { - delete [] static_cast(pvBuffer); - } - - bool SetSize(unsigned long nSize) throw() - { - if (!nSize) - return false; - - if (pvBuffer) - { - delete [] static_cast(pvBuffer); - pvBuffer = NULL; - cbBuffer = 0; - m_cbAlloc = 0; - } - - ATLTRY(pvBuffer = static_cast(new unsigned char[nSize])); - if (pvBuffer) - { - cbBuffer = nSize; - BufferType = SECBUFFER_TOKEN; - m_cbAlloc = cbBuffer; - return true; - } - return false; - } - - bool ClearBuffer(unsigned long nSize) throw() - { - if(nSize > m_cbAlloc) - return false; - - ZeroMemory(pvBuffer, nSize); - cbBuffer = nSize; - return true; - } - - unsigned long Size() - { - return cbBuffer; - } - - unsigned char *Buffer() throw() - { - return static_cast(pvBuffer); - } - - operator SecBuffer*() throw() - { - return (SecBuffer*)this; - } - -protected: - unsigned long m_cbAlloc; - -}; // CSecBuffer - -class CSecBufferDesc : public SecBufferDesc -{ -public: - CSecBufferDesc() throw() - { - ulVersion = SECBUFFER_VERSION; - cBuffers = 0; - pBuffers = NULL; - } - - ~CSecBufferDesc() throw() - { - cBuffers = 0; - - if (pBuffers) - { - CSecBuffer *psb = (CSecBuffer*)pBuffers; - delete [] psb; - } - } - - // index is 0 based - CSecBuffer* Buffers(unsigned int i) throw() - { - if (i < cBuffers) - { - return (CSecBuffer*)(&pBuffers[i]); - } - - return NULL; - } - - bool AddBuffers(unsigned int nCount, unsigned int nBufferSize) throw() - { - if (!nCount) - return true; - - if (cBuffers == 0) - { - CSecBuffer *pSecBuffer = NULL; - ATLTRY(pSecBuffer = new CSecBuffer[nCount]); - if (!pSecBuffer) - return false; - CAutoVectorPtr spSecBuffer(pSecBuffer); - - for (unsigned int i=0; i spSecBuffer(pSecBuffer); - Checked::memcpy_s(pSecBuffer, (nCount + cBuffers)*sizeof(CSecBuffer), pBuffers, cBuffers*sizeof(CSecBuffer)); - delete [] pBuffers; - pBuffers=NULL; - - // initialize new buffers - for (unsigned int i=0; i(this); - } -}; // CSecBufferDesc - -} // namespace ATL - - -#include - -#pragma pack(pop) -#pragma warning(pop) - -#ifndef __CPPUNWIND -#pragma warning(pop) -#endif - -#endif // __ATLHTTP_H__ diff --git a/ATL90/include/atlhttp.inl b/ATL90/include/atlhttp.inl deleted file mode 100644 index 71294b4..0000000 --- a/ATL90/include/atlhttp.inl +++ /dev/null @@ -1,3144 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLHTTP_INL__ -#define __ATLHTTP_INL__ - -#include - -#pragma warning(push) -#pragma warning(disable: 4061) // enumerate 'enum value' in switch of enum 'enum type' is not explicitly handled by a case label -#pragma warning(disable: 4062) // enumerate 'enum value' in switch of enum 'enum type' is not handled - -namespace ATL -{ - -///////////////////////////////////////////////////////////////////////////////// -// -// CAtlHttpClient -// Implementation of CAtlHttpClient member functions -// -///////////////////////////////////////////////////////////////////////////////// -template -inline CAtlHttpClientT::CAtlHttpClientT() throw() -{ - InitializeObject(); -} - -// Sets this object to a known state. -template -inline void CAtlHttpClientT::InitializeObject() throw() -{ - Close(); // will close the socket if it's already open - ResetRequest(); - SetSilentLogonOk(FALSE); -} - -template -inline void CAtlHttpClientT::ResetRequest() throw() -{ - // reset all data that has to do with the current request - m_HeaderMap.RemoveAll(); - m_current.Empty(); - m_urlCurrent.Clear(); - m_strMethod.Empty(); - m_nStatus = ATL_INVALID_STATUS; - m_dwBodyLen = 0; - m_dwHeaderLen = 0; - m_dwHeaderStart = 0; - m_pCurrent = NULL; - m_pNavData = NULL; - m_LastResponseParseError = RR_NOT_READ; - m_pEnd = NULL; - -} - - -// Use this function to retrieve an entity from a server via an HTTP -// request. This function will either request a connection from the -// server specified in the szURL parameter or request a connection from -// the proxy server. If a proxy server is to be used, you must call -// SetProxy prior to calling this function to specify the proxy server -// being used. Once the connection is established, an HTTP request -// is built and sent to the HTTP server. An attempt to read the HTTP -// response is then made. If the response is successfully read, the -// response will be parsed and stored in this class instance. The -// headers can be parsed via the LookupHeader function and the body -// of the response can be retrieved using the GetBody function. You -// can also retrieve the contents of the entire response by calling -// GetResponse. -template -inline bool CAtlHttpClientT::Navigate( - - LPCTSTR szUrl, - ATL_NAVIGATE_DATA *pNavData - ) throw(...) -{ - if (!szUrl || *szUrl == _T('\0')) - return false; - - CUrl url; - TCHAR szTmp[ATL_URL_MAX_URL_LENGTH]; - if(!AtlEscapeUrl(szUrl,szTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE)) - return false; - - if(!url.CrackUrl(szTmp)) - return false; - - // Navigate - return Navigate(&url, pNavData); -} - -template -inline bool CAtlHttpClientT::Navigate( - LPCTSTR szServer, - LPCTSTR szPath, - ATL_NAVIGATE_DATA *pNavData - ) throw(...) -{ - // Create a URL - if (!szServer || *szServer == _T('\0')) - return false; - if (!szPath || *szPath == _T('\0')) - return false; - CUrl url; - url.SetScheme(ATL_URL_SCHEME_HTTP); - url.SetHostName(szServer); - url.SetUrlPath(szPath); - if (pNavData) - url.SetPortNumber(pNavData->nPort); - else - url.SetPortNumber(ATL_URL_DEFAULT_HTTP_PORT); - - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH]; - DWORD dwMaxLen = ATL_URL_MAX_URL_LENGTH; - if (!url.CreateUrl(szUrl, &dwMaxLen)) - return false; - - // Navigate - return Navigate(szUrl, pNavData); -} - -template -inline bool CAtlHttpClientT::Navigate( - const CUrl *pUrl, - ATL_NAVIGATE_DATA *pData - ) throw(...) -{ - bool bRet = false; - if (!pUrl) - return false; - - ResetRequest(); - - CAtlNavigateData default_nav_data; - if (!pData) - m_pNavData = &default_nav_data; - else - m_pNavData = pData; - - ATLASSUME(m_pNavData); - - _ATLTRY - { - m_strMethod = m_pNavData->szMethod; - } - _ATLCATCHALL() - { - return false; - } - - SetSocketTimeout(m_pNavData->dwTimeout); - - // set m_urlCurrent - if (!SetDefaultUrl(pUrl, m_pNavData->nPort)) - return false; - DWORD dwSent = 0; - CString strRequest; - CString strExtraInfo; - - if (!BuildRequest(&strRequest, - m_pNavData->szMethod, - m_pNavData->szExtraHeaders)) - { - return false; - } - - - if (!ConnectSocket()) - return false; - - LPCTSTR szTRequest = strRequest; - CT2CA strARequest(szTRequest); - DWORD dwRequestLen = (DWORD)strlen(strARequest); - DWORD dwAvailable = dwRequestLen + m_pNavData->dwDataLen; - - if (m_pNavData->dwFlags & ATL_HTTP_FLAG_SEND_CALLBACK) - { - dwSent = WriteWithCallback(strARequest, dwRequestLen); - } - else if (!m_pNavData->pData) - dwSent = WriteWithNoData(strARequest, dwRequestLen); - else if (m_pNavData->pData && (m_pNavData->dwFlags & ATL_HTTP_FLAG_SEND_BLOCKS)) - { - dwSent = WriteWithChunks(strARequest, dwRequestLen); - } - else if(m_pNavData->pData) - { - dwSent = WriteWithData(strARequest, dwRequestLen); - } - - - // make sure everything was sent - if (dwSent == dwAvailable) - { - // Read the response - if (RR_OK == ReadHttpResponse()) - { - // if navigation isn't complete, try to complete - // it based on the status code and flags - if ((m_pNavData->dwFlags & ATL_HTTP_FLAG_PROCESS_RESULT)&& - !ProcessStatus(m_pNavData->dwFlags)) - { - bRet = false; - } - else - bRet = true; - } - else - bRet = false; - } - - if (!bRet) - Close(); // some kind of failure happened, close the socket. - - m_pNavData = NULL; - return bRet; -} - -template -inline DWORD CAtlHttpClientT::WriteWithNoData(LPCSTR pRequest, DWORD dwRequestLen) -{ - ATLASSUME(m_pNavData); - WSABUF Buffer; - Buffer.buf = (char*)pRequest; - Buffer.len = (int)dwRequestLen; - DWORD dwWritten = 0; - Write(&Buffer, 1, &dwWritten); - if (m_pNavData->pfnSendStatusCallback) - m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend); - return dwWritten; -} - -// The entity body will be retrieved from the client by calling their -// callback function. -template -inline DWORD CAtlHttpClientT::WriteWithCallback(LPCSTR pRequest, DWORD dwRequestLen) -{ - ATLASSUME(m_pNavData); - if (!(m_pNavData->pfnChunkCallback && - (m_pNavData->dwFlags & ATL_HTTP_FLAG_SEND_CALLBACK))) - return 0; // error, must have flag set and callback function - - // write the request - DWORD dwTotalWritten = 0; - WSABUF Buffer; - Buffer.buf = (char*)pRequest; - Buffer.len = (int)dwRequestLen; - DWORD dwWritten = 0; - Write(&Buffer, 1, &dwWritten); - if (m_pNavData->pfnSendStatusCallback) - if (!m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend)) - return 0; - if (!dwWritten) - return 0; // failure - dwTotalWritten += dwWritten; - - // start writing data; - while (m_pNavData->pfnChunkCallback((BYTE**)&Buffer.buf, (DWORD*)&Buffer.len, m_pNavData->m_lParamChunkCB) && - Buffer.len > 0 && - Buffer.buf != NULL) - { - Write(&Buffer, 1, &dwWritten); - if (dwWritten != Buffer.len) - return 0; - if (m_pNavData->pfnSendStatusCallback) - if (!m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend)) - return 0; - dwTotalWritten += dwWritten; - } - return dwTotalWritten; -} - -template -inline DWORD CAtlHttpClientT::WriteWithChunks(LPCSTR pRequest, DWORD dwRequestLen) -{ - ATLASSUME(m_pNavData); - if (!(m_pNavData->dwSendBlockSize > 0 && (m_pNavData->dwFlags & ATL_HTTP_FLAG_SEND_BLOCKS))) - return 0; // error, must have flag set and callback function - - // write the request - DWORD dwTotalWritten = 0; - WSABUF Buffer; - Buffer.buf = (char*)pRequest; - Buffer.len = (int)dwRequestLen; - DWORD dwWritten = 0; - Write(&Buffer, 1, &dwWritten); - if (m_pNavData->pfnSendStatusCallback) - if (!m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend)) - return 0; - if (!dwWritten) - return 0; // failure - dwTotalWritten += dwWritten; - - // start writing data; - DWORD dwDataWritten = 0; - DWORD dwDataLeft = m_pNavData->dwDataLen; - while (dwDataLeft) - { - Buffer.buf = (char*)(m_pNavData->pData + dwDataWritten); - Buffer.len = __min(dwDataLeft, m_pNavData->dwSendBlockSize); - Write(&Buffer, 1, &dwWritten); - if (dwWritten != Buffer.len) - return 0; - if (m_pNavData->pfnSendStatusCallback) - if (!m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend)) - return false; - dwTotalWritten += dwWritten; - dwDataWritten += dwWritten; - dwDataLeft -= dwWritten; - } - return dwTotalWritten; -} - -template -inline DWORD CAtlHttpClientT::WriteWithData(LPCSTR pRequest, DWORD dwRequestLen) -{ - WSABUF Buffers[2]; - Buffers[0].buf = (char*)pRequest; - Buffers[0].len = dwRequestLen; - Buffers[1].buf = (char*)m_pNavData->pData; - Buffers[1].len = m_pNavData->dwDataLen; - - DWORD dwWritten = 0; - Write(Buffers, 2, &dwWritten); - if (m_pNavData->pfnSendStatusCallback) - m_pNavData->pfnSendStatusCallback(dwWritten, m_pNavData->m_lParamSend); - - return dwWritten; -} - -template -bool CAtlHttpClientT::NavigateChunked( - LPCTSTR szServer, - LPCTSTR szPath, - ATL_NAVIGATE_DATA *pNavData - ) throw() -{ - // Create a URL - if (!szServer || *szServer == _T('\0')) - return false; - if (!szPath || *szPath == _T('\0')) - return false; - - if (!pNavData) - { - // To do chunked navigation you must specify an - // ATL_NAVIGATE_DATA structure that has the pfnChunkCallback - // member filled out. - ATLASSERT(FALSE); - return false; - } - CUrl url; - url.SetScheme(ATL_URL_SCHEME_HTTP); - url.SetHostName(szServer); - url.SetUrlPath(szPath); - if (pNavData) - url.SetPortNumber(pNavData->nPort); - else - url.SetPortNumber(ATL_URL_DEFAULT_HTTP_PORT); - - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH]; - DWORD dwMaxLen = ATL_URL_MAX_URL_LENGTH; - if (!url.CreateUrl(szUrl, &dwMaxLen)) - return false; - - // Navigate - return NavigateChunked(szUrl, pNavData); -} - -template -bool CAtlHttpClientT::NavigateChunked( - LPCTSTR szURL, - ATL_NAVIGATE_DATA *pNavData - ) throw() -{ - if (!szURL || *szURL == _T('\0')) - return false; - - ResetRequest(); - - ATLASSERT(pNavData); - - CUrl url; - if (!url.CrackUrl(szURL)) - return false; - - // Navigate - return NavigateChunked(&url, pNavData); -} - -template -inline bool CAtlHttpClientT::NavigateChunked( - const CUrl *pUrl, - ATL_NAVIGATE_DATA *pNavData - ) throw() -{ - if (!pUrl) - return false; - - if (!pNavData) - { - // To do chunked navigation you must specify an - // ATL_NAVIGATE_DATA structure that has the pfnChunkCallback - // member filled out. - ATLASSERT(FALSE); - return false; - } - - m_pNavData = pNavData; - if (!pNavData->pfnChunkCallback) - return false; - - bool bRet = true; - - _ATLTRY - { - m_strMethod = m_pNavData->szMethod; - } - _ATLCATCHALL() - { - return false; - } - - SetSocketTimeout(m_pNavData->dwTimeout); - - // set m_urlCurrent - if (!SetDefaultUrl(pUrl, m_pNavData->nPort)) - return false; - - - DWORD dwSent = 0; - CString strRequest; - CString strExtraInfo; - - if (!BuildRequest(&strRequest, - m_pNavData->szMethod, - m_pNavData->szExtraHeaders // extra headers - )) - { - return false; - } - - if (!ConnectSocket()) - return false; - - WSABUF Buffers[3]; - - _ATLTRY - { - CT2A pRequest(strRequest); - - Buffers[0].buf = (char*)pRequest; - Buffers[0].len = strRequest.GetLength(); - - // send the first buffer which is the request - if (!Write(Buffers, 1, &dwSent)) - { - Close(); - return false; - } - } - _ATLCATCHALL() - { - Close(); - return false; - } - Buffers[0].buf = NULL; - Buffers[0].len = 0; - - CStringA strChunkSize; - - Buffers[2].buf = "\r\n"; - Buffers[2].len = 2; - int z = 0; - - // start sending the chunks - do - { - z++; - Buffers[1].buf = NULL; - Buffers[1].len = 0; - if (m_pNavData->pfnChunkCallback((BYTE**)&Buffers[1].buf, &Buffers[1].len, - m_pNavData->m_lParamChunkCB)) - { - _ATLTRY - { - if (Buffers[1].len > 0) - { - // send the chunk - strChunkSize.Format("%x\r\n", Buffers[1].len); - Buffers[0].buf = (char*)(LPCSTR)strChunkSize; - Buffers[0].len = strChunkSize.GetLength(); - if (!Write(Buffers, 3, &dwSent)) - { - bRet = false; - break; - } - } - else if (Buffers[1].len == 0) - { - strChunkSize = "0\r\n\r\n\r\n"; - Buffers[0].buf = (char*)(LPCSTR)strChunkSize; - Buffers[0].len = strChunkSize.GetLength(); - if (!Write(Buffers, 1, &dwSent)) - { - bRet = false; - break; - } - break; - } - } - _ATLCATCHALL() - { - bRet = false; - break; - } - } - else - { - bRet = false; - break; // something went wrong in callback - } - }while (Buffers[1].len > 0); - - strRequest.ReleaseBuffer(); - - if (bRet) - { - // Read the response - if (RR_OK == ReadHttpResponse()) - { - // if navigation isn't complete, try to complete - // it based on the status code and flags - if ((m_pNavData->dwFlags & ATL_HTTP_FLAG_PROCESS_RESULT) - && !ProcessStatus(m_pNavData->dwFlags)) - { - bRet = false; - } - bRet = true; - } - else - bRet = false; - } - - if (!bRet) - Close(); - - return bRet; -} - -template -inline bool CAtlHttpClientT::ConnectSocket() throw() -{ - bool bRet=false; - // connect to the correct server - if (GetProxy()) - { - //if we're using a proxy connect to the proxy - bRet=Connect(m_strProxy, m_nProxyPort); - } - else - { - bRet=Connect(m_urlCurrent.GetHostName(),m_urlCurrent.GetPortNumber()); // connect to the server - } - return bRet; -} - - -template -inline bool CAtlHttpClientT::BuildRequest(/*out*/CString *pstrRequest, - LPCTSTR szMethod, - LPCTSTR szExtraHeaders) throw() -{ - if (!m_pNavData) - return false; - _ATLTRY - { - // build up the request - CString strRequest = szMethod; - strRequest += _T(" "); - if (GetProxy()) - { - TCHAR buffURL[ATL_URL_MAX_URL_LENGTH]; - DWORD dwSize = ATL_URL_MAX_URL_LENGTH; - m_urlCurrent.CreateUrl(buffURL, &dwSize); - strRequest += buffURL; - - strRequest += ATL_HTTP_HEADER_PROXY; - CString strHost; - if (m_urlCurrent.GetPortNumber() != ATL_URL_DEFAULT_HTTP_PORT) - strHost.Format(_T("Host: %s:%d\r\n"), m_urlCurrent.GetHostName(), m_urlCurrent.GetPortNumber()); - else - strHost.Format(_T("Host: %s\r\n"), m_urlCurrent.GetHostName()); - strRequest += strHost; - - if (m_pNavData->dwDataLen>0) - { - CString strCL; - strCL.Format(_T("Content-Length: %d\r\n"), m_pNavData->dwDataLen); - strRequest += strCL; - } - - if (m_pNavData->szDataType) - { - strRequest += _T("Content-Type: "); - strRequest += m_pNavData->szDataType; - strRequest += _T("\r\n"); - } - - if (m_pNavData->szExtraHeaders) - strRequest += szExtraHeaders; - strRequest += ATL_HTTP_USERAGENT; - } - else - { - strRequest += m_urlCurrent.GetUrlPath(); - strRequest += m_urlCurrent.GetExtraInfo(); - strRequest += ATL_HTTP_HEADER; - - if (m_pNavData->dwDataLen > 0) - { - CString strCL; - strCL.Format(_T("Content-Length: %d\r\n"), m_pNavData->dwDataLen); - strRequest += strCL; - } - - if (m_pNavData->szDataType && - *m_pNavData->szDataType) - { - strRequest += _T("Content-Type: "); - strRequest += m_pNavData->szDataType; - strRequest += _T("\r\n"); - } - - if (szExtraHeaders) - strRequest += szExtraHeaders; - - - CString strHost; - strHost.Format(_T("Host: %s\r\n"), m_urlCurrent.GetHostName()); - strRequest += strHost; - strRequest += ATL_HTTP_USERAGENT; - } - strRequest += _T("\r\n"); - - - *pstrRequest = strRequest; - return true; - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline bool CAtlHttpClientT::ReadSocket() throw() -{ - bool bRet = false; - unsigned char read_buff[ATL_READ_BUFF_SIZE]; - int dwSize = ATL_READ_BUFF_SIZE; - - // read some data - for (int i = 0; i < ATL_HTTP_CLIENT_EMPTY_READ_RETRIES; ++i) - { - bRet = Read(read_buff, (DWORD*)&dwSize); - if (!bRet) - return bRet; - - // notify user - if (m_pNavData) - { - if (m_pNavData->pfnReadStatusCallback) - bRet = m_pNavData->pfnReadStatusCallback(dwSize, m_pNavData->m_lParamRead); - if (!bRet) - return bRet; - } - - if (dwSize > 0) - { - // append the data to our internal buffer - // m_current holds bytes (not UNICODE!) - - if (!m_current.Append((LPCSTR)read_buff, dwSize)) - return FALSE; - - m_pEnd = ((BYTE*)(LPCSTR)m_current) + m_current.GetLength(); - m_pCurrent = (BYTE*)(LPCSTR)m_current; - break; - } - bRet = false; // nothing was read - } - - return bRet; -} - -// Starts searching for a complete header set at -// m_pCurrent. This function will only move m_pCurrent -// if a complete set is found. Returns the header beginning -// optionally. -template -inline unsigned char* CAtlHttpClientT::FindHeaderEnd(unsigned char** ppBegin) throw() -{ - if (!m_pCurrent) - return NULL; - - BYTE *pCurr = m_pCurrent; - BYTE *pBegin = m_pCurrent; - int nLen = m_current.GetLength(); - - if (pCurr >= (BYTE*)(LPCSTR)m_current + m_current.GetLength()) - return NULL; // no more chars in buffer - // look for the end of the header (the \r\n\r\n) - while (pCurr <= (pBegin + nLen - ATL_HEADER_END_LEN)) - { - - if (* ((UNALIGNED DWORD*)pCurr)==ATL_DW_HEADER_END) - { - // set m_pCurrent pointer to the end of the header - m_pCurrent = pCurr + ATL_HEADER_END_LEN; - if (ppBegin) - *ppBegin = pBegin; - return m_pCurrent; - } - pCurr++; - } - return NULL; -} - -// Call this function after sending an HTTP request over the socket. The complete -// HTTP response will be read. This function will also parse -// response headers into the response header map. -template -inline typename CAtlHttpClientT::HTTP_RESPONSE_READ_STATUS CAtlHttpClientT::ReadHttpResponse() -{ - // Read until we at least have the response headers - HTTP_RESPONSE_READ_STATUS result = RR_OK; - readstate state = rs_init; - unsigned char *pBodyBegin = NULL; - unsigned char *pHeaderBegin = NULL; - m_current.Empty(); - m_pCurrent = NULL; - m_LastResponseParseError = RR_OK; - - while (state != rs_complete) - { - switch(state) - { - case rs_init: - m_HeaderMap.RemoveAll(); - m_nStatus = ATL_INVALID_STATUS; - m_dwHeaderLen = 0; - m_dwBodyLen = 0; - state = rs_readheader; - // fall through - - case rs_readheader: - - // read from the socket until we have a complete set of headers. - pBodyBegin = FindHeaderEnd(&pHeaderBegin); - if (!pBodyBegin) - { - if (!ReadSocket()) - { - // Either reading from the socket failed, or there - // was not data to read. Set the nav status to error - // and change the state to complete. - state = rs_complete; - result = RR_READSOCKET_FAILED; - break; - } - else - break; // loop back and FindHeaderEnd again. - } - // we have a complete set of headers - m_dwHeaderLen = (DWORD)(pBodyBegin-pHeaderBegin); - m_dwHeaderStart = (DWORD)(pHeaderBegin - (BYTE*)(LPCSTR)m_current); - // fall through - state = rs_scanheader; - - case rs_scanheader: - // set m_nStatus and check for valid status - ParseStatusLine(pHeaderBegin); - // failed to set m_nStatus; - if (m_nStatus == ATL_INVALID_STATUS) - { - state = rs_complete; - result = RR_STATUS_INVALID; - break; - } - - else if (m_nStatus == 100) // continue - { - state = rs_init; - break; - } - - // crack all the headers and put them into a header map. We've already - // done the check to make sure we have a complete set of headers in - // rs_readheader above - if (ATL_HEADER_PARSE_COMPLETE != CrackResponseHeader((LPCSTR)pHeaderBegin, - (LPCSTR*)&pBodyBegin)) - { - // something bad happened while parsing the headers! - state = rs_complete; - result = RR_PARSEHEADERS_FAILED; - break; - } - state = rs_readbody; - // fall through - - case rs_readbody: - // headers are parsed and cracked, we're ready to read the rest - // of the response. - if (IsMsgBodyChunked()) - { - if (!ReadChunkedBody()) - { - result = RR_READCHUNKEDBODY_FAILED; - state = rs_complete; - break; - } - } - else - if (!ReadBody(GetContentLength(), m_current.GetLength()-(m_dwHeaderStart+m_dwHeaderLen))) - result = RR_READBODY_FAILED; - state = rs_complete; - //fall through - - case rs_complete: - // clean up the connection if the server requested a close; - DisconnectIfRequired(); - break; - } - } - m_LastResponseParseError = result; - return result; -} - -template -inline typename CAtlHttpClientT::HTTP_RESPONSE_READ_STATUS CAtlHttpClientT::GetResponseStatus() -{ - return m_LastResponseParseError; -} - -// Checks to see if the server has closed the connection. -// If it has, we create a new socket and reconnect it to -// the current server. This also clears the contents of the -// current response buffer. -template -inline void CAtlHttpClientT::ResetConnection() throw() -{ - ReconnectIfRequired(); - m_HeaderMap.RemoveAll(); - m_current.Empty(); - m_nStatus = ATL_INVALID_STATUS; - m_AuthTypes.RemoveAll(); // the server will keep sending back www-authenticate - // headers until the connection is authorized -} - -// Takes action based on the flags passed and the current -// status for this object. -template -inline bool CAtlHttpClientT::ProcessStatus(DWORD dwFlags) throw() -{ - switch(m_nStatus) - { - case 200: // In all these cases there is no further action - case 201: // to take. Any additional informaion is returned - case 202: // in the entity body. - case 203: - case 204: - case 205: - case 206: - case 304: - case 305: - return true; - break; - case 301: - case 302: - case 303: - if (dwFlags & ATL_HTTP_FLAG_AUTO_REDIRECT) - return ProcessObjectMoved(); - break; - case 401: // auth required - return NegotiateAuth(false); - break; - case 407: // proxy auth required - return NegotiateAuth(true); - break; - - } - return false; -} - -// Looks up the value of a response header in the header map. Call with -// NULL szBuffer to have length of the required buffer placed in -// pdwLen on output. - -// szName is the name of the header to look up. -// szBuffer is the buffer that will contain the looked up string. -// pdwLen contains the length of szBuffer in characters on input and the length -// of the string including NULL terminator in characters on output. -template -inline bool CAtlHttpClientT::GetHeaderValue(LPCTSTR szName, CString& strValue) const throw() -{ - _ATLTRY - { - return m_HeaderMap.Lookup(szName, strValue); - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline bool CAtlHttpClientT::GetHeaderValue(__in_z LPCTSTR szName, __out_ecount_part_z_opt(*pdwLen, *pdwLen) LPTSTR szBuffer, __inout DWORD *pdwLen) const throw() -{ - CString strValue; - bool bRet = GetHeaderValue(szName, strValue); - DWORD nLen = strValue.GetLength(); - if (!bRet) - return false; - - if ((pdwLen && *pdwLen < nLen+1) || - (!szBuffer && pdwLen) ) - { - *pdwLen = nLen+1; - return true; - } - - if (!szBuffer) - return false; - - Checked::tcsncpy_s(szBuffer, nLen+1, (LPCTSTR)strValue, _TRUNCATE); - if (pdwLen) - *pdwLen = nLen+1; - return true; -} - -// Adds an authorization object to use for a particular scheme. -// This will overwrite an existing entry if an object for the -// same scheme has already been set. -template -inline bool CAtlHttpClientT::AddAuthObj(LPCTSTR szScheme, - CAtlBaseAuthObject *pObject, IAuthInfo *pInfo/*=NULL*/) throw() -{ - if (!pObject) - return false; - - pObject->Init(this, pInfo); - - _ATLTRY - { - POSITION pos = m_AuthMap.SetAt(szScheme, pObject); - if (!pos) - return false; - } - _ATLCATCHALL() - { - return false; - } - - return true; -} - -// Tries to find an authorization object to use for a particular -// scheme -template -inline const CAtlBaseAuthObject* CAtlHttpClientT::FindAuthObject(LPCTSTR szScheme) throw() -{ - CAtlBaseAuthObject *pObject = NULL; - if (m_AuthMap.Lookup(szScheme, pObject)) - { - return const_cast(pObject); - } - return NULL; -} - -// Removes an existing authorization object from the map. -template -inline bool CAtlHttpClientT::RemoveAuthObject(LPCTSTR szScheme) throw() -{ - return m_AuthMap.RemoveKey(szScheme); -} - -// Sets the current proxy server and port -template -inline bool CAtlHttpClientT::SetProxy(LPCTSTR szProxy, short nProxyPort) throw() -{ - if (!szProxy) - { - if (!LookupRegProxy()) - return false; - } - else - { - _ATLTRY - { - m_strProxy = szProxy; - m_nProxyPort = nProxyPort; - } - _ATLCATCHALL() - { - return false; - } - } - return true; -} - -// Removes the current proxy settings. -template -inline void CAtlHttpClientT::RemoveProxy() throw() -{ - m_strProxy.Empty(); - m_nProxyPort = ATL_URL_INVALID_PORT_NUMBER; -} - -// retrieves the current proxy -template -inline LPCTSTR CAtlHttpClientT::GetProxy() const throw() -{ - if (m_strProxy.GetLength()) - return (LPCTSTR)m_strProxy; - return NULL; -} - -template -inline short CAtlHttpClientT::GetProxyPort() const throw() -{ - return m_nProxyPort; -} - -// Gets the contents of the entire response buffer. -template -inline const BYTE* CAtlHttpClientT::GetResponse() throw() -{ - return (const BYTE*)(LPCSTR)m_current; -} - -template -inline DWORD CAtlHttpClientT::GetResponseLength() throw() -{ - return m_current.GetLength(); -} - -// Gets the length in bytes of the body of the -// current response -template -inline DWORD CAtlHttpClientT::GetBodyLength() const throw() -{ - return m_dwBodyLen; -} - -// Gets the contents of the body of the current response. This -// is the response without the headers. -template -inline const BYTE* CAtlHttpClientT::GetBody() throw() -{ - return (BYTE*)((LPCSTR)m_current + m_dwHeaderLen + m_dwHeaderStart); -} - -// Get the length of the header part of the response in bytes. -template -inline DWORD CAtlHttpClientT::GetRawResponseHeaderLength() throw() -{ - return m_dwHeaderLen >= 2 ? m_dwHeaderLen-2 : 0; // m_dwHeaderLen includes the final \r\n -} - -// buffer must include space for null terminator. -// on input, pdwLen specifies the size of szBuffer, -// on output, pdwLen holds the number of bytes copied -// to szBuffer, or the required size of szBuffer if -// szBuffer wasn't big enough -template -inline bool CAtlHttpClientT::GetRawResponseHeader(LPBYTE szBuffer, DWORD *pdwLen) throw() -{ - if (!pdwLen) - return false; - - DWORD header_len = GetRawResponseHeaderLength(); - if (header_len == 0) - return false; - - if (!szBuffer || *pdwLen < header_len+1) - { - *pdwLen = header_len+1; - return false; - } - - Checked::memcpy_s(szBuffer, *pdwLen, (BYTE*)(LPCSTR)m_current, header_len); - szBuffer[header_len]='\0'; - - *pdwLen = header_len+1; - return true; -} - -// Gets the current URL object. -template -inline LPCURL CAtlHttpClientT::GetCurrentUrl() const throw() -{ - return (LPCURL)&m_urlCurrent; -} - -template -inline bool CAtlHttpClientT::SetDefaultUrl( LPCTSTR szUrl, - short nPortNumber) throw() -{ - return _SetDefaultUrl(szUrl,nPortNumber); -} - -template -inline bool CAtlHttpClientT::SetDefaultUrl( LPCURL pUrl, - short nPortNumber) throw() -{ - m_urlCurrent = *pUrl; - return _SetDefaultUrl(NULL, nPortNumber); -} - -template -inline bool CAtlHttpClientT::SetDefaultMethod(LPCTSTR szMethod) throw() - -{ - _ATLTRY - { - m_strMethod = szMethod; - return true; - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline DWORD CAtlHttpClientT::GetFlags() const throw() -{ - if (m_pNavData) - return m_pNavData->dwFlags; - else - return ATL_HTTP_FLAG_INVALID_FLAGS; -} - -template -inline bool CAtlHttpClientT::LookupRegProxy() throw() -{ - // attempt to look it up from the registry - CRegKey rkProxy; - ULONG nChars = ATL_URL_MAX_URL_LENGTH+1; - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH+1] = { 0 }; - - DWORD dwErr = rkProxy.Open(HKEY_CURRENT_USER, - _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), KEY_READ); - if (dwErr == ERROR_SUCCESS) - { - dwErr = rkProxy.QueryStringValue(_T("ProxyServer"), szUrl, &nChars); - } - if (dwErr == ERROR_SUCCESS) - { - CUrl url; - if (url.CrackUrl(szUrl)) - { - if (url.GetScheme()==ATL_URL_SCHEME_UNKNOWN) - { - // without the scheme name (e.g. proxy:80) - m_strProxy = url.GetSchemeName(); - m_nProxyPort = (short)_ttoi(url.GetHostName()); - return true; - } - else if (url.GetHostName()) - { - // with the scheme (e.g. http://proxy:80) - m_strProxy = url.GetHostName(); - m_nProxyPort = url.GetPortNumber(); - return true; - } - } - } - return false; -} - -template -inline bool CAtlHttpClientT::DisconnectIfRequired() throw() -{ - CString strValue; - if (GetHeaderValue(_T("Connection"), strValue) && !strValue.CompareNoCase(_T("close"))) - { - Close(); - } - - return true; -} - -class CInitializeCOMThread -{ -public: - CInitializeCOMThread() - : m_bCoInit(FALSE),m_bShouldUninit(FALSE) - { - //At this point the Thread can be uninit, init to STA or init to MTA. - //CoInitialize can always fail unexpectedly. - HRESULT hr = ::CoInitialize(NULL); - if (SUCCEEDED(hr)) - { - m_bCoInit=TRUE; - m_bShouldUninit=TRUE; - } else if (hr == RPC_E_CHANGED_MODE) - { - m_bCoInit=TRUE; - } - } - ~CInitializeCOMThread() - { - if (m_bShouldUninit) - { - ::CoUninitialize(); - } - } - BOOL IsInitialized() { return m_bCoInit; } -protected: - BOOL m_bCoInit; - BOOL m_bShouldUninit; -}; -// Tries to find an authorization object that meets -template -inline bool CAtlHttpClientT::NegotiateAuth(bool bProxy) throw() -{ - //Test if can silently pass user credentials to server. - if (!m_bSilentLogonOk) - { - //Call CoInit, because ATL Http code cannot assume it has already been called by the user. - CInitializeCOMThread initThread; - if (initThread.IsInitialized()) - { - HRESULT hr = S_OK; - CComPtr spSecurityMgr; - - hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_INPROC_SERVER, - IID_IInternetSecurityManager, (void**)&spSecurityMgr); - if (SUCCEEDED(hr)) - { - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH]; - DWORD dwMaxLen = ATL_URL_MAX_URL_LENGTH; - if (!m_urlCurrent.CreateUrl(szUrl, &dwMaxLen)) - { - return false; - } - - CStringW strUrlW(szUrl); - DWORD dwPolicy=0xFFFF; - hr=spSecurityMgr->ProcessUrlAction(strUrlW.GetString(), - URLACTION_CREDENTIALS_USE, - reinterpret_cast(&dwPolicy), - sizeof(dwPolicy), - NULL, - 0, - PUAF_NOUI, - NULL); - - if (FAILED(hr) || dwPolicy != URLPOLICY_CREDENTIALS_SILENT_LOGON_OK) - { - return false; - } - } - else - { - // CoCreateInstance failed, return false - return false; - } - } - else - { - // CoInit failed, return false - return false; - } - } - - // szAuthHeaderValue should contain a comma separated list - // of authentication types - CAtlBaseAuthObject *pAuthObj = NULL; - bool bRet = false; - for (size_t i = 0; im_bFailed) - bRet = pAuthObj->Authenticate(m_AuthTypes[i], bProxy); - - if (bRet) - return bRet; - } - _ATLCATCHALL() - { - bRet = false; - } - } - return bRet; -} - -template -inline long CAtlHttpClientT::GetContentLength() throw() -{ - CString strValue; - if (GetHeaderValue(_T("Content-Length"), strValue)) - { - TCHAR *pStop = NULL; - return _tcstol(strValue, &pStop, 10); - } - else - return -1; -} - -template -inline LPCSTR CAtlHttpClientT::NextLine(BYTE* pCurr) throw() -{ - if (!pCurr) - return NULL; - - while ( pCurr < m_pEnd && *pCurr && !(*pCurr == '\r' && *(pCurr+1) == '\n')) - pCurr++; - - if (pCurr >= m_pEnd) - return NULL; - -// if (pCurr < m_pEnd-4) -// if (!memcmp(pCurr, ATL_HEADER_END, 4)) - //return NULL; - - return (LPCSTR)(pCurr+2); -} - -template -inline bool CAtlHttpClientT::IsMsgBodyChunked() throw() -{ - CString strValue; - return ( - GetHeaderValue(_T("Transfer-Encoding"), strValue) && - !strValue.CompareNoCase(_T("chunked")) - ); - -} - -// finds the end of an individual header field pointed to by -// pszStart. Header fields can be multi-line with multi-line -// header fields being a line that starts with some kind of -// white space. -template -inline LPCSTR CAtlHttpClientT::FindEndOfHeader(LPCSTR pszStart) throw() -{ - // move through all the lines until we come to one - // that doesn't start with white space - LPCSTR pLineStart = pszStart; - LPCSTR pHeaderEnd = NULL; - - do - { - pLineStart = NextLine((BYTE*)pLineStart); - }while (pLineStart && isspace(static_cast(*pLineStart)) && strncmp(pLineStart-2, ATL_HEADER_END, ATL_HEADER_END_LEN)); - - if (pLineStart > (LPCSTR)m_pEnd) - return NULL; // ran out of data in the buffer without finding the end of a line - // or the end of the headers. - - if (pLineStart) - pHeaderEnd = pLineStart-2; - else - pHeaderEnd = NULL; - - return pHeaderEnd; -} - -template -inline bool CAtlHttpClientT::DecodeHeader(LPCSTR pHeaderStart, LPCSTR pHeaderEnd) throw() -{ - _ATLTRY - { - if (!pHeaderStart || !pHeaderEnd) - return false; - LPCSTR pTemp = pHeaderStart; - while (*pTemp != ATL_FIELDNAME_DELIMITER && pTemp < pHeaderEnd) - pTemp++; - if (*pTemp == ATL_FIELDNAME_DELIMITER) - { - char szName[ATL_MAX_FIELDNAME_LEN]; - char szValue[ATL_MAX_VALUE_LEN]; - int nLen = (int)(pTemp-pHeaderStart) ; - ATLASSERT(nLen < ATL_MAX_FIELDNAME_LEN); - if (nLen >= ATL_MAX_FIELDNAME_LEN) - return false; // won't fit in the buffer. - Checked::memcpy_s(szName, ATL_MAX_FIELDNAME_LEN, pHeaderStart, nLen); - szName[nLen]=0; - - pTemp++; // move past delimiter; - while (isspace(static_cast(*pTemp)) && pTemp < pHeaderEnd) - pTemp++; - - nLen = (int)(pHeaderEnd-pTemp); - ATLASSERT(nLen < ATL_MAX_VALUE_LEN); - if (nLen >= ATL_MAX_VALUE_LEN) - return false; // won't fit in the buffer - Checked::memcpy_s(szValue, ATL_MAX_VALUE_LEN, pTemp, nLen); - szValue[nLen]=0; - - CString strExist; - CA2T pszName(szName); - CA2T pszValue(szValue); - - if (!_tcsicmp(pszName, _T("www-authenticate")) || - !_tcsicmp(pszName, _T("proxy-authenticate"))) - { - m_AuthTypes.Add(pszValue); - } - - if (!m_HeaderMap.Lookup(pszName, strExist)) - m_HeaderMap.SetAt(pszName, pszValue); - else - { - // field-values for headers with the same name can be appended - // per rfc2068 4.2, we do the appending so we don't have to - // store/lookup duplicate keys. - strExist += ','; - strExist += pszValue; - m_HeaderMap.SetAt(pszName, (LPCTSTR)strExist); - } - - // if it's a set-cookie header notify users so they can do - // somthing with it. - if (!_tcsicmp(pszName, _T("set-cookie"))) - OnSetCookie(pszValue); - } - - return true; - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline void CAtlHttpClientT::OnSetCookie(LPCTSTR) throw() -{ - return; -} - -template -inline LPCSTR CAtlHttpClientT::ParseStatusLine(BYTE* pBuffer) throw() -{ - if (!pBuffer) - return NULL; - if (m_pEnd <= pBuffer) - return NULL; - - // find the first space' - while (pBuffer < m_pEnd && !isspace(static_cast(*pBuffer))) - pBuffer++; - - if (pBuffer >= m_pEnd) - return NULL; - - // move past the space - while (pBuffer < m_pEnd && isspace(static_cast(*pBuffer))) - pBuffer++; - - if (pBuffer >= m_pEnd) - return NULL; - - // pBuffer better be pointing at the status code now - LPCSTR pEnd = NULL; - if (*pBuffer >= '0' && *pBuffer <= '9') - { - // probably a good status code - errno_t errnoValue = AtlStrToNum(&m_nStatus, (LPSTR)pBuffer, (LPSTR*)&pEnd, 10); - if (errnoValue == ERANGE) - return NULL; // bad status code - } - else - return FALSE; // bad status code; - - if (!pEnd) - return FALSE; // bad status code; - - pBuffer = (BYTE*)pEnd; - // move to end of line - while (pBuffer < m_pEnd && *pBuffer != '\n') - pBuffer++; - - if (pBuffer >= m_pEnd) - return NULL; - - // set the return pointing to the first - // character after our status line. - return (LPCSTR)++pBuffer; -} - - -// pBuffer should start at the first character -// after the status line. -template -inline int CAtlHttpClientT::CrackResponseHeader(LPCSTR pBuffer, /*out*/ LPCSTR *pEnd) throw() -{ - // read up to the double /r/n - LPCSTR pszStartSearch = pBuffer; - if (!pEnd) - return ATL_HEADER_PARSE_HEADERERROR; - - *pEnd = NULL; - if (pszStartSearch == NULL) - return ATL_HEADER_PARSE_HEADERERROR; - - // start parsing headers - LPCSTR pHeaderStart = ParseStatusLine((BYTE*)pBuffer); - if (!pHeaderStart) - return ATL_HEADER_PARSE_HEADERERROR; - LPCSTR pHeaderEnd = NULL; - - while (pHeaderStart && *pHeaderStart && pHeaderStart < (LPCSTR)m_pEnd) - { - pHeaderEnd = FindEndOfHeader(pHeaderStart); - if (!pHeaderEnd) - break; // error - - DecodeHeader(pHeaderStart, pHeaderEnd); - - if (!strncmp(pHeaderEnd, ATL_HEADER_END, strlen(ATL_HEADER_END))) - { - *pEnd = pHeaderEnd + strlen(ATL_HEADER_END); - break; // we're done - } - else - pHeaderStart = pHeaderEnd+2; - } - - return ATL_HEADER_PARSE_COMPLETE; -} - -// Reads the body if the encoding is not chunked. -template -inline bool CAtlHttpClientT::ReadBody(int nContentLen, int nCurrentBodyLen) throw() -{ - // nCurrentBodyLen is the length of the body that has already been read - // nContentLen is the value of Content-Length - // current is the buffer that will contain the entire response - bool bRet = true; - ATLASSUME(m_pNavData); - if (!m_pNavData) - return false; - - CTempBuffer readbuff; - DWORD dwReadBuffSize = 0; - DWORD dwRead = 0; - if (m_pNavData->dwReadBlockSize) - { - ATLTRY(readbuff.Allocate(m_pNavData->dwReadBlockSize)); - dwReadBuffSize = m_pNavData->dwReadBlockSize; - } - else - { - ATLTRY(readbuff.Allocate(ATL_READ_BUFF_SIZE)); - dwReadBuffSize = ATL_READ_BUFF_SIZE; - } - - if (readbuff.operator BYTE*() == NULL) - return false; - - if (nContentLen != -1) // We know the content length. - { - // read the rest of the body. - while (nCurrentBodyLen < nContentLen) - { - dwRead = dwReadBuffSize; - // loop while dwRead == 0 - for (int nRetry = 0; nRetry < ATL_HTTP_CLIENT_EMPTY_READ_RETRIES; ++nRetry) - { - if (!Read(readbuff, &dwRead)) - return false; - - // notify user - if (m_pNavData) - { - if (m_pNavData->pfnReadStatusCallback) - if (!m_pNavData->pfnReadStatusCallback(dwRead, m_pNavData->m_lParamRead)) - return false; - } - - if (dwRead == 0) - continue; - nCurrentBodyLen += dwRead; - if (!m_current.Append((LPCSTR)(BYTE*)readbuff, dwRead)) - { - ATLASSERT(0); - return false; // error! - } - m_pEnd = ((BYTE*)(LPCSTR)m_current) + m_current.GetLength(); - break; - } - if (dwRead == 0) - return false; - } - m_dwBodyLen = nCurrentBodyLen; - } - else // We don't know content length. All we can do is - { // read until there is nothing else to read. - int nRetries = 0; - while (1) - { - dwRead = dwReadBuffSize; - if (Read((BYTE*)readbuff, (DWORD*)&dwRead)) - { - // notify user - if (m_pNavData) - { - if (m_pNavData->pfnReadStatusCallback) - bRet = m_pNavData->pfnReadStatusCallback(dwRead, m_pNavData->m_lParamRead); - if (!bRet) - return bRet; - } - - if (dwRead == 0) - { - if (nRetries++ < ATL_HTTP_CLIENT_EMPTY_READ_RETRIES) - continue; - break; - } - - nRetries = 0; - nCurrentBodyLen += dwRead; - if (!m_current.Append((LPCSTR)(BYTE*)readbuff, dwRead)) - return false; - m_pEnd = ((BYTE*)(LPCSTR)m_current) + m_current.GetLength(); - } - else - { - // notify user - if (m_pNavData) - { - if (m_pNavData->pfnReadStatusCallback) - bRet = m_pNavData->pfnReadStatusCallback(dwRead, m_pNavData->m_lParamRead); - if (!bRet) - return bRet; - } - - bRet = true; - break; - } - } - m_dwBodyLen = nCurrentBodyLen; - } - return bRet; -} - - -// This function moves pBuffStart only on success. On success, pBuffStart is moved -// to the element past the last element we consumed. -template -inline typename CAtlHttpClientT::CHUNK_LEX_RESULT CAtlHttpClientT::get_chunked_size(char *&pBuffStart, char *&pBuffEnd, long* pnChunkSize) throw() -{ - CHUNK_LEX_RESULT result = LEX_ERROR; - char *pStop = NULL; - - if (pBuffStart >= pBuffEnd) - result = LEX_OUTOFDATA; - else - { - long nResult = 0; - errno_t errnoValue = AtlStrToNum(&nResult, pBuffStart, &pStop, 16); - if (errnoValue != ERANGE && - nResult >= 0 && - nResult < 0xFFFFFFFF && - pStop <= pBuffEnd && - *pStop == '\r') - { - // move pBuffStart - // return chunk size - *pnChunkSize = nResult; - pBuffStart = pStop; - result = LEX_OK; - } - if (*pStop != '\r') - { - result = LEX_OUTOFDATA; // not enough data in the buffer - } - } - return result; -} - -template -inline bool CAtlHttpClientT::move_leftover_bytes( __in_ecount(nLen) char *pBufferStart, - __in int nLen, - __deref_inout_ecount(nLen) char *&pBuffStart, - __deref_inout char *& pBuffEnd) throw() -{ - bool bRet = true; - Checked::memcpy_s(pBufferStart, (pBuffEnd-pBuffStart), pBuffStart, nLen); - return bRet; -} - -template -inline typename CAtlHttpClientT::CHUNK_LEX_RESULT CAtlHttpClientT::get_chunked_data(char *&pBufferStart, - char *&pBufferEnd, - long nChunkSize, - char **ppDataStart, - long *pnDataLen) throw() -{ - CHUNK_LEX_RESULT result = LEX_ERROR; - if (pBufferStart + nChunkSize - 1 < pBufferEnd) - { - *ppDataStart = pBufferStart; - *pnDataLen = nChunkSize; - pBufferStart = pBufferStart + nChunkSize; - result = LEX_OK; - } - else if (pBufferStart + nChunkSize - 1 >= pBufferEnd) - result = LEX_OUTOFDATA; - - return result; -} - -template -inline typename CAtlHttpClientT::CHUNK_LEX_RESULT CAtlHttpClientT::consume_chunk_trailer(char *&pBufferStart, char *pBufferEnd) -{ - CHUNK_LEX_RESULT result = LEX_ERROR; - if (pBufferStart >= pBufferEnd) - return result; - - char *pHeaderEnd = NULL; - char *pTemp = pBufferStart; - // check for empty trailer, this means there are no more trailers - if ( (pTemp < pBufferEnd && *pTemp == '\r') && - (pTemp+1 < pBufferEnd && *(pTemp+1) == '\n')) - { - pBufferStart += 2; - return LEX_TRAILER_COMPLETE; - } - - while (pTemp <= pBufferEnd) - { - if ( (pTemp < pBufferEnd && *pTemp == '\r') && - (pTemp+1 < pBufferEnd && *(pTemp+1) == '\n')) - { - pHeaderEnd = pTemp; // success case - result = LEX_OK; - break; - } - pTemp++; - } - - if (result == LEX_OK) - { - DecodeHeader(pBufferStart, pHeaderEnd); - pBufferStart = pHeaderEnd + 2; - } - else if (result != LEX_OK && - pTemp > pBufferEnd) - result = LEX_OUTOFDATA; - return result; -} - -template -inline typename CAtlHttpClientT::CHUNK_LEX_RESULT CAtlHttpClientT::consume_chunk_footer(char *&pBufferStart, char *&pBufferEnd) -{ - CHUNK_LEX_RESULT result = LEX_ERROR; - if (pBufferStart < pBufferEnd && - (pBufferStart+1) <= pBufferEnd) - { - if ( *pBufferStart == '\r' && - *(pBufferStart+1) == '\n') - { - pBufferStart += 2; - result = LEX_OK; - } - } - else - result = LEX_OUTOFDATA; - return result; -} - -#define CHUNK_BUFF_SIZE 2048 - -template -inline bool CAtlHttpClientT::ReadChunkedBody() throw() -{ - // At this point, m_current contains the headers, up to and including the \r\n\r\n, - // plus any additional data that might have been read off the socket. So, we need - // to copy off the additional data into our read buffer before we start parsing the - // chunks. -#ifdef _DEBUG - // nReadCount, keeps track of how many socket reads we do. - int nReadCount = 0; -#endif - - // nChunkBuffCarryOver - // When we run out of data in the input buffer, this is the - // count of bytes that are left in the input that could not - // be lexed into anything useful. We copy this many bytes to - // the top of the input buffer before we fill the input buffer - // with more bytes from the socket - long nChunkBuffCarryOver = 0; - - // nChunkSize - // The size of the next chunk to be read from the input buffer. - long nChunkSize = 0; - - // t_chunk_buffer - // The heap allocated buffer that we holds data - // read from the socket. We will increase the size - // of this buffer to 2 times the max chunk size we - // need to read if we have to. - CHeapPtr t_chunk_buffer; - - // nTChunkBuffSize - // Keeps track of the allocated size of t_chunk_buffer. - // This size will change if we need to read chunks bigger - // than the currently allocated size of t_chunk_buffer. - long nTChunkBuffSize = CHUNK_BUFF_SIZE; - - // chunk_buffer & chunk_buffer_end - // Keeps track of the current location - // in t_chunk_buffer that we are lexing input from. - // chunk_buffer_end is the end of the input buffer we - // are lexing from. chunk_buffer_end is used as a marker - // to make sure we don't read past the end of our input buffer - char *chunk_buffer, *chunk_buffer_end; - - // cstate - // The current state of the chunk parsing state machine. We - // start out reading the size of the first chunk. - CHUNK_STATE cstate = READ_CHUNK_SIZE; - - // cresult - // Holds the value of the result of a lexing operation performed - // on the input buffer. - CHUNK_LEX_RESULT cresult = LEX_OK; - - CAtlIsapiBuffer<> result_buffer; - - // Initialize pointers and allocate the chunk buffer. - chunk_buffer = chunk_buffer_end = NULL; - if( !t_chunk_buffer.Allocate(nTChunkBuffSize) ) - return false; - - // copy the headers into a temporary buffer. - result_buffer.Append(m_current + m_dwHeaderStart, m_dwHeaderLen); - - // calculate number of bytes left in m_current past the headers - long leftover_in_m_current = m_current.GetLength() - (m_dwHeaderStart + m_dwHeaderLen); - - // copy the extra bytes that might have been read into m_current into the chunk buffer - if (leftover_in_m_current > 0) - { - if (leftover_in_m_current > nTChunkBuffSize) - { - if( ! t_chunk_buffer.Reallocate(leftover_in_m_current) ) - return false; - } - - chunk_buffer = (char*)t_chunk_buffer; - Checked::memcpy_s(chunk_buffer, leftover_in_m_current, ((LPCSTR)m_current)+ m_dwHeaderStart + m_dwHeaderLen, leftover_in_m_current); - chunk_buffer_end = chunk_buffer + leftover_in_m_current; - } - - m_current.Empty(); - m_dwBodyLen = 0; - m_dwHeaderStart = 0; - - // as we start the state machine, we should be either pointing at the first - // byte of chunked response or nothing, in which case we will need to get - // more data from the socket. - nChunkSize = 0; - - bool bDone = false; - - while(!bDone) - { - // if we run out of data during processing, chunk_buffer - // get set to null - if (!chunk_buffer || - chunk_buffer >= chunk_buffer_end) - { - // we ran out of data in our input buffer, we need - // to read more from the socket. - DWORD dwReadBuffSize = nTChunkBuffSize - nChunkBuffCarryOver; - chunk_buffer = t_chunk_buffer; - if (!Read((const unsigned char*)(chunk_buffer+nChunkBuffCarryOver), &dwReadBuffSize)) - { - ATLTRACE("ReadChunkedBody: Error reading from socket (%d)\n", GetLastError()); - return false; - } - else if(dwReadBuffSize == 0) - { - ATLTRACE("ReadChunkedBody: The socket read timed out and no bytes were read from the socket.\n"); - return false; - } -#ifdef _DEBUG - ATLTRACE("ReadChunkedBody read %d bytes from socket. Reads %d \n", dwReadBuffSize, ++nReadCount); -#endif - chunk_buffer_end = chunk_buffer + nChunkBuffCarryOver + dwReadBuffSize; - nChunkBuffCarryOver = 0; - } - - switch(cstate) - { - case READ_CHUNK_SIZE: - { - cresult = get_chunked_size(chunk_buffer, chunk_buffer_end, &nChunkSize); - switch(cresult) - { - case LEX_ERROR: - ATLTRACE("ReadChunkedBody Failed retrieving chunk size\n"); - return false; - break; - case LEX_OUTOFDATA: - nChunkBuffCarryOver = (long)(chunk_buffer_end - chunk_buffer); - if (!move_leftover_bytes((char*)t_chunk_buffer, nChunkBuffCarryOver, - chunk_buffer, chunk_buffer_end)) - { - ATLTRACE("failed to move leftover chunk data to head of buffer\n"); - return false; - } - chunk_buffer = chunk_buffer_end = NULL; - break; - case LEX_OK: - if (nChunkSize == 0) - { - cstate = CHUNK_READ_DATA_COMPLETE; - } - else if (nChunkSize + 2 > nTChunkBuffSize) - { - char *pBuffStart = (char*)t_chunk_buffer; - int nReadSoFar = (int)(chunk_buffer - pBuffStart); - int nTotal = (int)(chunk_buffer_end - pBuffStart); - if( FAILED(::ATL::AtlMultiply(&nTChunkBuffSize, nChunkSize, 2L))) - { - return false; - } - t_chunk_buffer.Reallocate(nTChunkBuffSize); - pBuffStart = (char*)t_chunk_buffer; - chunk_buffer = pBuffStart + nReadSoFar; - chunk_buffer_end = pBuffStart + nTotal; - cstate = READ_CHUNK_SIZE_FOOTER; - m_dwBodyLen += nChunkSize; - } - else - { - // everything is OK. move to next state - cstate = READ_CHUNK_SIZE_FOOTER; - m_dwBodyLen += nChunkSize; - } - break; - default: - ATLASSERT(0); - return false; - break; - } - } - break; - case READ_CHUNK_DATA: - { - char *pDataStart = NULL; - long nDataLen = 0; - cresult = LEX_OK; - cresult = get_chunked_data(chunk_buffer, chunk_buffer_end, - nChunkSize, &pDataStart, &nDataLen); - switch(cresult) - { - case LEX_ERROR: - ATLTRACE("ReadChunkedBody failed to retrieve chunk data\n"); - return false; - break; - case LEX_OUTOFDATA: - nChunkBuffCarryOver = (long)(chunk_buffer_end - chunk_buffer); - if (!move_leftover_bytes((char*)t_chunk_buffer, nChunkBuffCarryOver, - chunk_buffer, chunk_buffer_end)) - { - ATLTRACE("failed to move leftover chunk data to head of buffer\n"); - return false; - } - chunk_buffer = chunk_buffer_end = NULL; - break; - case LEX_OK: - result_buffer.Append(pDataStart, nDataLen); - cstate = READ_CHUNK_DATA_FOOTER; - break; - default: - ATLASSERT(0); - return false; - } - } - break; - case READ_CHUNK_SIZE_FOOTER: - case READ_CHUNK_DATA_FOOTER: - { - cresult = consume_chunk_footer(chunk_buffer, chunk_buffer_end); - switch(cresult) - { - case LEX_OK: - cstate = (cstate == READ_CHUNK_SIZE_FOOTER) ? READ_CHUNK_DATA : READ_CHUNK_SIZE; - break; - case LEX_ERROR: - ATLTRACE("Error consuming chunk footer!\n"); - return false; - break; - case LEX_OUTOFDATA: - nChunkBuffCarryOver = (long)(chunk_buffer_end - chunk_buffer); - if (!move_leftover_bytes((char*)t_chunk_buffer, nChunkBuffCarryOver, - chunk_buffer, chunk_buffer_end)) - { - ATLTRACE("failed to move leftover chunk data to head of buffer\n"); - return false; - } - chunk_buffer = chunk_buffer_end = NULL; - break; - default: - ATLASSERT(0); - return false; - - } - } - break; - case CHUNK_READ_DATA_COMPLETE: - { - // We read the chunk of size 0 - // consume the chunk footer. - DWORD dwLen = 0; - cresult = consume_chunk_footer(chunk_buffer, chunk_buffer_end); - if (GetHeaderValue((_T("Trailer")), NULL, &dwLen)) - { - cstate = READ_CHUNK_TRAILER; // start reading trailer headers - break; - } - else - bDone = true; - } - break; - case READ_CHUNK_TRAILER: - cresult = consume_chunk_trailer(chunk_buffer, chunk_buffer_end); - switch(cresult) - { - case LEX_OK: - cstate = READ_CHUNK_TRAILER; // keep reading - break; - case LEX_ERROR: - ATLTRACE("Error consuming chunk trailers!\n"); - return false; - break; - case LEX_OUTOFDATA: - nChunkBuffCarryOver = (long)(chunk_buffer_end - chunk_buffer); - if (!move_leftover_bytes((char*)t_chunk_buffer, nChunkBuffCarryOver, - chunk_buffer, chunk_buffer_end)) - { - ATLTRACE("failed to move leftover chunk data to head of buffer\n"); - return false; - } - chunk_buffer = chunk_buffer_end = NULL; - break; - case LEX_TRAILER_COMPLETE: - return true; - break; - default: - ATLASSERT(0); - return false; - - - - } - break; - - } - } - if (!m_current.Append((LPCSTR)result_buffer)) - return false; - - m_pEnd = ((BYTE*)(LPCSTR)m_current) + m_current.GetLength(); - - return true; -} - -template -inline bool CAtlHttpClientT::ReconnectIfRequired() throw() -{ - CString strValue; - // if we have a keep-alive header then return true - // else we have to close and re-open the connection - if (GetHeaderValue(_T("Connection"), strValue)) - { - if (!strValue.CompareNoCase(_T("keep-alive"))) - return true; // server said keep connection open. - } - else - { - return true; // there was no 'Connection' header - } - - if (!strValue.CompareNoCase(_T("close"))) - { - Close(); - ConnectSocket(); - } - return false; -} - -// Complete relative URLs and URLs -// that have a missing path. These are common with redirect headers. -// http://www.microsoft.com becomes http://www.microsoft.com/ -// localstart.asp becomes whatever our current (m_urlCurrent) -// path is plus localstart.asp -template -inline bool CAtlHttpClientT::CompleteURL(CString& strURL) throw() -{ - _ATLTRY - { - CString strUrlTemp = strURL; - strUrlTemp.Trim(); - CUrl url; - bool bErr = false; - if (url.CrackUrl(strUrlTemp)) - { - return true; // URL is already valid - } - - - // if we have a scheme and a host name but no - // path, then add the path of '/' - if (url.GetScheme() == ATL_URL_SCHEME_HTTP && - url.GetHostNameLength() > 0 && - !url.GetUrlPathLength() ) - { - url.SetUrlPath(_T("/")); - bErr = true; - } - // if we have leading / (absolute path) (ex: /Test/bbb.asp) we can concatinate it - // to it to our current URL (m_urlCurrent) scheme and host - else if (strUrlTemp[0] == _T('/')) - { - url = m_urlCurrent; - url.SetUrlPath(strUrlTemp); - bErr = true; - } - // relative path (ex: bbb.asp) - we don't have a valid url - // and the first char is not / - // Get the url from our current URL (m_urlCurrent) and add - // our relative paths - else - { - CString szPath; - url = m_urlCurrent; - - if (!url.GetUrlPathLength()) - { - szPath = _T('/'); // current URL has no path! - } - else - { - szPath = url.GetUrlPath(); - } - - // back up to the first / and insert our current url - int pos = szPath.ReverseFind(_T('/')); - if(pos == -1) - { - return false; - } - - szPath.GetBufferSetLength(pos+1); - szPath.ReleaseBuffer(); - - szPath += strURL; - url.SetUrlPath(szPath); - bErr = true; - } - if (!bErr) - { - return bErr; - } - DWORD dwLen = ATL_URL_MAX_PATH_LENGTH; - - return url.CreateUrl(strURL.GetBuffer(ATL_URL_MAX_PATH_LENGTH), - &dwLen) ? true : false; - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline bool CAtlHttpClientT::ProcessObjectMoved() throw() -{ - _ATLTRY - { - // look for a location header - CString strValue; - CString strURLNew; - if (GetHeaderValue(_T("Location"), strValue)) - { - CString strRedirectReqHeaders=m_pNavData->szExtraHeaders; - ReconnectIfRequired(); - m_HeaderMap.RemoveAll(); - m_current.Empty(); - - - // create a new URL based on what is in the - // Location header and set it as this object's - // default Url - strURLNew = strValue; - CompleteURL(strURLNew); - CString strCurrHostName = m_urlCurrent.GetHostName(); - ATL_URL_PORT nCurrPort=m_urlCurrent.GetPortNumber(); - - SetDefaultUrl((LPCTSTR)strURLNew, m_urlCurrent.GetPortNumber()); - //If redirected (new url in strURLNew) to different host (server) or port, need a new socket. - if (m_urlCurrent.GetHostName()!=strCurrHostName || m_urlCurrent.GetPortNumber()!=nCurrPort) - { - Close(); - ConnectSocket(); - } - // build up a request. - CString strRequest; - BuildRequest(&strRequest, - m_strMethod, - strRedirectReqHeaders.GetString()); - - // send the request - DWORD dwSent = strRequest.GetLength(); - DWORD dwAvailable = dwSent; - if (!Write((BYTE*)((LPCSTR)CT2A(strRequest.GetBuffer(dwAvailable))), &dwSent)) - return false; - strRequest.ReleaseBuffer(); - - if (dwSent != dwAvailable) - return false; - - // read the response - if (RR_OK == ReadHttpResponse()) - { - if (m_pNavData) - ProcessStatus(m_pNavData->dwFlags); - } - } - return true; - } - _ATLCATCHALL() - { - return false; - } -} - -template -inline bool CAtlHttpClientT::_SetDefaultUrl(LPCTSTR szURL, short nPort) throw() -{ - - if (szURL) - if (!m_urlCurrent.CrackUrl(szURL)) // re-inits the field of the CUrl first - return false; - - ATL_URL_SCHEME currScheme = m_urlCurrent.GetScheme(); - if ( currScheme != ATL_URL_SCHEME_HTTP && - !TSocketClass::SupportsScheme(currScheme) ) - return false; // only support HTTP - - if (!m_urlCurrent.GetUrlPathLength()) - { - // no path, default to / - m_urlCurrent.SetUrlPath(_T("/")); - } - - if (!m_urlCurrent.GetHostNameLength()) - { - // no server name - return false; - } - - if (m_urlCurrent.GetPortNumber() == ATL_URL_INVALID_PORT_NUMBER) - m_urlCurrent.SetPortNumber(nPort); - return true; -} - -template -inline int CAtlHttpClientT::GetStatus() throw() -{ - return m_nStatus; -} - -template -inline LPCTSTR CAtlHttpClientT::GetMethod() throw() -{ - return m_strMethod; -} - -template -inline BYTE* CAtlHttpClientT::GetPostData() throw() -{ - if (m_pNavData) - return m_pNavData->pData; - return NULL; -} - -template -inline DWORD CAtlHttpClientT::GetPostDataLen() throw() -{ - if (m_pNavData) - return m_pNavData->dwDataLen; - return 0; -} - -template -inline LPCTSTR CAtlHttpClientT::GetPostDataType() throw() -{ - if (m_pNavData) - return m_pNavData->szDataType; - return NULL; -} - -template -inline DWORD CAtlHttpClientT::GetLastError() throw() -{ - return m_dwLastError; -} - -template -inline const SOCKET& CAtlHttpClientT::GetSocket() throw() -{ - return const_cast(m_socket); -} - -template -inline void CAtlHttpClientT::Close() throw() -{ - TSocketClass::Close(); -} - -template -inline DWORD CAtlHttpClientT::SetSocketTimeout(DWORD dwNewTimeout) throw() -{ - return TSocketClass::SetSocketTimeout(dwNewTimeout); -} - -template -inline DWORD CAtlHttpClientT::GetSocketTimeout() throw() -{ - return TSocketClass::GetSocketTimeout(); -} - -template -inline void CAtlHttpClientT::AuthProtocolFailed(LPCTSTR szProto) throw() -{ - CAtlBaseAuthObject *pAuthObj = NULL; - _ATLTRY - { - if (m_AuthMap.Lookup(szProto, pAuthObj) && pAuthObj) - { - pAuthObj->m_bFailed = true; - } - } - _ATLCATCHALL() - { - } -} - -template -inline const ATL_NAVIGATE_DATA* CAtlHttpClientT::GetCurrentNavdata() -{ - return m_pNavData; -} - - -///////////////////////////////////////////////////////////////////////////////// -// -// CNTLMAuthObject -// NTLM Security Authorization functions -// -///////////////////////////////////////////////////////////////////////////////// -inline CNTLMAuthObject::CNTLMAuthObject() throw() : - m_pSocket(NULL), - m_nMaxTokenSize(0), - m_pAuthInfo(NULL), - m_bProxy(false) -{ - SecInvalidateHandle(&m_hCredentials) -} - -inline CNTLMAuthObject::CNTLMAuthObject(IAuthInfo *pAuthInfo) throw() : - m_pSocket(NULL), - m_nMaxTokenSize(0), - m_pAuthInfo(pAuthInfo) -{ - SecInvalidateHandle(&m_hCredentials) -} - -inline CNTLMAuthObject::~CNTLMAuthObject() throw() -{ - if (!ATL_IS_INVALIDCREDHANDLE(m_hCredentials)) - FreeCredentialsHandle(&m_hCredentials); -} - -inline void CNTLMAuthObject::Init(CAtlHttpClient *pSocket, IAuthInfo *pAuthInfo) throw() -{ - m_pSocket = pSocket; - SetAuthInfo(pAuthInfo); -} - -inline void CNTLMAuthObject::SetAuthInfo(IAuthInfo *pAuthInfo) throw() -{ - m_pAuthInfo = pAuthInfo; -} - -inline bool CNTLMAuthObject::Authenticate(LPCTSTR /*szAuthTypes*/, bool bProxy) throw() -{ - m_bProxy = bProxy; - if (AcquireCredHandle()) - return DoNTLMAuthenticate(); - return false; -} - -inline bool CNTLMAuthObject::AcquireCredHandle() throw() -{ - PSecPkgInfo pPackageInfo = NULL; - SECURITY_STATUS SecurityStatus = SEC_E_OK; - - // Acquire a credentials handle on the NTLM security package - SecurityStatus = QuerySecurityPackageInfo(ATL_HTTP_AUTHTYPE_NTLM, - &pPackageInfo); - - if (SecurityStatus != SEC_E_OK) - return false; - - void *pAuthData = NULL; - CSecAuthIdentity CA; - if (m_pAuthInfo) - { - // if m_pAuthInfo has been set then the caller wants us - // to get credentials from them. - if (CA.Init(m_pAuthInfo)) - pAuthData = static_cast(&CA); - } - - SecurityStatus = AcquireCredentialsHandle( - 0, - pPackageInfo->Name, - SECPKG_CRED_OUTBOUND, - 0, - pAuthData, - 0, - 0, - &m_hCredentials, - &m_ts - ); - - m_nMaxTokenSize = pPackageInfo->cbMaxToken; - FreeContextBuffer(pPackageInfo); - return SecurityStatus == SEC_E_OK ? true : false; -} - -inline bool CNTLMAuthObject::DoNTLMAuthenticate() throw() -{ - bool bRet = false; - - m_CurrentRequestData = (*(const_cast(m_pSocket->GetCurrentNavdata()))); - // make sure we have a good credentials handle - ATLASSERT(!ATL_IS_INVALIDCREDHANDLE(m_hCredentials)); - if (ATL_IS_INVALIDCREDHANDLE(m_hCredentials)) - return false; - - SECURITY_STATUS SecurityStatus = SEC_E_OK; - - unsigned long ContextAttributes = 0; - CSecBufferDesc OutBufferDesc; - CtxtHandle SecurityContext; - SecInvalidateHandle(&SecurityContext); - - // Create a SecBufferDesc with one buffer of m_nMaxTokenSize - if (!OutBufferDesc.AddBuffers(1, m_nMaxTokenSize)) - return false; - - SecurityStatus = InitializeSecurityContext( - &m_hCredentials, - 0, - NULL, - ISC_REQ_CONNECTION, - 0, - 0, - 0, - 0, - &SecurityContext, - OutBufferDesc, - &ContextAttributes, - &m_ts - ); - - if ( (SecurityStatus == SEC_I_COMPLETE_NEEDED) || - (SecurityStatus == SEC_I_COMPLETE_AND_CONTINUE) ) - { - SecurityStatus = CompleteAuthToken( &SecurityContext, (PSecBufferDesc)OutBufferDesc); - } - - if (IS_ERROR(SecurityStatus)) - return false; - - // create an Authentication header with the contents of the - // security buffer and send it to the HTTP server. The output - // buffer will be pointing to a buffer that contains the - // response from the HTTP server on return. - LPSTR pszbuff = NULL; - if (!SendSecurityInfo(OutBufferDesc.Buffers(0), &pszbuff) || !pszbuff) - return false; - - CString strVal; - if (!m_pSocket->GetHeaderValue(m_bProxy ? g_pszProxyAuthenticate : g_pszWWWAuthenticate, strVal)) - return false; // wrong authentication type - - LPCTSTR szResponsecode = strVal; - TCHAR pszcode[ATL_AUTH_HDR_SIZE]; - if (szResponsecode) - { - // first four characters better be 'NTLM' - if (_tcsncicmp(szResponsecode, _T("NTLM"), 4) != 0) - return false; - - // skip NTLM - szResponsecode += 4; - - // skip space - while (*szResponsecode && _AtlIsHttpSpace(*szResponsecode)) - szResponsecode++; - - // find end of header - LPCTSTR pszend = szResponsecode; - while (*pszend && *pszend != _T('\r')) - pszend++; - bRet = false; - if (pszend) - { - // copy authentication data to our buffer - // and base64decode it. - int nlen = (int)(pszend-szResponsecode); - Checked::memcpy_s(pszcode, ATL_AUTH_HDR_SIZE, szResponsecode, nlen*sizeof(TCHAR)); - pszcode[pszend-szResponsecode]=0; - - // re-use OutBufferDesc here since we'll need to need - // a SecBufferDesc to pass to the next call to InitializeSecurityContext - // anyways. - if(!OutBufferDesc.Buffers(0)->ClearBuffer(m_nMaxTokenSize)) - return false; - - _ATLTRY - { - CT2A pszcode_a(pszcode); - bRet = Base64Decode(pszcode_a, - (int) strlen(pszcode_a), - (BYTE*)OutBufferDesc.Buffers(0)->pvBuffer, - (int*) &OutBufferDesc.Buffers(0)->cbBuffer) != FALSE; - } - _ATLCATCHALL() - { - bRet = false; - } - } - - if (!bRet) - return false; - - // Create buffers for the challenge data - CSecBufferDesc *InBufferDesc = &OutBufferDesc; - CSecBufferDesc OutBufferDesc2; - if (!OutBufferDesc2.AddBuffers(1, m_nMaxTokenSize)) - return false; - - // Process the challenge response from the server - SecurityStatus = InitializeSecurityContext( - 0, - &SecurityContext, - NULL, - 0, - 0, - 0 , - InBufferDesc, - 0, - &SecurityContext, - OutBufferDesc2, - &ContextAttributes, - &m_ts - ); - - if (IS_ERROR(SecurityStatus)) - return false; - - pszbuff = NULL; - if (SendSecurityInfo(OutBufferDesc2.Buffers(0), &pszbuff)) - { - // at this point we should be authenticated and either have the page - // we requested or be getting re-directed to another page under our - // authorization. Either way, we don't want to go through authorization - // code again if we are not authorized to prevent recursive authorization - // so we tell the client not to try this protocol again. - if (m_pSocket->GetStatus() == 401 || - m_pSocket->GetStatus() == 407) - { - // Authorization with this protocol failed. - // don't try it again. - m_pSocket->AuthProtocolFailed(_T("NTLM")); - } - bRet = m_pSocket->ProcessStatus(m_pSocket->GetFlags()); - } - } - - return bRet; -} -inline bool CNTLMAuthObject::GetCredentialNames(CString& theName) -{ - if (ATL_IS_INVALIDCREDHANDLE(m_hCredentials)) - return false; - - SecPkgCredentials_Names spcn; - if(!IS_ERROR(QueryCredentialsAttributes(&m_hCredentials, - SECPKG_CRED_ATTR_NAMES, (void*)&spcn))) - { - theName = spcn.sUserName; - return true; - } - return false; -} - -inline bool CNTLMAuthObject::SendSecurityInfo(SecBuffer *pSecBuffer, LPSTR *pszBuffer) throw() -{ - ATLASSERT(pSecBuffer); - ATLASSUME(m_pSocket); - ATLASSERT(pszBuffer); - - int nDest = ATL_AUTH_HDR_SIZE; - char auth_b64encoded[ATL_AUTH_HDR_SIZE]; - char auth_header[ATL_AUTH_HDR_SIZE]; - const char *pszFmtStr = m_bProxy ? m_pszFmtProxy : m_pszFmtWWW; - - if (!pSecBuffer || !pSecBuffer->pvBuffer || !pszBuffer) - return false; - *pszBuffer = 0; - - // Base64Encode will fail gracefully if buffer not big enough - if (Base64Encode((BYTE*)pSecBuffer->pvBuffer, pSecBuffer->cbBuffer, - auth_b64encoded, &nDest, ATL_BASE64_FLAG_NOCRLF)) - { - if (nDest < ATL_AUTH_HDR_SIZE) - { - auth_b64encoded[nDest]=0; - // make sure we have enough room in our header buffer - if ( (strlen(pszFmtStr)-2 + nDest) < ATL_AUTH_HDR_SIZE) - sprintf_s(auth_header, ATL_AUTH_HDR_SIZE, pszFmtStr, auth_b64encoded); - else - return false; - } - else - return false; - } - else - return false; - - // reset the connection if required - m_pSocket->ResetConnection(); - - // Resend the request with the authorization information - LPCURL pUrl = m_pSocket->GetCurrentUrl(); - bool bRet = false; - - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH]; - DWORD dwMaxLen = ATL_URL_MAX_URL_LENGTH; - if( ! pUrl->CreateUrl(szUrl, &dwMaxLen) ) - return false; - - _ATLTRY - { - CA2CT hdr(auth_header); - CAtlNavigateData navigate_data(m_CurrentRequestData); - // append authorization header to extra headers - CString strHeaders = navigate_data.GetExtraHeaders(); - strHeaders += hdr; - navigate_data.SetExtraHeaders(strHeaders); - navigate_data.RemoveFlags(ATL_HTTP_FLAG_PROCESS_RESULT); - - bRet = m_pSocket->Navigate( szUrl, &navigate_data); - } - _ATLCATCHALL() - { - bRet = false; - } - if (bRet) - *pszBuffer = (LPSTR)m_pSocket->GetResponse(); - return bRet; -} - -///////////////////////////////////////////////////////////////////////////////// -// -// CBasicAuthObject -// BASIC Security Authorization functions -// -///////////////////////////////////////////////////////////////////////////////// -inline bool CBasicAuthObject::DoBasicAuthenticate() throw() -{ - bool bRet = false; - ATLASSUME(m_pClient); - ATLASSUME(m_pAuthInfo); - // Create an authentication string - CTempBuffer auth_string; - CAuthInfoBuffType buffUID; - CAuthInfoBuffType buffPWD; - - DWORD dwUID=0,dwPWD=0; - if (!_AtlGetAuthInfoHelper(m_pAuthInfo, &IAuthInfo::GetPassword, buffPWD, &dwPWD) || - !_AtlGetAuthInfoHelper(m_pAuthInfo, &IAuthInfo::GetUsername, buffUID, &dwUID)) - return false; - - _ATLTRY - { - if (!auth_string.Allocate((_ATL_MAX_AUTH_BUFF*2)+2)) - return false; - - Checked::tcscpy_s(auth_string, _ATL_MAX_AUTH_BUFF, buffUID); - Checked::tcscat_s(auth_string, _ATL_MAX_AUTH_BUFF, _T(":")); - Checked::tcscat_s(auth_string, _ATL_MAX_AUTH_BUFF, buffPWD); - - // Base64 encode the auth string - char *auth_string_enc = NULL; - CTempBuffer auth_string_buff; - CT2A auth_string_a(auth_string); - - int nLen = Base64EncodeGetRequiredLength((int)strlen((LPSTR)auth_string_a)); - auth_string_buff.Allocate(nLen+1); - if (!((char*)auth_string_buff)) - return false; - - auth_string_enc = (char*)auth_string_buff; - if (!Base64Encode((const BYTE*)(LPSTR)auth_string_a, (int)strlen((LPSTR)auth_string_a), - auth_string_enc, &nLen, ATL_BASE64_FLAG_NOCRLF)) - return false; - auth_string_buff[nLen]=0; - - // Format the Authentication header - int nLenFmt = (m_bProxy ? (int)strlen(m_pszFmtProxy) : (int)strlen(m_pszFmtWWW)) + 2; - nLen += nLenFmt; - ++nLen; // Space for '\0' - - CTempBuffer auth_header_buff; - ATLTRY(auth_header_buff.Allocate(nLen)); - if (!((char*)auth_header_buff)) - return false; - - char *auth_header = (char*)auth_header_buff; - Checked::strcpy_s(auth_header, nLen, m_bProxy ? m_pszFmtProxy : m_pszFmtWWW); - Checked::strcat_s(auth_header, nLen, auth_string_enc); - Checked::strcat_s(auth_header, nLen, "\r\n"); - - // Resend the request with the authorization information - LPCURL pUrl = m_pClient->GetCurrentUrl(); - TCHAR szUrl[ATL_URL_MAX_URL_LENGTH]; - DWORD dwMaxLen = ATL_URL_MAX_URL_LENGTH; - pUrl->CreateUrl(szUrl, &dwMaxLen); - - // reset the connection if required - m_pClient->ResetConnection(); - - CA2T hdr(auth_header); - CAtlNavigateData navigate_data(*(const_cast(m_pClient->GetCurrentNavdata()))); - // append authorization header to extra headers - CString strHeaders = navigate_data.GetExtraHeaders(); - strHeaders += hdr; - navigate_data.SetExtraHeaders(strHeaders); - navigate_data.RemoveFlags(ATL_HTTP_FLAG_PROCESS_RESULT); - bRet = m_pClient->Navigate( szUrl, - &navigate_data); - } - _ATLCATCHALL() - { - bRet = false; - } - - if (bRet) - { - // Request was successfully sent. Process the result. - if (m_pClient->GetStatus() == 401 || - m_pClient->GetStatus() == 407) - { - // Authorization with this protocol failed. - // don't try it again. - m_pClient->AuthProtocolFailed(_T("basic")); - } - bRet = m_pClient->ProcessStatus(m_pClient->GetFlags()); - } - return bRet; -} - -inline CBasicAuthObject::CBasicAuthObject() throw() -{ - m_pClient = NULL; - m_pAuthInfo = NULL; - m_szRealm[0] = 0; - m_bProxy = false; -} - -inline CBasicAuthObject::CBasicAuthObject(IAuthInfo *pAuthInfo) throw() -{ - m_pAuthInfo = pAuthInfo; - m_pClient = NULL; -} - -inline void CBasicAuthObject::SetAuthInfo(IAuthInfo *pAuthInfo) throw() -{ - m_pAuthInfo = pAuthInfo; -} - -// Called by the CAtlHttpClient class to -// authenticate a user. -inline bool CBasicAuthObject::Authenticate(LPCTSTR szAuthTypes, bool bProxy) throw() -{ - if (lstrlen(szAuthTypes) > ATL_AUTH_HDR_SIZE) - return false; - - m_bProxy = bProxy; - - if (!CrackRealm(szAuthTypes)) - return false; - return DoBasicAuthenticate(); -} - -inline LPCTSTR CBasicAuthObject::GetRealm() throw() -{ - return const_cast(m_szRealm); -} - -// Called by the CAtlHttpClient class to initialize -// this authentication object. -inline void CBasicAuthObject::Init(CAtlHttpClient *pSocket, IAuthInfo *pAuthInfo) throw() -{ - ATLASSERT(pSocket); - m_pClient = pSocket; - if (pAuthInfo) - SetAuthInfo(pAuthInfo); -} - -inline bool CBasicAuthObject::CrackRealm(LPCTSTR szHeader) throw() -{ - // szHeader is pointing at the - // "basic" in the header - // see if realm is available - const TCHAR *pStart = szHeader; - - // skip "basic" - pStart += 5; - - // skip space - while (*pStart && _AtlIsHttpSpace(*pStart)) - pStart++; - - // are we pointing at 'realm'? - if ((*pStart == 'r' || *pStart == 'R') && - (*(pStart+1) == 'e' || *(pStart+1) == 'E') && - (*(pStart+2) == 'a' || *(pStart+2) == 'A') && - (*(pStart+3) == 'l' || *(pStart+3) == 'L') && - (*(pStart+4) == 'm' || *(pStart+4) == 'M')) - { - // skip 'realm' - pStart += 5; - - // skip space - while (*pStart && _AtlIsHttpSpace(*pStart)) - pStart++; - - // skip '=' - if (*pStart && *pStart == _T('=')) - pStart++; - else - return false; // invalid realm - - // skip space - while (*pStart && _AtlIsHttpSpace(*pStart)) - pStart++; - - // skip quotes if they are there - if (*pStart == '\"') - pStart++; - - const TCHAR *pEnd = pStart; - while (*pEnd && *pEnd != '\"') - { - if (*pEnd == '\\' && *(pEnd + 1)) // escaped character, skip it - pEnd += 2; - else - pEnd++; - } - - if (*pEnd == '\"' && *(pEnd+1) != '\0') - return false; //trailing junk after the quoted realm - - if (*pEnd=='\0' || *pEnd =='\"') - { - int nLen = (int)(pEnd-pStart); - if (nLen < MAX_REALM_LEN) - { - Checked::tcsncpy_s(m_szRealm, _countof(m_szRealm), pStart, nLen); - m_szRealm[nLen]=0; - if (!AtlUnescapeUrl(m_szRealm, m_szRealm, NULL, MAX_REALM_LEN)) - return false; // error unescaping the string - } - else - return false; - } - } - return true; -} - -inline CAtlBaseAuthObject::CAtlBaseAuthObject() -{ - m_bFailed = false; -} - - -inline CAtlNavigateData::CAtlNavigateData() throw() -{ - dwFlags = ATL_HTTP_FLAG_AUTO_REDIRECT| - ATL_HTTP_FLAG_PROCESS_RESULT| - ATL_HTTP_FLAG_SEND_BLOCKS; - szExtraHeaders = NULL; - szMethod = ATL_HTTP_METHOD_GET; - nPort = ATL_URL_DEFAULT_HTTP_PORT; - pData = NULL; - dwDataLen = 0; - szDataType = NULL; - dwTimeout = ATL_SOCK_TIMEOUT; - dwSendBlockSize = ATL_HTTP_DEFAULT_BLOCK_SIZE; - dwReadBlockSize = ATL_HTTP_DEFAULT_BLOCK_SIZE; - pfnChunkCallback = NULL; - pfnSendStatusCallback = NULL; - pfnReadStatusCallback = NULL; - m_lParamSend = 0; - m_lParamRead = 0; -} - -inline CAtlNavigateData::CAtlNavigateData(const CAtlNavigateData &rhs) -{ - this->operator=(rhs); -} - -inline CAtlNavigateData::CAtlNavigateData(const ATL_NAVIGATE_DATA &rhs) -{ - this->operator=(rhs); -} - -inline CAtlNavigateData& CAtlNavigateData::operator=(const CAtlNavigateData &rhs) -{ - return this->operator=(static_cast(rhs)); -} - -inline CAtlNavigateData& CAtlNavigateData::operator=(const ATL_NAVIGATE_DATA &rhs) -{ - dwFlags = rhs.dwFlags; - szExtraHeaders = rhs.szExtraHeaders; - szMethod = rhs.szMethod; - nPort = rhs.nPort; - pData = rhs.pData; - dwDataLen = rhs.dwDataLen; - szDataType = rhs.szDataType; - dwTimeout = rhs.dwTimeout; - dwSendBlockSize = rhs.dwSendBlockSize; - dwReadBlockSize = rhs.dwReadBlockSize; - pfnChunkCallback = rhs.pfnChunkCallback; - pfnSendStatusCallback = rhs.pfnSendStatusCallback; - pfnReadStatusCallback = rhs.pfnReadStatusCallback; - m_lParamSend = rhs.m_lParamSend; - m_lParamRead = rhs.m_lParamRead; - return *this; -} - -inline DWORD CAtlNavigateData::SetFlags(DWORD dwNewFlags) throw() -{ - // check for mutually exclusive flags - if ((dwNewFlags & ATL_HTTP_FLAG_SEND_CALLBACK) && - (dwNewFlags & ATL_HTTP_FLAG_SEND_BLOCKS)) - { - ATLASSERT(0); - return ATL_HTTP_FLAG_INVALID_FLAGS; - } - - DWORD dwOldFlags = dwFlags; - dwFlags = dwNewFlags; - return dwOldFlags; -} - -inline DWORD CAtlNavigateData::GetFlags() throw() -{ - return dwFlags; -} - -inline DWORD CAtlNavigateData::AddFlags(DWORD dwFlagsToAdd) throw() -{ - // check for mutually exclusive flags - if ( - ((dwFlagsToAdd & ATL_HTTP_FLAG_SEND_CALLBACK) && - (dwFlags & ATL_HTTP_FLAG_SEND_BLOCKS)) || - ((dwFlagsToAdd & ATL_HTTP_FLAG_SEND_BLOCKS) && - (dwFlags & ATL_HTTP_FLAG_SEND_CALLBACK)) - ) - { - ATLASSERT(0); - return ATL_HTTP_FLAG_INVALID_FLAGS; - } - - DWORD dwOldFlags = dwFlags; - dwFlags |= dwFlagsToAdd; - return dwOldFlags; -} - -inline DWORD CAtlNavigateData::RemoveFlags(DWORD dwFlagsToRemove) throw() -{ - DWORD dwOldFlags = dwFlags; - dwFlags &= ~dwFlagsToRemove; - return dwOldFlags; -} - -inline LPCTSTR CAtlNavigateData::SetExtraHeaders(LPCTSTR szNewHeaders) throw() -{ - LPCTSTR szold = szExtraHeaders; - szExtraHeaders = szNewHeaders; - return szold; -} - -inline LPCTSTR CAtlNavigateData::GetExtraHeaders() throw() -{ - return szExtraHeaders; -} -inline LPCTSTR CAtlNavigateData::SetMethod(LPCTSTR szNewMethod) throw() -{ - LPCTSTR szold = szMethod; - szMethod = szNewMethod; - return szold; -} -inline LPCTSTR CAtlNavigateData::GetMethod() throw() -{ - return szMethod; -} -inline short CAtlNavigateData::SetPort(short newPort) throw() -{ - short oldport = nPort; - nPort = newPort; - return oldport; -} -inline short CAtlNavigateData::GetPort() throw() -{ - return nPort; -} -inline void CAtlNavigateData::SetPostData(BYTE *pd, DWORD len, LPCTSTR type) throw() -{ - pData = pd; - dwDataLen = len; - szDataType = type; -} - -inline DWORD CAtlNavigateData::SetSocketTimeout(DWORD dwNewTimeout) throw() -{ - DWORD dwold = dwTimeout; - dwTimeout = dwNewTimeout; - return dwold; -} -inline DWORD CAtlNavigateData::GetSocketTimeout() throw() -{ - return dwTimeout; -} -inline DWORD CAtlNavigateData::SetSendBlockSize(DWORD dwNewBlockSize) throw() -{ - DWORD dwold = dwSendBlockSize; - dwSendBlockSize = dwNewBlockSize; - return dwold; -} -inline DWORD CAtlNavigateData::GetSendBlockSize() throw() -{ - return dwSendBlockSize; -} - -inline DWORD CAtlNavigateData::SetReadBlockSize(DWORD dwNewBlockSize) throw() -{ - DWORD dwold = dwReadBlockSize; - dwReadBlockSize = dwNewBlockSize; - return dwold; -} - -inline DWORD CAtlNavigateData::GetReadBlockSize() throw() -{ - return dwReadBlockSize; -} - -inline PFNATLCHUNKEDCB CAtlNavigateData::SetChunkCallback(PFNATLCHUNKEDCB pfn, DWORD_PTR dwParam) throw() -{ - PFNATLCHUNKEDCB pold = pfnChunkCallback; - pfnChunkCallback = pfn; - m_lParamChunkCB = dwParam; - return pold; -} -inline PFNATLCHUNKEDCB CAtlNavigateData::GetChunkCallback() throw() -{ - return pfnChunkCallback; -} - -inline PFNATLSTATUSCALLBACK CAtlNavigateData::SetSendStatusCallback(PFNATLSTATUSCALLBACK pfn, DWORD_PTR dwData) throw() -{ - PFNATLSTATUSCALLBACK pold = pfnSendStatusCallback; - pfnSendStatusCallback = pfn; - m_lParamSend = dwData; - return pold; -} - -inline PFNATLSTATUSCALLBACK CAtlNavigateData::GetSendStatusCallback() throw() -{ - return pfnSendStatusCallback; -} - -inline PFNATLSTATUSCALLBACK CAtlNavigateData::SetReadStatusCallback(PFNATLSTATUSCALLBACK pfn, DWORD_PTR dwData) throw() -{ - PFNATLSTATUSCALLBACK pOld = pfnReadStatusCallback; - pfnReadStatusCallback = pfn; - m_lParamRead = dwData; - return pOld; -} - -inline PFNATLSTATUSCALLBACK CAtlNavigateData::GetReadStatusCallback() throw() -{ - return pfnReadStatusCallback; -} - -} // namespace ATL - -#pragma warning(pop) - -#endif // __ATLHTTP_INL__ diff --git a/ATL90/include/atlisapi.h b/ATL90/include/atlisapi.h deleted file mode 100644 index e812aec..0000000 --- a/ATL90/include/atlisapi.h +++ /dev/null @@ -1,10609 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSTENCIL_H__ -#include -#endif - -#ifndef __ATLISAPI_H__ -#define __ATLISAPI_H__ - -#pragma once -#include -#include // needed for cookie support -#include // needed for ECB and IIS support -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef ATL_NO_SOAP - #include -#endif -#ifndef ATL_NO_ACLAPI - #include -#endif -#ifndef ATL_NO_MMSYS -#pragma warning(push) -#pragma warning(disable:4201) // nonstandard extension used : nameless struct/union -#include -#pragma warning(pop) -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "winmm.lib") -#ifndef ATL_NO_SOAP -#pragma comment(lib, "msxml2.lib") -#endif -#endif // !_ATL_NO_DEFAULT_LIBS -#endif -#include - -#pragma warning(push) -#pragma warning(disable: 4291) // allow placement new -#pragma warning(disable: 4127) // conditional expression is constant -#pragma warning(disable: 4511) // copy constructor could not be generated -#pragma warning(disable: 4512) // assignment operator could not be generated -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible -#pragma warning(disable: 4191) // unsafe conversion from 'functionptr1' to 'functionptr2' -#pragma warning(disable: 4702) // unreachable code - -#include -#include - -#ifndef SESSION_COOKIE_NAME - #define SESSION_COOKIE_NAME "SESSIONID" -#endif - -// override this if you want to use a different CLSID for SAX -#ifndef ATLS_SAXXMLREADER_CLSID - #define ATLS_SAXXMLREADER_CLSID __uuidof(SAXXMLReader) -#endif // ATLS_SAXXMLREADER_CLSID - - -// This function is used in CValidateObject to determine if an empty -// request parameter really should be empty. You can -// specialize this function in your own code such as -// the following specialization for type long: -// template <> -// inline bool IsNullByType(long type) throw() -// { -// return type == 0; -// } -// You should provide your own specialization for this -// function if the comparison of type==0 is not adequate -// to discover whether or not your type is 0. -template -inline bool IsNullByType(__in TComp type) throw() -{ - return type == 0; -} - - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -// Default file extension for server response files -#ifndef ATL_DEFAULT_STENCIL_EXTENSION - #define ATL_DEFAULT_STENCIL_EXTENSION ".srf" -#endif -extern __declspec(selectany) const char * const c_AtlSRFExtension = ATL_DEFAULT_STENCIL_EXTENSION; -extern __declspec(selectany) const TCHAR * const c_tAtlSRFExtension = _T(ATL_DEFAULT_STENCIL_EXTENSION); -#define ATLS_EXTENSION_LEN (sizeof(ATL_DEFAULT_STENCIL_EXTENSION)-2) - -// Default file extension for handler DLLs -#ifndef ATL_DEFAULT_DLL_EXTENSION - #define ATL_DEFAULT_DLL_EXTENSION ".dll" -#endif -extern __declspec(selectany) const char * const c_AtlDLLExtension = ATL_DEFAULT_DLL_EXTENSION; -extern __declspec(selectany) const TCHAR * const c_tAtlDLLExtension = _T(ATL_DEFAULT_DLL_EXTENSION); -#define ATLS_DLL_EXTENSION_LEN (sizeof(ATL_DEFAULT_DLL_EXTENSION)-2) - -// maximum handler name length -#ifndef ATL_MAX_HANDLER_NAME_LEN - #define ATL_MAX_HANDLER_NAME_LEN 64 -#endif - -#ifndef ATL_HANDLER_NAME_DEFAULT -#define ATL_HANDLER_NAME_DEFAULT "Default" -#endif // ATL_DEFAULT_HANDLER_NAME - - -// maximum timeout for async guard mutex -#ifndef ATLS_ASYNC_MUTEX_TIMEOUT - #define ATLS_ASYNC_MUTEX_TIMEOUT 10000 -#endif - -#if defined(_M_IA64) || defined (_M_AMD64) -#define ATLS_FUNCID_INITIALIZEHANDLERS "InitializeAtlHandlers" -#define ATLS_FUNCID_GETATLHANDLERBYNAME "GetAtlHandlerByName" -#define ATLS_FUNCID_UNINITIALIZEHANDLERS "UninitializeAtlHandlers" -#elif defined(_M_IX86) -#define ATLS_FUNCID_INITIALIZEHANDLERS "_InitializeAtlHandlers@8" -#define ATLS_FUNCID_GETATLHANDLERBYNAME "_GetAtlHandlerByName@12" -#define ATLS_FUNCID_UNINITIALIZEHANDLERS "_UninitializeAtlHandlers@0" -#else -#error Unknown Platform. -#endif - -#define ATL_MAX_COOKIE_LEN 2048 -#define ATL_MAX_COOKIE_ELEM 1024 - - -// Defines a small value used for comparing the equality of floating point numbers. -#ifndef ATL_EPSILON - #define ATL_EPSILON .0001 -#endif - -#ifndef ATL_DEFAULT_PRECISION - #define ATL_DEFAULT_PRECISION 6 -#endif - -// Call this function to URL-encode a buffer and have the result appended to a CString passed by reference. -// -// A space in the input string is encoded as a plus sign (+). -// Other unsafe characters (as determined by AtlIsUnsafeUrlChar) are encoded as escaped octets. -// An escaped octet is a percent sign (%) followed by two digits representing the hexadecimal code of the character. -// -// string A CStringA reference to which will be appended the encoded version of szBuf. -// -// szBuf The string to be URL-encoded. -ATL_NOINLINE inline bool EscapeToCString(__inout CStringA& string, __in LPCSTR szBuf) -{ - ATLENSURE( szBuf != NULL ); - - _ATLTRY - { - CHAR szEscaped[512]; - LPSTR pszStr = szEscaped; - DWORD dwLen = 0; - - while (*szBuf) - { - if (dwLen+4 >= _countof(szEscaped)) - { - *pszStr = '\0'; - string.Append(szEscaped, dwLen); - pszStr = szEscaped; - dwLen = 0; - } - if (AtlIsUnsafeUrlChar(*szBuf)) - { - if (*szBuf == ' ') - { - dwLen++; - *pszStr++ = '+'; - } - else - { - LPSTR pszTmp = pszStr; - *pszTmp++ = '%'; - unsigned char ch = (unsigned char)*szBuf; - if (ch < 16) - { - *pszTmp++ = '0'; - } - Checked::ultoa_s((unsigned char)ch, pszTmp, szEscaped + _countof(szEscaped) - pszTmp, 16); - pszStr+= sizeof("%FF")-1; - dwLen+= sizeof("%FF")-1; - } - } - else - { - *pszStr++ = *szBuf; - dwLen++; - } - szBuf++; - } - - *pszStr = '\0'; - string.Append(szEscaped, dwLen); - } - _ATLCATCHALL() - { - return false; - } - - return true; -} - -// UNICODE overload for EscapeToCString -// follow specifications detailed in RFC document on -// Internationalized Uniform Resource Identifiers (IURI) -inline bool EscapeToCString(__inout CStringA& string, __in_z LPCWSTR wszBuf) throw() -{ - _ATLTRY - { - // convert string to UTF8 - CFixedStringT strConvert; - - // get the required length for conversion - int nSrcLen = (int) wcslen(wszBuf); - int nLen = AtlUnicodeToUTF8(wszBuf, nSrcLen, NULL, 0); - if (!nLen) - { - return false; - } - - // allocate MBCS conversion string - LPSTR sz = strConvert.GetBuffer(nLen+1); - if (!sz) - { - return false; - } - - // do the UNICODE to UTF8 conversion - nLen = AtlUnicodeToUTF8(wszBuf, nSrcLen, sz, nLen); - if (!nLen) - { - return false; - } - - // null-terminate - sz[nLen] = '\0'; - - // delegate to ANSI version of EscapeToCString - if (!EscapeToCString(string, sz)) - { - return false; - } - - strConvert.ReleaseBuffer(nLen); - } - _ATLCATCHALL() - { - return false; - } - - return true; -} - -struct CDefaultErrorProvider -{ - struct HTTP_ERROR_TEXT - { - UINT uHttpError; // the Http Error value - UINT uHttpSubError; // Allows for customization of error text based on srf specific errors. - LPCSTR szHeader; // the string that should appear in the http response header - UINT uResId; // the resource id of the string to send back as the body - }; - - - // GetErrorText retrieves the http response header string - // and a resource id of the response body for a given - // http error code - // uError: Http error code to retrieve information for - // ppszHeader: pointer to LPCSTR that receives the response header string - // ppszHeader is optional - // puResId: pointer to UINT that receives the response body resource id - // puResId is optional - static BOOL GetErrorText(__in UINT uError, __in UINT uSubErr, __deref_out_opt LPCSTR *ppszHeader, __out_opt UINT *puResId) throw() - { - static const HTTP_ERROR_TEXT s_Errors[] = - { - { 200, SUBERR_NONE, "OK", 0 }, - { 201, SUBERR_NONE, "Created", 0 }, - { 202, SUBERR_NONE, "Accepted", 0 }, - { 203, SUBERR_NONE, "Non-Authoritative Information", 0 }, - { 204, SUBERR_NONE, "No Content", 0 }, - { 204, DBG_SUBERR_ALREADY_DEBUGGING, "Already being debugged by another user", 0}, - { 204, DBG_SUBERR_NOT_DEBUGGING, "Not currently debugging a process", 0}, - { 204, DBG_SUBERR_INVALID_SESSION, "Requested DebugSessionID does not match current DebugSessionID", 0}, - { 204, DBG_SUBERR_BAD_ID, "DebugSessionID corrupted or not provided", 0 }, - { 204, DBG_SUBERR_COCREATE, "Could not CoCreate the debugger", 0 }, - { 204, DBG_SUBERR_ATTACH, "Could not attach to process", 0 }, - { 205, SUBERR_NONE, "Reset Content", 0 }, - { 206, SUBERR_NONE, "Partial Content", 0 }, - { 300, SUBERR_NONE, "Multiple Choices", 0 }, - { 301, SUBERR_NONE, "Moved Permanently", 0 }, - { 302, SUBERR_NONE, "Found", 0 }, - { 303, SUBERR_NONE, "See Other", 0 }, - { 304, SUBERR_NONE, "Not Modified", 0 }, - { 305, SUBERR_NONE, "Use Proxy", 0 }, - { 306, SUBERR_NONE, "(Unused)", 0 }, - { 307, SUBERR_NONE, "Temporary Redirect", 0 }, - { 400, SUBERR_NONE, "Bad Request", IDS_ATLSRV_BAD_REQUEST }, - { 401, SUBERR_NONE, "Unauthorized", IDS_ATLSRV_AUTH_REQUIRED }, - { 402, SUBERR_NONE, "Payment Required", 0 }, - { 403, SUBERR_NONE, "Forbidden", IDS_ATLSRV_FORBIDDEN }, - { 404, SUBERR_NONE, "Not Found", IDS_ATLSRV_NOT_FOUND }, - { 405, SUBERR_NONE, "Method Not Allowed", 0 }, - { 406, SUBERR_NONE, "Not Acceptable", 0 }, - { 407, SUBERR_NONE, "Proxy Authentication Required", 0 }, - { 408, SUBERR_NONE, "Request Timeout", 0 }, - { 409, SUBERR_NONE, "Conflict", 0 }, - { 410, SUBERR_NONE, "Gone", 0 }, - { 411, SUBERR_NONE, "Length Required", 0 }, - { 412, SUBERR_NONE, "Precondition Failed", 0 }, - { 413, SUBERR_NONE, "Request Entity Too Long", 0 }, - { 414, SUBERR_NONE, "Request-URI Too Long", 0 }, - { 415, SUBERR_NONE, "Unsupported Media Type", 0 }, - { 416, SUBERR_NONE, "Requested Range Not Satisfiable", 0 }, - { 417, SUBERR_NONE, "Expectation Failed", 0 }, - { 500, SUBERR_NONE, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR }, - { 500, ISE_SUBERR_BADSRF, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_BADSRF }, - { 500, ISE_SUBERR_HNDLFAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_HNDLFAIL }, - { 500, ISE_SUBERR_SYSOBJFAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL}, - { 500, ISE_SUBERR_READFILEFAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_READFILEFAIL}, - { 500, ISE_SUBERR_LOADFILEFAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL}, - { 500, ISE_SUBERR_LOADLIB, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_LOADLIB}, - { 500, ISE_SUBERR_HANDLERIF, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_HANDLERIF}, - { 500, ISE_SUBERR_OUTOFMEM, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_OUTOFMEM}, - { 500, ISE_SUBERR_UNEXPECTED, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_UNEXPECTED}, - { 500, ISE_SUBERR_STENCIL_PARSE_FAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL}, - { 500, ISE_SUBERR_STENCIL_LOAD_FAIL, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL}, - { 500, ISE_SUBERR_HANDLER_NOT_FOUND, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND}, - { 500, ISE_SUBERR_BAD_HANDLER_TAG, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG}, - { 500, ISE_SUBERR_LONGMETHODNAME, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME}, - { 500, ISE_SUBERR_LONGHANDLERNAME, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME}, - { 500, ISE_SUBERR_NO_HANDLER_TAG, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG}, - { 500, ISE_SUBERR_IMPERSONATIONFAILED, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED}, - { 500, ISE_SUBERR_ISAPISTARTUPFAILED, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED}, - { 500, ISE_SUBERR_SOAPNOSOAPACTION, "Internal Server Error", IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION}, - - { 501, SUBERR_NONE, "Not Implemented", IDS_ATLSRV_NOT_IMPLEMENTED }, - { 502, SUBERR_NONE, "Bad Gateway", IDS_ATLSRV_BAD_GATEWAY }, - { 503, SUBERR_NONE, "Service Unavailable", IDS_ATLSRV_SERVICE_NOT_AVAILABLE }, - { 504, SUBERR_NONE, "Gateway Timeout", 0 }, - { 505, SUBERR_NONE, "HTTP Version Not Supported", 0 }, - }; - - // look for the error - for (int i=0; i -void GetStatusHeader(__inout CStringA &strStatus, __in DWORD dwStatus, __in DWORD dwSubStatus, __in HttpUserErrorTextProvider* pErrorProvider, __out_opt UINT *puResId = NULL) throw(...) -{ - ATLENSURE( pErrorProvider != NULL ); - - LPCSTR szHeadErr = NULL; - // First, we check for the error text in the extension's user error text provider - BOOL bRet = pErrorProvider->GetErrorText(dwStatus, dwSubStatus, &szHeadErr, puResId); - if (!bRet) - { - szHeadErr = ""; - } - - char szBuf[512]; - Checked::itoa_s(dwStatus, szBuf, _countof(szBuf), 10); - - // add the space after the 3 digit response code - szBuf[3] = ' '; - szBuf[4] = '\0'; - strStatus.SetString(szBuf, 4); - strStatus.Append(szHeadErr); -} - -template -void RenderError(__in IHttpServerContext *pServerContext, __in DWORD dwStatus, __in DWORD dwSubStatus, __in HttpUserErrorTextProvider* pErrorProvider) -{ - ATLENSURE( pServerContext != NULL ); - ATLENSURE( pErrorProvider != NULL ); - _ATLTRY - { - UINT uResId = 0; - - CFixedStringT strStatus; - GetStatusHeader(strStatus, dwStatus, dwSubStatus, pErrorProvider, &uResId); - pServerContext->SendResponseHeader(NULL, strStatus, FALSE); - - LPCSTR szBody = strStatus; - DWORD dwBodyLen = strStatus.GetLength(); - CFixedStringT strBody; - if (uResId) - { - // load the body string from a resource - if (strBody.LoadString(uResId)) - { - szBody = strBody; - dwBodyLen = strBody.GetLength(); - } - } - - pServerContext->WriteClient((void *) szBody, &dwBodyLen); - } - _ATLCATCHALL() - { - // last resort message when low on memory - LPCSTR szError; - BOOL bRes; - bRes = CDefaultErrorProvider::GetErrorText(dwStatus, dwSubStatus, &szError, 0); - if (!bRes) - bRes = CDefaultErrorProvider::GetErrorText(dwStatus, SUBERR_NONE, &szError, 0); - if (!bRes) - bRes = CDefaultErrorProvider::GetErrorText(500, SUBERR_NONE, &szError, 0); - if(!szError) - { - szError="Unknown Error"; // last resort, can't localize - } - DWORD dwBodyLen = (DWORD) strlen(szError); - pServerContext->WriteClient((void *) szError, &dwBodyLen); - } -} - -// Call this function to retrieve the full canonical physical path - // of a file relative to the current script. -// -// Returns TRUE on success, FALSE on error. -// -// szFile A file path relative to the current script directory for which -// you are trying to retrieve the full path. -// -// szFullFileName A caller-allocated buffer of at least MAX_PATH characters in length. -// On success, contains the the full canonical path of szFile. -// -// pServerContext The context for the current request. The context is used to obtain the -// current script directory. -inline BOOL GetScriptFullFileName( - __in LPCSTR szFile, - __in_ecount(MAX_PATH) LPSTR szFullFileName, - __in IHttpServerContext* pServerContext) throw(...) -{ - ATLENSURE( szFile != NULL ); - ATLASSERT( szFullFileName != NULL ); - ATLENSURE( pServerContext != NULL ); - - char szTmpScriptPath[MAX_PATH]; - LPCSTR szTmp = pServerContext->GetScriptPathTranslated(); - - if (!szTmp) - { - return FALSE; - } - - if (!SafeStringCopy(szTmpScriptPath, szTmp)) - { - // path is too long - return FALSE; - } - - CHAR *szScriptPath = szTmpScriptPath; - - LPSTR szBackslash; - if (*szFile != '\\') - { - szBackslash = strrchr(szScriptPath, '\\'); - - ATLASSERT( *(szScriptPath+strlen(szScriptPath)) != '\\'); - - if (szBackslash) - szBackslash++; - } - else - { - // handle case where szFile is of the form \directory\etc\etc - szBackslash = strchr(szScriptPath, '\\'); - } - - if (szBackslash) - *szBackslash = '\0'; - - int nScriptPathLen = (int)(szBackslash ? strlen(szScriptPath) : 0); - int nFileLen = (int) strlen(szFile); - int newLen = nScriptPathLen + nFileLen; - - if ((newLen < nScriptPathLen) || (newLen < nFileLen) || (newLen > MAX_PATH-1)) - { - return FALSE; - } - CHAR szTemp[MAX_PATH]; - if (nScriptPathLen) - { - Checked::memcpy_s(szTemp, MAX_PATH, szScriptPath, nScriptPathLen); - } - Checked::memcpy_s(szTemp + nScriptPathLen, MAX_PATH-nScriptPathLen, szFile, nFileLen); - *(szTemp + newLen) = 0; - - return PathCanonicalizeA(szFullFileName, szTemp); -} - -enum ATLSRV_STATE -{ - ATLSRV_STATE_BEGIN, // The request has just arrived, and the type has not been determined - ATLSRV_STATE_CONTINUE, // The request is a continuation of an async request - ATLSRV_STATE_DONE, // The request is a continuation of an async request, but the server is done with it - ATLSRV_STATE_CACHE_DONE // The request is the callback of a cached page -}; - -enum ATLSRV_REQUESTTYPE -{ - ATLSRV_REQUEST_UNKNOWN=-1, // The request type isn't known yet - ATLSRV_REQUEST_STENCIL, // The request is for a .srf file - ATLSRV_REQUEST_DLL // The request is for a .dll file -}; - -// Flags the InitRequest can return in dwStatus -#define ATLSRV_INIT_USECACHE 1 -#define ATLSRV_INIT_USEASYNC 2 -#define ATLSRV_INIT_USEASYNC_EX 4 // required for use of NOFLUSH status - -typedef HTTP_CODE (IRequestHandler::*PFnHandleRequest)(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider); -typedef void (*PFnAsyncComplete)(AtlServerRequest *pRequestInfo, DWORD cbIO, DWORD dwError); - -struct AtlServerRequest -{ - DWORD cbSize; // For future compatibility - IHttpServerContext *pServerContext; // Necessary because it wraps the ECB - ATLSRV_REQUESTTYPE dwRequestType; // See the ATLSRV variables above - // Indicates whether it was called through an .srf file or through a .dll file - ATLSRV_STATE dwRequestState; // See the ATLSRV variables above - // Indicates what state of completion the request is in - IRequestHandler *pHandler; // Necessary because the callback (for async calls) must know where to - // route the request - HINSTANCE hInstDll; // Necessary in order to release the dll properly (for async calls) - IIsapiExtension *pExtension; // Necessary to requeue the request (for async calls) - IDllCache* pDllCache; // Necessary to release the dll in async callback - - HANDLE hFile; - HCACHEITEM hEntry; - IFileCache* pFileCache; - - HANDLE m_hMutex; // necessary to syncronize calls to HandleRequest - // if HandleRequest could potientially make an - // async call before returning. only used - // if indicated with ATLSRV_INIT_USEASYNC_EX - - DWORD dwStartTicks; // Tick count when the request was received - EXTENSION_CONTROL_BLOCK *pECB; - PFnHandleRequest pfnHandleRequest; - PFnAsyncComplete pfnAsyncComplete; - LPCSTR pszBuffer; // buffer to be flushed asyncronously - DWORD dwBufferLen; // length of data in pszBuffer - void* pUserData; // value that can be used to pass user data between parent and child handlers -}; - -inline void _ReleaseAtlServerRequest(__inout AtlServerRequest* pRequest) -{ - ATLENSURE(pRequest!=NULL); - if (pRequest->pHandler) - pRequest->pHandler->Release(); - if (pRequest->pServerContext) - pRequest->pServerContext->Release(); - if (pRequest->pDllCache && pRequest->hInstDll) - pRequest->pDllCache->ReleaseModule(pRequest->hInstDll); - if (pRequest->m_hMutex) - CloseHandle(pRequest->m_hMutex); -} - -typedef BOOL (__stdcall *GETATLHANDLERBYNAME)(LPCSTR szHandlerName, IIsapiExtension *pExtension, IUnknown **ppHandler); -typedef BOOL (__stdcall *INITIALIZEATLHANDLERS)(IHttpServerContext*, IIsapiExtension*); -typedef void (__stdcall *UNINITIALIZEATLHANDLERS)(); - -// initial size of thread worker heap (per thread) -// The heap is growable. The default initial is 16KB -#ifndef ATLS_WORKER_HEAP_SIZE -#define ATLS_WORKER_HEAP_SIZE 16384 -#endif - -class CIsapiWorker -{ -public: - typedef AtlServerRequest* RequestType; - HANDLE m_hHeap; -#ifndef ATL_NO_SOAP - CComPtr m_spReader; -#endif - - CIsapiWorker() throw() - { - m_hHeap = NULL; - } - - virtual ~CIsapiWorker() throw() - { - ATLASSUME(m_hHeap == NULL); - } - - virtual BOOL Initialize(__inout __crt_typefix(IIsapiExtension*) void *pvParam) - { - IIsapiExtension* pExtension = (IIsapiExtension*) pvParam; - ATLENSURE(pExtension); - if (!(pExtension->OnThreadAttach())) - return FALSE; - - m_hHeap = HeapCreate(HEAP_NO_SERIALIZE, ATLS_WORKER_HEAP_SIZE, 0); - if (!m_hHeap) - return FALSE; -#ifndef ATL_NO_SOAP - if (FAILED(m_spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER ))) - { - ATLASSERT( FALSE ); - ATLTRACE( atlTraceISAPI, 0, _T("MSXML3 is not installed -- web services will not work.") ); - } -#endif - return pExtension->SetThreadWorker(this); - } - - virtual void Terminate(__inout_opt __crt_typefix(IIsapiExtension*) void* pvParam) throw() - { - if (m_hHeap) - { - if (HeapDestroy(m_hHeap)) - m_hHeap = NULL; - else - { - ATLASSERT(FALSE); - } - } - -#ifndef ATL_NO_SOAP - m_spReader.Release(); -#endif - if (pvParam != NULL) - (static_cast(pvParam))->OnThreadTerminate(); - } - - void Execute(__inout AtlServerRequest *pRequestInfo, __inout __crt_typefix(IIsapiExtension*) void *pvParam, __reserved OVERLAPPED *pOverlapped) - { - ATLENSURE(pRequestInfo != NULL); - ATLENSURE(pvParam != NULL); - (pOverlapped); // unused - ATLASSUME(m_hHeap != NULL); - // any exceptions thrown at this point should have been caught in an - // override of DispatchStencilCall. They will not be thrown out of this - // function. - _ATLTRY - { - (static_cast(pvParam))->DispatchStencilCall(pRequestInfo); - } - _ATLCATCHALL() - { - ATLTRACE(_T("Warning. An uncaught exception was thrown from DispatchStencilCall\n")); - ATLASSERT(FALSE); - } - } - - virtual BOOL GetWorkerData(DWORD /*dwParam*/, void ** /*ppvData*/) throw() - { - return FALSE; - } -}; - -inline void _AtlGetScriptPathTranslated( - __in LPCSTR szPathTranslated, - __inout CFixedStringT& strScriptPathTranslated) -{ - ATLENSURE(szPathTranslated!=NULL); - LPCSTR szEnd = szPathTranslated; - - while (TRUE) - { - while (*szEnd != '.' && *szEnd != '\0') - szEnd++; - if (*szEnd == '\0') - break; - - szEnd++; - - size_t nLen(0); - if (!AsciiStrnicmp(szEnd, c_AtlDLLExtension+1, ATLS_DLL_EXTENSION_LEN)) - nLen = ATLS_DLL_EXTENSION_LEN; - else if (!AsciiStrnicmp(szEnd, c_AtlSRFExtension+1, ATLS_EXTENSION_LEN)) - nLen = ATLS_EXTENSION_LEN; - - if (nLen) - { - szEnd += nLen; - if (!*szEnd || *szEnd == '/' || *szEnd == '\\' || *szEnd == '?' || *szEnd == '#') - break; - } - } - - DWORD dwResult = (DWORD)(szEnd - szPathTranslated); - char *szScriptPathTranslated = NULL; - ATLTRY(szScriptPathTranslated = strScriptPathTranslated.GetBuffer(dwResult)); - if (szScriptPathTranslated) - { - Checked::memcpy_s(szScriptPathTranslated, dwResult, szPathTranslated, dwResult); - szScriptPathTranslated[dwResult] = '\0'; - strScriptPathTranslated.ReleaseBuffer(dwResult); - } -} - - -struct CStencilState -{ - CStencilState() throw() - { - dwIndex = 0; - locale = CP_ACP; - pIncludeInfo = NULL; - pParentInfo = NULL; - } - - DWORD dwIndex; - LCID locale; - AtlServerRequest* pIncludeInfo; - AtlServerRequest* pParentInfo; -}; - -class CWrappedServerContext: - public IHttpServerContext -{ -public: - CComPtr m_spParent; - - CWrappedServerContext() throw() - { - } - - virtual ~CWrappedServerContext() throw() - { - } - - CWrappedServerContext(__in IHttpServerContext *pParent) throw() - { - m_spParent = pParent; - } - - LPCSTR GetRequestMethod() - { - ATLENSURE(m_spParent); - return m_spParent->GetRequestMethod(); - } - - LPCSTR GetQueryString() - { - ATLENSURE(m_spParent); - return m_spParent->GetQueryString(); - } - - LPCSTR GetPathInfo() - { - ATLENSURE(m_spParent); - return m_spParent->GetPathInfo(); - } - - LPCSTR GetScriptPathTranslated() - { - ATLENSURE(m_spParent); - return m_spParent->GetScriptPathTranslated(); - } - - LPCSTR GetPathTranslated() - { - ATLENSURE(m_spParent); - return m_spParent->GetPathTranslated(); - } - - DWORD GetTotalBytes() - { - ATLENSURE(m_spParent); - return m_spParent->GetTotalBytes(); - } - - DWORD GetAvailableBytes() - { - ATLENSURE(m_spParent); - return m_spParent->GetAvailableBytes(); - } - - BYTE *GetAvailableData() - { - ATLENSURE(m_spParent); - return m_spParent->GetAvailableData(); - } - - LPCSTR GetContentType() - { - ATLENSURE(m_spParent); - return m_spParent->GetContentType(); - } - - __checkReturn BOOL GetServerVariable(__in_z LPCSTR pszVariableName, __out_ecount_part(*pdwSize,*pdwSize) LPSTR pvBuffer, __inout DWORD *pdwSize) - { - ATLENSURE(m_spParent); - return m_spParent->GetServerVariable(pszVariableName, pvBuffer, pdwSize); - } - - __checkReturn BOOL WriteClient(__in_bcount(*pdwBytes) void *pvBuffer, __inout DWORD *pdwBytes) - { - ATLENSURE(m_spParent); - return m_spParent->WriteClient(pvBuffer, pdwBytes); - } - - __checkReturn BOOL AsyncWriteClient(__in_bcount(*pdwBytes) void * pvBuffer, __inout DWORD * pdwBytes) - { - ATLENSURE(m_spParent); - return m_spParent->AsyncWriteClient(pvBuffer, pdwBytes); - } - - __checkReturn BOOL ReadClient(__out_bcount_part(*pdwSize,*pdwSize) void * pvBuffer, __inout DWORD * pdwSize) - { - ATLENSURE(m_spParent); - return m_spParent->ReadClient(pvBuffer, pdwSize); - } - - __checkReturn BOOL AsyncReadClient(__out_bcount_part(*pdwSize,*pdwSize) void * pvBuffer, __inout DWORD * pdwSize) - { - ATLENSURE(m_spParent); - return m_spParent->AsyncReadClient(pvBuffer, pdwSize); - } - - __checkReturn BOOL SendRedirectResponse(__in LPCSTR pszRedirectUrl) - { - ATLENSURE(m_spParent); - return m_spParent->SendRedirectResponse(pszRedirectUrl); - } - - __checkReturn BOOL GetImpersonationToken(__out HANDLE * pToken) - { - ATLENSURE(m_spParent); - return m_spParent->GetImpersonationToken(pToken); - } - - __checkReturn BOOL SendResponseHeader(__in LPCSTR pszHeader, __in LPCSTR pszStatusCode, __in BOOL fKeepConn) - { - ATLENSURE(m_spParent); - return m_spParent->SendResponseHeader(pszHeader, pszStatusCode, fKeepConn); - } - - __checkReturn BOOL DoneWithSession(__in DWORD dwHttpStatusCode) - { - ATLENSURE(m_spParent); - return m_spParent->DoneWithSession(dwHttpStatusCode); - } - - __checkReturn BOOL RequestIOCompletion(__in PFN_HSE_IO_COMPLETION pfn, DWORD * pdwContext) - { - ATLENSURE(m_spParent); - return m_spParent->RequestIOCompletion(pfn, pdwContext); - } - - BOOL TransmitFile(__in HANDLE hFile, __in_opt PFN_HSE_IO_COMPLETION pfn, void * pContext, - __in LPCSTR szStatusCode, __in DWORD dwBytesToWrite, __in DWORD dwOffset, __in_bcount_opt(dwHeadLen) void * pvHead, - __in DWORD dwHeadLen, __in_bcount_opt(dwTailLen) void * pvTail, __in DWORD dwTailLen, __in DWORD dwFlags) - { - ATLENSURE(m_spParent); - return m_spParent->TransmitFile(hFile, pfn, pContext, szStatusCode, - dwBytesToWrite, dwOffset, pvHead, dwHeadLen, pvTail, dwTailLen, - dwFlags); - } - - BOOL AppendToLog(__in LPCSTR szMessage, __in_opt DWORD* pdwLen) - { - ATLENSURE(m_spParent); - return m_spParent->AppendToLog(szMessage, pdwLen); - } - - BOOL MapUrlToPathEx(__in_bcount(dwLen) LPCSTR szLogicalPath, __in DWORD dwLen, __out HSE_URL_MAPEX_INFO *pumInfo) - { - ATLENSURE(m_spParent); - return m_spParent->MapUrlToPathEx(szLogicalPath, dwLen, pumInfo); - } -}; // class CWrappedServerContext - -// Wraps the EXTENSION_CONTROL_BLOCK structure used by IIS to provide -// an ISAPI extension with information about the current request and -// access to the web server's functionality. -class CServerContext : - public CComObjectRootEx, - public IHttpServerContext -{ -public: - BEGIN_COM_MAP(CServerContext) - COM_INTERFACE_ENTRY(IHttpServerContext) - END_COM_MAP() - - CServerContext() throw() - { - m_pECB = NULL; - m_bHeadersHaveBeenSent = false; - } - virtual ~CServerContext() throw() - { - } - - void Initialize(__in EXTENSION_CONTROL_BLOCK *pECB) - { - ATLENSURE(pECB); - m_pECB = pECB; - - // Initialize the translated script path - _AtlGetScriptPathTranslated(GetPathTranslated(), m_strScriptPathTranslated); - } - - // Returns a nul-terminated string that contains the HTTP method of the current request. - // Examples of common HTTP methods include "GET" and "POST". - // Equivalent to the REQUEST_METHOD server variable or EXTENSION_CONTROL_BLOCK::lpszMethod. - LPCSTR GetRequestMethod() - { - ATLENSURE(m_pECB); - return m_pECB->lpszMethod; - } - - // Returns a nul-terminated string that contains the query information. - // This is the part of the URL that appears after the question mark (?). - // Equivalent to the QUERY_STRING server variable or EXTENSION_CONTROL_BLOCK::lpszQueryString. - LPCSTR GetQueryString() - { - ATLENSURE(m_pECB); - return m_pECB->lpszQueryString; - } - - // Returns a nul-terminated string that contains the path of the current request. - // This is the part of the URL that appears after the server name, but before the query string. - // Equivalent to the PATH_INFO server variable or EXTENSION_CONTROL_BLOCK::lpszPathInfo. - LPCSTR GetPathInfo() - { - ATLENSURE(m_pECB); - return m_pECB->lpszPathInfo; - } - - // Call this function to retrieve a nul-terminated string containing the physical path of the script. - // - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the - // buffer (including the nul-terminating byte). - // The script path is the same as GetPathTranslated up to the first .srf or .dll. - // For example, if GetPathTranslated returns "c:\inetpub\vcisapi\hello.srf\goodmorning", - // then this function returns "c:\inetpub\vcisapi\hello.srf". - LPCSTR GetScriptPathTranslated() - { - ATLASSUME(m_pECB); - return m_strScriptPathTranslated; - } - - - // Returns a nul-terminated string that contains the translated path of the requested resource. - // This is the path of the resource on the local server. - // Equivalent to the PATH_TRANSLATED server variable or EXTENSION_CONTROL_BLOCK::lpszPathTranslated. - LPCSTR GetPathTranslated() - { - ATLENSURE(m_pECB); - return m_pECB->lpszPathTranslated; - } - - // Returns the total number of bytes to be received from the client. - // If this value is 0xffffffff, then there are four gigabytes or more of available data. - // In this case, ReadClient or AsyncReadClient should be called until no more data is returned. - // Equivalent to the CONTENT_LENGTH server variable or EXTENSION_CONTROL_BLOCK::cbTotalBytes. - DWORD GetTotalBytes() - { - ATLENSURE(m_pECB); - return m_pECB->cbTotalBytes; - } - - // Returns the number of bytes available in the request buffer accessible via GetAvailableData. - // If GetAvailableBytes returns the same value as GetTotalBytes, the request buffer contains the whole request. - // Otherwise, the remaining data should be read from the client using ReadClient or AsyncReadClient. - // Equivalent to EXTENSION_CONTROL_BLOCK::cbAvailable. - DWORD GetAvailableBytes() - { - ATLENSURE(m_pECB); - return m_pECB->cbAvailable; - } - - // Returns a pointer to the request buffer containing the data sent by the client. - // The size of the buffer can be determined by calling GetAvailableBytes. - // Equivalent to EXTENSION_CONTROL_BLOCK::lpbData - BYTE *GetAvailableData() - { - ATLENSURE(m_pECB); - return m_pECB->lpbData; - } - - // Returns a nul-terminated string that contains the content type of the data sent by the client. - // Equivalent to the CONTENT_TYPE server variable or EXTENSION_CONTROL_BLOCK::lpszContentType. - LPCSTR GetContentType() - { - ATLENSURE(m_pECB); - return m_pECB->lpszContentType; - } - - // Call this function to retrieve a nul-terminated string containing the value of the requested server variable. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - // Equivalent to EXTENSION_CONTROL_BLOCK::GetServerVariable. - __checkReturn BOOL GetServerVariable( - __in LPCSTR pszVariableName, - __out_ecount_part(*pdwSize,*pdwSize) LPSTR pvBuffer, - __inout DWORD *pdwSize) - { - ATLENSURE(m_pECB); - ATLASSERT(pszVariableName); - ATLASSERT(pdwSize); - - if (pszVariableName && pdwSize) - { - return m_pECB->GetServerVariable(m_pECB->ConnID, (LPSTR) pszVariableName, - pvBuffer, pdwSize); - } - return FALSE; - } - - // Synchronously sends the data present in the given buffer to the client that made the request. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::WriteClient(..., HSE_IO_SYNC). - __checkReturn BOOL WriteClient(__in_bcount(*pdwBytes) void *pvBuffer, __inout DWORD *pdwBytes) - { - ATLENSURE(m_pECB); - ATLASSERT(pvBuffer); - ATLASSERT(pdwBytes); - - if (pvBuffer && pdwBytes) - { - return m_pECB->WriteClient(m_pECB->ConnID, pvBuffer, pdwBytes, HSE_IO_SYNC | HSE_IO_NODELAY); - } - return FALSE; - } - - // Asynchronously sends the data present in the given buffer to the client that made the request. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::WriteClient(..., HSE_IO_ASYNC). - __checkReturn BOOL AsyncWriteClient(__in_bcount(*pdwBytes) void *pvBuffer, __inout DWORD *pdwBytes) - { - ATLENSURE(m_pECB); - ATLASSERT(pvBuffer); - ATLASSERT(pdwBytes); - - if (pvBuffer && pdwBytes) - { - return m_pECB->WriteClient(m_pECB->ConnID, pvBuffer, pdwBytes, HSE_IO_ASYNC | HSE_IO_NODELAY); - } - return FALSE; - } - - // Call this function to synchronously read information from the body of the web client's HTTP request into the buffer supplied by the caller. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::ReadClient. - __checkReturn BOOL ReadClient(__out_ecount_part(*pdwSize,*pdwSize) void *pvBuffer, __inout DWORD *pdwSize) - { - ATLENSURE(m_pECB); - ATLASSERT(pvBuffer); - ATLASSERT(pdwSize); - - if (pvBuffer && pdwSize) - { - return m_pECB->ReadClient(m_pECB->ConnID, pvBuffer, pdwSize); - } - return FALSE; - } - - // Call this function to asynchronously read information from the body of the web client's HTTP request into the buffer supplied by the caller. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to the HSE_REQ_ASYNC_READ_CLIENT server support function. - __checkReturn BOOL AsyncReadClient(__out_bcount_part(*pdwSize,*pdwSize) void *pvBuffer, __inout DWORD *pdwSize) - { - // To call this function successfully someone has to have already - // called RequestIOCompletion specifying the callback function - // to be used for IO completion. - ATLENSURE(m_pECB); - ATLASSERT(pvBuffer); - ATLASSERT(pdwSize); - - if (pvBuffer && pdwSize) - { - DWORD dwFlag = HSE_IO_ASYNC; - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_ASYNC_READ_CLIENT, pvBuffer, pdwSize, - &dwFlag); - } - return FALSE; - } - - // Call this function to redirect the client to the specified URL. - // The client receives a 302 (Found) HTTP status code. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_SEND_URL_REDIRECT_RESP server support function. - __checkReturn BOOL SendRedirectResponse(__in LPCSTR pszRedirectUrl) - { - ATLENSURE(m_pECB); - ATLENSURE(pszRedirectUrl); - - if (pszRedirectUrl) - { - DWORD dwSize = (DWORD) strlen(pszRedirectUrl); - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_SEND_URL_REDIRECT_RESP, - (void *) pszRedirectUrl, &dwSize, NULL); - } - return FALSE; - } - - // Call this function to retrieve a handle to the impersonation token for this request. - // An impersonation token represents a user context. You can use the handle in calls to ImpersonateLoggedOnUser or SetThreadToken. - // Do not call CloseHandle on the handle. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_GET_IMPERSONATION_TOKEN server support function. - __checkReturn BOOL GetImpersonationToken(__out HANDLE * pToken) - { - ATLENSURE(m_pECB); - if (pToken) - { - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_GET_IMPERSONATION_TOKEN, pToken, - NULL, NULL); - } - return FALSE; - } - - // Call this function to send an HTTP response header to the client including the HTTP status, server version, message time, and MIME version. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_SEND_RESPONSE_HEADER_EX server support function. - __checkReturn BOOL SendResponseHeader( - __in LPCSTR pszHeader = "Content-Type: text/html\r\n\r\n", - __in LPCSTR pszStatusCode = "200 OK", - __in BOOL fKeepConn=FALSE) - { - ATLENSURE(m_pECB); - - if (m_bHeadersHaveBeenSent) - return TRUE; - - HSE_SEND_HEADER_EX_INFO hex; - hex.pszStatus = pszStatusCode; - hex.pszHeader = pszHeader; - hex.cchStatus = (DWORD)(pszStatusCode ? strlen(pszStatusCode) : 0); - hex.cchHeader = (DWORD)(pszHeader ? strlen(pszHeader) : 0); - hex.fKeepConn = fKeepConn; - - m_bHeadersHaveBeenSent = true; - - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_SEND_RESPONSE_HEADER_EX, - &hex, NULL, NULL); - } - - // Call this function to terminate the session for the current request. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_DONE_WITH_SESSION server support function. - __checkReturn BOOL DoneWithSession(__in DWORD dwHttpStatusCode) - { - ATLENSURE(m_pECB); - - m_pECB->dwHttpStatusCode = dwHttpStatusCode; - - DWORD dwStatusCode = (dwHttpStatusCode >= 400) ? HSE_STATUS_ERROR : HSE_STATUS_SUCCESS; - - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_DONE_WITH_SESSION, &dwStatusCode, NULL, NULL); - } - - // Call this function to set a special callback function that will be used for handling the completion of asynchronous I/O operations. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_IO_COMPLETION server support function. - __checkReturn BOOL RequestIOCompletion(__in PFN_HSE_IO_COMPLETION pfn, DWORD *pdwContext) - { - ATLENSURE(m_pECB); - ATLASSERT(pfn); - - if (pfn) - { - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_IO_COMPLETION, pfn, NULL, pdwContext); - } - return FALSE; - } - - // Call this function to transmit a file asynchronously to the client. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_TRANSMIT_FILE server support function. - BOOL TransmitFile( - __in HANDLE hFile, - __in_opt PFN_HSE_IO_COMPLETION pfn, - void *pContext, - __in LPCSTR szStatusCode, - __in DWORD dwBytesToWrite, - __in DWORD dwOffset, - __in_bcount_opt(dwHeadLen) void *pvHead, - __in DWORD dwHeadLen, - __in_bcount_opt(dwTailLen) void *pvTail, - __in DWORD dwTailLen, - __in DWORD dwFlags) - { - ATLENSURE(m_pECB); - - HSE_TF_INFO tf; - tf.hFile = hFile; - tf.BytesToWrite = dwBytesToWrite; - tf.Offset = dwOffset; - tf.pContext = pContext; - tf.pfnHseIO = pfn; - tf.pHead = pvHead; - tf.HeadLength = dwHeadLen; - tf.pTail = pvTail; - tf.TailLength = dwTailLen; - tf.pszStatusCode = szStatusCode; - tf.dwFlags = dwFlags; - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_REQ_TRANSMIT_FILE, &tf, NULL, NULL); - } - - // Appends the string szMessage to the web server log for the current - // request. - // Returns TRUE on success, FALSE on failure. - // Equivalent to the HSE_APPEND_LOG_PARAMETER server support function. - BOOL AppendToLog(__in LPCSTR szMessage, __in_opt DWORD *pdwLen) - { - DWORD dwLen = 0; - if (!pdwLen) - { - if(!szMessage) - { - return FALSE; - } - dwLen = (DWORD)strlen(szMessage); - } - else - { - dwLen = *pdwLen; - } - - return m_pECB->ServerSupportFunction(m_pECB->ConnID, - HSE_APPEND_LOG_PARAMETER, (void *)szMessage, - &dwLen, NULL); - } - - // Maps a logical Url Path to a physical path - // Returns TRUE on success, FALSE on failure. - // Equivalent to the HSE_REQ_MAP_URL_TO_PATH_EX server support function. - // you can pass 0 for dwLen if szLogicalPath is null terminated - BOOL MapUrlToPathEx(__in_bcount(dwLen) LPCSTR szLogicalPath, __in DWORD dwLen, __out HSE_URL_MAPEX_INFO *pumInfo) - { - ATLENSURE(m_pECB!=NULL); - if (dwLen == 0) - dwLen = (DWORD) strlen(szLogicalPath); - return m_pECB->ServerSupportFunction(m_pECB->ConnID, HSE_REQ_MAP_URL_TO_PATH_EX, (void *) szLogicalPath, - &dwLen, (DWORD *) pumInfo); - } - -protected: - // The pointer to the extension control block provided by IIS. - EXTENSION_CONTROL_BLOCK *m_pECB; - bool m_bHeadersHaveBeenSent; - - // The translated script path - CFixedStringT m_strScriptPathTranslated; - -}; // class CServerContext - -class CPageCachePeer -{ -public: - - struct PeerInfo - { - CStringA strHeader; - CStringA strStatus; - }; - - static BOOL Add(__inout PeerInfo * pDest, __in PeerInfo * pSrc) throw() - { - _ATLTRY - { - PeerInfo *pIn = (PeerInfo *)pSrc; - pDest->strHeader = pIn->strHeader; - pDest->strStatus = pIn->strStatus; - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - static BOOL Remove(const PeerInfo * /*pDest*/) throw() - { - return TRUE; - } -}; - - -class CCacheServerContext : - public CComObjectRootEx, - public CWrappedServerContext, - public IPageCacheControl -{ -private: - - CAtlTemporaryFile m_cacheFile; - CComPtr m_spCache; - char m_szFullUrl[ATL_URL_MAX_URL_LENGTH + 1]; - FILETIME m_ftExpiration; - BOOL m_bIsCached; - CPageCachePeer::PeerInfo m_Headers; - -public: - - BEGIN_COM_MAP(CCacheServerContext) - COM_INTERFACE_ENTRY(IHttpServerContext) - COM_INTERFACE_ENTRY(IPageCacheControl) - END_COM_MAP() - - CCacheServerContext() throw() - { - } - virtual ~CCacheServerContext() throw() - { - } - - BOOL Initialize(__in IHttpServerContext *pParent, __in IFileCache *pCache) throw() - { - ATLASSERT(pParent); - ATLASSERT(pCache); - - if (pParent == NULL || pCache == NULL) - return FALSE; - - m_spParent = pParent; - m_spCache = pCache; - - if (FAILED(m_cacheFile.Create())) - return FALSE; - - LPCSTR szPathInfo = pParent->GetPathInfo(); - LPCSTR szQueryString = pParent->GetQueryString(); - if ( szPathInfo == NULL || szQueryString == NULL) - return FALSE; - - LPSTR szTo = m_szFullUrl; - int nSize = 0; - while (*szPathInfo && nSize < ATL_URL_MAX_URL_LENGTH) - { - *szTo++ = *szPathInfo++; - nSize++; - } - if (nSize >= ATL_URL_MAX_URL_LENGTH) - { - return FALSE; - } - *szTo++ = '?'; - nSize++; - while (*szQueryString && nSize < ATL_URL_MAX_URL_LENGTH) - { - *szTo++ = *szQueryString++; - nSize++; - } - if (nSize >= ATL_URL_MAX_URL_LENGTH) - { - return FALSE; - } - *szTo = '\0'; - - memset(&m_ftExpiration, 0x00, sizeof(FILETIME)); - m_bIsCached = TRUE; - - return TRUE; - } - - // IPageCacheControl methods - HRESULT GetExpiration(__out FILETIME *pftExpiration) throw() - { - ATLASSERT(pftExpiration); - if (!pftExpiration) - return E_INVALIDARG; - - *pftExpiration = m_ftExpiration; - - return S_OK; - } - - HRESULT SetExpiration(__in FILETIME ftExpiration) throw() - { - m_ftExpiration = ftExpiration; - - return S_OK; - } - - __checkReturn BOOL IsCached() throw() - { - return m_bIsCached; - } - - BOOL Cache(__in BOOL bCache) throw() - { - BOOL bRet = m_bIsCached; - m_bIsCached = bCache; - return bRet; - } - - __checkReturn BOOL WriteClient(__in_bcount(*pdwBytes) void *pvBuffer, __inout DWORD *pdwBytes) - { - ATLENSURE(pvBuffer); - ATLENSURE(pdwBytes); - - if (S_OK != m_cacheFile.Write(pvBuffer, *pdwBytes)) - return FALSE; - ATLENSURE(m_spParent); - return m_spParent->WriteClient(pvBuffer, pdwBytes); - } - - __checkReturn BOOL DoneWithSession(__in DWORD dwHttpStatusCode) - { - ATLENSURE(m_spParent); - - _ATLTRY - { - if (m_bIsCached) - { - CT2CA strFileName(m_cacheFile.TempFileName()); - m_cacheFile.HandsOff(); - m_spCache->AddFile(m_szFullUrl, strFileName, &m_ftExpiration, &m_Headers, NULL); - } - else - m_cacheFile.Close(); - } - _ATLCATCHALL() - { - m_cacheFile.Close(); - } - - return m_spParent->DoneWithSession(dwHttpStatusCode); - } - - __checkReturn BOOL GetImpersonationToken(__out HANDLE * pToken) - { - ATLTRACE(atlTraceISAPI, 0, _T("Getting impersonation token for cached page") - _T(" -- Caching a page that requires special privileges to build is a possible security problem. ") - _T("Future hits may get a cached page without going through the security checks done during the page creation process")); - ATLENSURE(m_spParent); - ATLASSERT(pToken); - return m_spParent->GetImpersonationToken(pToken); - } - - __checkReturn BOOL AppendToLog(__in LPCSTR szMessage, __in_opt DWORD* pdwLen) - { - ATLTRACE(atlTraceISAPI, 0, _T("Logging on cached page -- future hits will not log")); - ATLENSURE(m_spParent); - return m_spParent->AppendToLog(szMessage, pdwLen); - } - - __checkReturn BOOL SendResponseHeader( - __in LPCSTR pszHeader = "Content-Type: text/html\r\n\r\n", - __in LPCSTR pszStatusCode = "200 OK", - __in BOOL fKeepConn=FALSE) - { - ATLENSURE(m_spParent); - - m_Headers.strHeader = pszHeader; - m_Headers.strStatus = pszStatusCode; - - return m_spParent->SendResponseHeader(pszHeader, pszStatusCode, fKeepConn); - } - - // The methods below this point are actions that should not be performed on cached - // pages, as they will not behave correctly. - __checkReturn BOOL AsyncWriteClient(void * /*pvBuffer*/, DWORD * /*pdwBytes*/) - { - // Asynchronous calls will not work - ATLASSERT(FALSE); - return FALSE; - } - - __checkReturn BOOL ReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - // Nobody should be reading from this client if the page is being cached - // Also, only GET's are cached anyway - ATLASSERT(FALSE); - return FALSE; - } - - __checkReturn BOOL AsyncReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - ATLASSERT(FALSE); - return FALSE; - } - - __checkReturn BOOL SendRedirectResponse(LPCSTR /*pszRedirectUrl*/) - { - ATLASSERT(FALSE); - return FALSE; - } - - - __checkReturn BOOL RequestIOCompletion(PFN_HSE_IO_COMPLETION /*pfn*/, DWORD * /*pdwContext*/) - { - ATLASSERT(FALSE); - return FALSE; - } - - __checkReturn BOOL TransmitFile( - HANDLE /*hFile*/, - PFN_HSE_IO_COMPLETION /*pfn*/, - void * /*pContext*/, - LPCSTR /*szStatusCode*/, - DWORD /*dwBytesToWrite*/, - DWORD /*dwOffset*/, - void * /*pvHead*/, - DWORD /*dwHeadLen*/, - void * /*pvTail*/, - DWORD /*dwTailLen*/, - DWORD /*dwFlags*/) - { - ATLASSERT(FALSE); - return FALSE; - } -}; - - -// This class represents a collection of validation failures. -// Use this class in combination with CValidateObject to validate -// forms, cookies, or query strings and build up a collection of -// failures. If appropriate, use the information in the collection -// to return detailed responses to the client to help them correct the failures. - - -class CValidateContext -{ -public: - enum { ATL_EMPTY_PARAMS_ARE_FAILURES = 0x00000001 }; - - CValidateContext(__in DWORD dwFlags=0) throw() - { - m_bFailures = false; - m_dwFlags = dwFlags; - } - - bool SetResultAt(__in LPCSTR szName, __in DWORD type) - { - _ATLTRY - { - if (!VALIDATION_SUCCEEDED(type) || - (type == VALIDATION_S_EMPTY && (m_dwFlags & ATL_EMPTY_PARAMS_ARE_FAILURES))) - m_bFailures = true; - - return TRUE == m_results.SetAt(szName,type); - - } - _ATLCATCHALL() - { - } - - return false; - } - - // Call this function to add a validation result to the collection managed by this object. - // Each result is identified by a name and the type of result that occurred. - // The result codes are the VALIDATION_ codes defined at the top of this file. - // The bOnlyFailure parameter below is used to only allow failure results to - // be added to the list of failures. The reason you'd want to do this is that - // success codes should be the common case in validation routines so you can - // use bOnlyFailures to limit the number of allocations by this class's base - // map for mapping success results if you don't care about iterating successes. - - bool AddResult(__in LPCSTR szName, __in DWORD type, __in bool bOnlyFailures = true) throw() - { - _ATLTRY - { - if (!VALIDATION_SUCCEEDED(type) || - (type == VALIDATION_S_EMPTY && (m_dwFlags & ATL_EMPTY_PARAMS_ARE_FAILURES))) - m_bFailures = true; - - if (!bOnlyFailures) - return TRUE == m_results.Add(szName, type); // add everything - - else if (bOnlyFailures && - (!VALIDATION_SUCCEEDED(type) || - (type == VALIDATION_S_EMPTY && (m_dwFlags & ATL_EMPTY_PARAMS_ARE_FAILURES)))) - return TRUE == m_results.Add(szName, type); // only add failures - } - _ATLCATCHALL() - { - } - - return false; - } - - // Returns true if there are no validation failures in the collection, - // returns false otherwise. - __checkReturn bool ParamsOK() throw() - { - return !m_bFailures; - } - - // Returns the number of validation results in the collection. - __checkReturn int GetResultCount() throw() - { - return m_results.GetSize(); - } - - // Call this function to retrieve the name and type of a - // validation result based on its index in the collection. - // Returns true on success, false on failure. - // - // i The index of a result managed by this collection. - // - // strName On success, the name of the result with index i. - // - // type On success, the type of the result with index i. - __checkReturn bool GetResultAt(__in int i, __out CStringA& strName, __out DWORD& type) throw() - { - if ( i >= 0 && i < m_results.GetSize()) - { - _ATLTRY - { - strName = m_results.GetKeyAt(i); - type = m_results.GetValueAt(i); - } - _ATLCATCHALL() - { - return false; - } - return true; - } - return false; - } - - DWORD m_dwFlags; -protected: - CSimpleMap m_results; - bool m_bFailures; -}; // CValidateContext - - - -class CAtlValidator -{ -public: - template - static DWORD Validate( - __in T value, - __in TCompType nMinValue, - __in TCompType nMaxValue) throw() - { - DWORD dwRet = VALIDATION_S_OK; - if (value < static_cast(nMinValue)) - dwRet = VALIDATION_E_LENGTHMIN; - else if (value > static_cast(nMaxValue)) - dwRet = VALIDATION_E_LENGTHMAX; - return dwRet; - } - - static DWORD Validate( __in LPCSTR pszValue, __in int nMinChars, __in int nMaxChars) throw() - { - DWORD dwRet = VALIDATION_S_OK; - if(!pszValue) - { - return VALIDATION_E_FAIL; - } - int nChars = (int) strlen(pszValue); - if (nChars < nMinChars) - dwRet = VALIDATION_E_LENGTHMIN; - else if (nChars > nMaxChars) - dwRet = VALIDATION_E_LENGTHMAX; - return dwRet; - } - static DWORD Validate( __in double dblValue, __in double dblMinValue, __in double dblMaxValue) throw() - { - DWORD dwRet = VALIDATION_S_OK; - if ( dblValue < (dblMinValue - ATL_EPSILON) ) - dwRet = VALIDATION_E_LENGTHMIN; - else if ( dblValue > (dblMaxValue + ATL_EPSILON) ) - dwRet = VALIDATION_E_LENGTHMAX; - return dwRet; - } -}; - -// This class provides functions for retrieving and validating named values. -// -// The named values are expected to be provided in string form by the class used as -// the template parameter. CValidateObject provides the means of -// retrieving these values converted to data types chosen by you. You can validate the values -// by specifying a range for numeric values or by specifying a minimum and maximum length -// for string values. -// -// Call one of the Exchange overloads to retrieve a named value converted to your chosen data type. -// Call one of the Validate overloads to retrieve a named value converted to your chosen data type -// and validated against a minimum and maximum value or length supplied by you. -// -// To add validation functionality to the class TLookupClass, derive that class from CValidateObject -// and provide a Lookup function that takes a name as a string and returns the corresponding value -// also as a string: -// LPCSTR Lookup(LPCSTR szName); -template -class CValidateObject -{ -public: - // Exchange Routines - - // Call this function to retrieve a named value converted to your chosen data type. - // Returns one of the following validation status codes: - // VALIDATION_S_OK The named value was found and could be converted successfully - // VALIDATION_S_EMPTY The name was present, but the value was empty - // VALIDATION_E_PARAMNOTFOUND The named value was not found - // VALIDATION_E_INVALIDPARAM The name was present, but the value could not be converted to the requested data type - // VALIDATION_E_FAIL An unspecified error occurred - // Pass a pointer to a validation context object if you want to add - // failures to the collection managed by that object. - template - ATL_NOINLINE __checkReturn DWORD Exchange( - __in LPCSTR szParam, - __out T* pValue, - __inout_opt CValidateContext *pContext = NULL) const throw() - { - DWORD dwRet = VALIDATION_E_PARAMNOTFOUND; - if (pValue) - { - _ATLTRY - { - const TLookupClass *pT = static_cast(this); - LPCSTR szValue = pT->Lookup(szParam); - if (szValue) - { - if (*szValue=='\0') - dwRet = VALIDATION_S_EMPTY; - else - { - dwRet = ConvertNumber(szValue, pValue); - } - } - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - else - dwRet = VALIDATION_E_FAIL; // invalid input - - if (pContext) - pContext->AddResult(szParam, dwRet); - return dwRet; - } - - template<> - ATL_NOINLINE __checkReturn DWORD Exchange( - __in LPCSTR szParam, - __out_opt CString* pstrValue, - __in_opt CValidateContext *pContext) const throw() - { - _ATLTRY - { - LPCSTR pszValue = NULL; - DWORD dwRet = VALIDATION_E_PARAMNOTFOUND; - if (pstrValue) - { - dwRet = Exchange(szParam, &pszValue, pContext); - if (VALIDATION_SUCCEEDED(dwRet) && pstrValue != NULL) - *pstrValue = CA2T(pszValue); - } - else - { - dwRet = VALIDATION_E_FAIL; // invalid input - if (pContext) - pContext->AddResult(szParam, dwRet); - } - - return dwRet; - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - - template<> - ATL_NOINLINE __checkReturn DWORD Exchange( - __in LPCSTR szParam, - __deref_out_opt LPCSTR* ppszValue, - __inout_opt CValidateContext *pContext) const throw() - { - DWORD dwRet = VALIDATION_E_PARAMNOTFOUND; - if (ppszValue) - { - _ATLTRY - { - *ppszValue = NULL; - const TLookupClass *pT = static_cast(this); - LPCSTR szValue = pT->Lookup(szParam); - if (szValue) - { - if (*szValue=='\0') - dwRet = VALIDATION_S_EMPTY; - else - { - *ppszValue = szValue; - dwRet = VALIDATION_S_OK; - } - } - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - else - dwRet = VALIDATION_E_FAIL; // invalid input - - if (pContext) - pContext->AddResult(szParam, dwRet); - return dwRet; - } - - template<> - ATL_NOINLINE __checkReturn DWORD Exchange( - __in LPCSTR szParam, - __out GUID* pValue, - __inout_opt CValidateContext *pContext) const throw() - { - DWORD dwRet = VALIDATION_E_PARAMNOTFOUND; - if (pValue) - { - _ATLTRY - { - const TLookupClass *pT = static_cast(this); - LPCSTR szValue = pT->Lookup(szParam); - if (szValue) - { - if (*szValue=='\0') - dwRet = VALIDATION_S_EMPTY; - else - { - if (S_OK != CLSIDFromString(CA2W(szValue), pValue)) - { - dwRet = VALIDATION_E_INVALIDPARAM; - } - else - dwRet = VALIDATION_S_OK; - } - } - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - else - dwRet = VALIDATION_E_FAIL; // invalid input - - if (pContext) - pContext->AddResult(szParam, dwRet); - return dwRet; - } - - template<> - ATL_NOINLINE __checkReturn DWORD Exchange( - __in LPCSTR szParam, - __out bool* pbValue, - __inout_opt CValidateContext *pContext) const throw() - { - DWORD dwRet = VALIDATION_S_OK; - if (pbValue) - { - _ATLTRY - { - const TLookupClass *pT = static_cast(this); - LPCSTR szValue = pT->Lookup(szParam); - *pbValue = false; - if (szValue) - { - if (*szValue != '\0') - *pbValue = true; - } - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - else - dwRet = VALIDATION_E_FAIL; // invalid input - - if (pContext) - pContext->AddResult(szParam, dwRet); - - return dwRet; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out ULONGLONG *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - char *pEnd = NULL; - ULONGLONG n = 0; - errno_t errnoValue = AtlStrToNum(&n, szVal, &pEnd, 10); - if (pEnd == szVal || errnoValue == ERANGE) - { - return VALIDATION_E_INVALIDPARAM; - } - *pnVal = n; - return VALIDATION_S_OK; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out LONGLONG *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - char *pEnd = NULL; - LONGLONG n = 0; - errno_t errnoValue = AtlStrToNum(&n, szVal, &pEnd, 10); - if (pEnd == szVal || errnoValue == ERANGE) - { - return VALIDATION_E_INVALIDPARAM; - } - *pnVal = n; - return VALIDATION_S_OK; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out double *pdblVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pdblVal); - if (!pdblVal) - return VALIDATION_E_FAIL; - char *pEnd = NULL; - double d = 0.0; - errno_t errnoValue = AtlStrToNum(&d, szVal, &pEnd); - if (pEnd == szVal || errnoValue == ERANGE) - { - return VALIDATION_E_INVALIDPARAM; - } - *pdblVal = d; - return VALIDATION_S_OK; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out int *pnVal) const throw() - { - return ConvertNumber(szVal, (long*)pnVal); - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out unsigned int *pnVal) const throw() - { - return ConvertNumber(szVal, (unsigned long*)pnVal); - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out long *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - char *pEnd = NULL; - long n = 0; - errno_t errnoValue = AtlStrToNum(&n, szVal, &pEnd, 10); - if (pEnd == szVal || errnoValue == ERANGE) - { - return VALIDATION_E_INVALIDPARAM; - } - *pnVal = n; - return VALIDATION_S_OK; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out unsigned long *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - char *pEnd = NULL; - unsigned long n = 0; - errno_t errnoValue = AtlStrToNum(&n, szVal, &pEnd, 10); - if (pEnd == szVal || errnoValue == ERANGE) - { - return VALIDATION_E_INVALIDPARAM; - } - *pnVal = n; - return VALIDATION_S_OK; - } - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out short *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - long nVal = 0; - DWORD dwRet = ConvertNumber(szVal, &nVal); - if (dwRet == VALIDATION_S_OK) - { - // clamp to the size of a short - if(nVal <= SHRT_MAX && - nVal >= SHRT_MIN) - { - *pnVal = (short)nVal; - } - else - { - dwRet = VALIDATION_E_INVALIDPARAM; - } - } - return dwRet; - }; - - __checkReturn DWORD ConvertNumber(__in LPCSTR szVal, __out unsigned short *pnVal) const throw() - { - if (!szVal) - return VALIDATION_E_FAIL; - - ATLASSERT(pnVal); - if (!pnVal) - return VALIDATION_E_FAIL; - unsigned long nVal = 0; - DWORD dwRet = ConvertNumber(szVal, &nVal); - if (dwRet == VALIDATION_S_OK) - { - // clamp to the size of a short - if(nVal <= USHRT_MAX && - nVal >= 0) - { - *pnVal = (unsigned short)nVal; - } - else - { - dwRet = VALIDATION_E_INVALIDPARAM; - } - } - return dwRet; - }; - - // Call this function to retrieve a named value converted to your chosen data type - // and validated against a minimum and maximum value or length supplied by you. - // - // Returns one of the following validation status codes: - // VALIDATION_S_OK The named value was found and could be converted successfully - // VALIDATION_S_EMPTY The name was present, but the value was empty - // VALIDATION_E_PARAMNOTFOUND The named value was not found - // VALIDATION_E_INVALIDPARAM The name was present, but the value could not be converted to the requested data type - // VALIDATION_E_LENGTHMIN The name was present and could be converted to the requested data type, but the value was too small - // VALIDATION_E_LENGTHMAX The name was present and could be converted to the requested data type, but the value was too large - // VALIDATION_E_FAIL An unspecified error occurred - // - // Validate can be used to convert and validate name-value pairs - // such as those associated with HTTP requests (query string, form fields, or cookie values). - // The numeric specializations validate the minimum and maximum value. - // The string specializations validate the minimum and maximum length. - // - // Pass a pointer to a validation context object if you want to add - // failures to the collection managed by that object. - // - // Note that you can validate the value of a parameter without - // storing its value by passing NULL for the second parameter. However - // if you pass NULL for the second parameter, make sure you cast the NULL to a - // type so that the compiler will call the correct specialization of Validate. - template - ATL_NOINLINE __checkReturn DWORD Validate( - __in LPCSTR Param, - __out_opt T *pValue, - __in TCompType nMinValue, - __in TCompType nMaxValue, - __inout_opt CValidateContext *pContext = NULL) const throw() - { - T value; - DWORD dwRet = Exchange(Param, &value, pContext); - if ( dwRet == VALIDATION_S_OK ) - { - if (pValue) - *pValue = value; - dwRet = TValidator::Validate(value, nMinValue, nMaxValue); - if (pContext && dwRet != VALIDATION_S_OK) - pContext->AddResult(Param, dwRet); - } - else if (dwRet == VALIDATION_S_EMPTY && - !IsNullByType(nMinValue)) - { - dwRet = VALIDATION_E_LENGTHMIN; - if (pContext) - { - pContext->SetResultAt(Param, VALIDATION_E_LENGTHMIN); - } - } - - return dwRet; - } - - // Specialization for strings. Comparison is for number of characters. - template<> - ATL_NOINLINE __checkReturn DWORD Validate( - __in LPCSTR Param, - __deref_opt_out LPCSTR* ppszValue, - __in int nMinChars, - __in int nMaxChars, - __inout_opt CValidateContext *pContext) const throw() - { - LPCSTR pszValue = NULL; - DWORD dwRet = Exchange(Param, &pszValue, pContext); - if (dwRet == VALIDATION_S_OK ) - { - if (ppszValue) - *ppszValue = pszValue; - dwRet = TValidator::Validate(pszValue, nMinChars, nMaxChars); - if (pContext && dwRet != VALIDATION_S_OK) - pContext->AddResult(Param, dwRet); - } - else if (dwRet == VALIDATION_S_EMPTY && - nMinChars > 0) - { - dwRet = VALIDATION_E_LENGTHMIN; - if (pContext) - { - pContext->SetResultAt(Param, VALIDATION_E_LENGTHMIN); - } - } - - - return dwRet; - } - - // Specialization for CString so caller doesn't have to cast CString - template<> - ATL_NOINLINE __checkReturn DWORD Validate( - __in LPCSTR Param, - __out_opt CString* pstrValue, - __in int nMinChars, - __in int nMaxChars, - __inout_opt CValidateContext *pContext) const throw() - { - _ATLTRY - { - LPCSTR szValue; - DWORD dwRet = Validate(Param, &szValue, nMinChars, nMaxChars, pContext); - if (pstrValue && dwRet == VALIDATION_S_OK ) - *pstrValue = szValue; - return dwRet; - } - _ATLCATCHALL() - { - return VALIDATION_E_FAIL; - } - } - - // Specialization for doubles, uses a different comparison. - template<> - ATL_NOINLINE __checkReturn DWORD Validate( - __in LPCSTR Param, - __out_opt double* pdblValue, - __in double dblMinValue, - __in double dblMaxValue, - __inout_opt CValidateContext *pContext) const throw() - { - double dblValue; - DWORD dwRet = Exchange(Param, &dblValue, pContext); - if (dwRet == VALIDATION_S_OK) - { - if (pdblValue) - *pdblValue = dblValue; - dwRet = TValidator::Validate(dblValue, dblMinValue, dblMaxValue); - if (pContext && dwRet != VALIDATION_S_OK) - pContext->AddResult(Param, dwRet); - } - else if (dwRet == VALIDATION_S_EMPTY && - (dblMinValue < -ATL_EPSILON || - dblMinValue > ATL_EPSILON)) - { - dwRet = VALIDATION_E_LENGTHMIN; - if (pContext) - { - pContext->SetResultAt(Param, VALIDATION_E_LENGTHMIN); - } - } - return dwRet; - } -}; - -// Cookies provide a way for a server to store a small amount of data on a client -// and have that data returned to it on each request the client makes. -// Use this class to represent a cookie to be sent from the server to a client -// or to represent a cookie that has been returned by a client to the originating server. -// -// At the HTTP level, a cookie is an application-defined name-value pair -// plus some standard attribute-value pairs that describe the way in which the user agent (web browser) -// should interact with the cookie. The HTTP format of a cookie is described in RFC 2109. -// -// The CCookie class provides methods to set and get the application-defined name and value -// as well as methods for the standard attributes. In addition, CCookie provides an abstraction -// on top of the application-defined value that allows it to be treated as a collection of name-value -// pairs if that model makes sense to you. Cookies with a single value are known as single-valued cookies. -// Cookies whose value consists of name-value pairs are known as multi-valued cookies or dictionary cookies. -// -// You can set the name of a cookie by calling SetName or using the appropriate constructor. -// The name of a cookie can be 0 or more characters. -// -// You can set the value of a cookie by calling SetValue or using the appropriate constructor. -// If the cookie has a value set, it is a single-valued cookie and attempts to add a name-value pair will fail. -// You can remove the value of a cookie by calling SetValue(NULL). -// -// You can add a name-value pair to a cookie by calling AddValue. -// If the cookie has any name-value pairs, it is a multi-valued cookie and attempts to set the primary value will fail. -// You can remove all the name-value pairs of a cookie by calling RemoveAllValues. -// -// Class CCookie follows the same rules for creating cookies as ASP does. -class CCookie : - public CValidateObject -{ - typedef CAtlMap, - CStringElementTraits > mapType; - - const static DWORD ATLS_MAX_HTTP_DATE = 64; - -public: - // Constructs a named cookie. - CCookie(__in LPCSTR szName) throw(...) - { - ATLENSURE(SetName(szName)); - } - - // Constructs a single-valued cookie. - CCookie(__in LPCSTR szName, __in_opt LPCSTR szValue) throw(...) - { - ATLENSURE(SetName(szName)); - ATLENSURE(SetValue(szValue)); - } - - CCookie(__in const CCookie& thatCookie) throw(...) - { - Copy(thatCookie); - } - - CCookie& operator=(__in const CCookie& thatCookie) throw(...) - { - if(this!=&thatCookie) - { - return Copy(thatCookie); - } - return *this; - } - - CCookie() throw() - { - - } - - __checkReturn BOOL IsEmpty() const throw() - { - return m_strName.IsEmpty(); - } - - // Call this function to set the name of this cookie. - // Returns TRUE on success, FALSE on failure. - // The name of a cookie cannot contain whitespace, semicolons or commas. - // The name should not begin with a dollar sign ($) since such names are reserved for future use. - __checkReturn BOOL SetName(__in LPCSTR szName) throw() - { - _ATLTRY - { - if (szName && *szName) - { - m_strName = szName; - return TRUE; - } - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to retrieve the name of this cookie. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL GetName(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) const throw() - { - return CopyCString(m_strName, szBuff, pdwSize); - } - - // Call this function to retrieve the name of this cookie. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL GetName(__out CStringA &strName) const throw() - { - _ATLTRY - { - strName = m_strName; - return TRUE; - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to set the value of this cookie. - // Returns TRUE on success, FALSE on failure. - // Will fail if the cookie is multi-valued. - // Pass NULL to remove the cookie's value. - __checkReturn BOOL SetValue(__in_opt LPCSTR szValue) throw() - { - _ATLTRY - { - if (m_Values.GetCount()) - return FALSE; //already dictionary values in the cookie - - if (!szValue) - m_strValue.Empty(); - else - m_strValue = szValue; - - return TRUE; - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to retrieve the value of this cookie. - // Returns TRUE on success, FALSE on failure. - // Returns TRUE if there is no value or the value is of zero length. - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetValue(__out_ecount(*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) const throw() - { - return CopyCString(m_strValue, szBuff, pdwSize); - } - - // Call this function to retrieve the value of this cookie. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL GetValue(__out CStringA &strValue) const throw() - { - _ATLTRY - { - strValue = m_strValue; - return TRUE; - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to add a name-value pair to the cookie. - // Returns TRUE on success, FALSE on failure. - // Will fail if the cookie is single-valued. - // If the named value is already present in the cookie, calling this function - // will modify the current value, otherwise a new name-value pair is added to the cookie. - // Call RemoveValue or RemoveAllValues to remove the name-value pairs - // added by this function. - __checkReturn BOOL AddValue(__in LPCSTR szName, __in_opt LPCSTR szValue) throw() - { - if (m_strValue.GetLength()) - return FALSE; - _ATLTRY - { - return m_Values.SetAt(szName, szValue) != NULL; - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to modify a name-value pair associated with the cookie. - // Returns TRUE on success, FALSE on failure. - // Will fail if the cookie is single-valued. - // This function just calls AddValue so the name-value pair will be added if not already present. - // Use this function instead of AddValue to document the intentions of your call. - __checkReturn BOOL ModifyValue(__in LPCSTR szName, __in LPCSTR szValue) throw() - { - return AddValue(szName, szValue); - } - - // Call this function to remove a name-value pair from the collection managed by this cookie. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL RemoveValue(__in LPCSTR szName) throw() - { - return m_Values.RemoveKey(szName); - } - - // Call this function to remove all the name-value pairs from the collection managed by this cookie. - void RemoveAllValues() throw() - { - m_Values.RemoveAll(); - } - - // Call this function to add an attribute-value pair to the collection of attributes for this cookie. - // Returns TRUE on success, FALSE on failure. - // This function is equivalent to calling ModifyAttribute. - // Both functions will add the attribute if not already present or - // change its value if it has already been applied to the cookie. - __checkReturn BOOL AddAttribute(__in LPCSTR szName, __in LPCSTR szValue) throw() - { - if (!szName || !*szName || !szValue) - return FALSE; - - _ATLTRY - { - return (m_Attributes.SetAt(szName, szValue) != NULL); - } - _ATLCATCHALL() - { - } - return FALSE; - - } - - // Call this function to modify an attribute-value pair associated with the cookie. - // Returns TRUE on success, FALSE on failure. - // This function is equivalent to calling AddAttribute. - // Both functions will add the attribute if not already present or - // change its value if it has already been applied to the cookie. - __checkReturn BOOL ModifyAttribute(__in LPCSTR szName, __in LPCSTR szValue) throw() - { - return AddAttribute(szName, szValue); - } - - // Call this function to remove an attribute-value pair from the collection of attributes managed by this cookie. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL RemoveAttribute(__in LPCSTR szName) throw() - { - return m_Attributes.RemoveKey(szName); - } - - // Call this function to remove all the attribute-value pairs from the collection of attributes managed by this cookie. - void RemoveAllAttributes() throw() - { - m_Attributes.RemoveAll(); - } - - - // Call this function to set the Comment attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Comment attribute allows a web server to document its - // intended use of a cookie. This information may be displayed - // by supporting browsers so that the user of the web site can - // decide whether to initiate or continue a session with this cookie. - // This attribute is optional. - // Version 1 attribute. - __checkReturn BOOL SetComment(__in LPCSTR szComment) throw() - { - BOOL bRet = SetVersion(1); - if (bRet) - bRet = AddAttribute("comment", szComment); - return bRet; - } - - // Call this function to set the CommentUrl attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The CommentUrl attribute allows a web server to document its intended - // use of a cookie via a URL that the user of the web site can navigate to. - // The URL specified here should not send further cookies to the client to - // avoid frustrating the user. - // This attribute is optional. - // Version 1 attribute. - __checkReturn BOOL SetCommentUrl(__in LPCSTR szUrl) throw() - { - BOOL bRet = SetVersion(1); - if (bRet) - bRet = AddAttribute("commenturl", szUrl); - return bRet; - } - - // Call this function to add or remove the Discard attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Discard attribute does not have a value. - // Call SetDiscard(TRUE) to add the Discard attribute - // or SetDiscard(FALSE) to remove the Discard attribute. - // Setting the Discard attribute tells a web browser that it should - // discard this cookie when the browser exits regardless of the - // value of the Max-Age attribute. - // This attribute is optional. - // When omitted, the default behavior is that the Max-Age attribute - // controls the lifetime of the cookie. - // Version 1 attribute. - __checkReturn BOOL SetDiscard(__in BOOL bDiscard) throw() - { - BOOL bRet = FALSE; - LPCSTR szKey = "Discard"; - bRet = SetVersion(1); - if (bRet) - { - if (bDiscard == 0) - { - bRet = m_Attributes.RemoveKey(szKey); - } - else - { - _ATLTRY - { - bRet = m_Attributes.SetAt(szKey, " ") != 0; - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - } - return bRet; - } - - // Call this function to set the Domain attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Domain attribute is used to indicate the domain to which the current - // cookie applies. Browsers should only send cookies back to the relevant domains. - // This attribute is optional. - // When omitted, the default behavior is for - // browsers to use the full domain of the server originating the cookie. You can - // set this attribute value explicitly if you want to share cookies among several servers. - // Version 0 & Version 1 attribute. - __checkReturn BOOL SetDomain(__in LPCSTR szDomain) throw() - { - BOOL bRet = SetVersion(1); - if (bRet) - bRet = AddAttribute("domain", szDomain); - return bRet; - } - - // Call this function to set the Max-Age attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The value of the Max-Age attribute is a lifetime in seconds for the cookie. - // When the time has expired, compliant browsers will discard this cookie - // (if they haven't already done so as a result of the Discard attribute). - // If Max-Age is set to zero, the browser discards the cookie immediately. - // This attribute is the Version 1 replacement for the Expires attribute. - // This attribute is optional. - // When omitted, the default behavior is for browsers to discard cookies - // when the user closes the browser. - // Version 1 attribute. - __checkReturn BOOL SetMaxAge(__in UINT nMaxAge) throw() - { - BOOL bRet = FALSE; - bRet = SetVersion(1); - if (bRet) - { - CHAR buff[20]; - if (0 == _itoa_s(nMaxAge, buff, _countof(buff), 10)) - { - bRet = AddAttribute("max-age", buff); - } - } - return bRet; - } - - // Call this function to set the Path attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Path attribute specifies the subset of URLs to which this cookie applies. - // Only URLs that contain that path are allowed to read or modify the cookie. - // This attribute is optional. - // When omitted the default behavior is for browsers to treat the path of a cookie - // as the path of the request URL that generated the Set-Cookie response, up to, - // but not including, the right-most /. - // Version 0 & Version 1 attribute. - __checkReturn BOOL SetPath(__in LPCSTR szPath) throw() - { - BOOL bRet = SetVersion(1); - if (bRet) - bRet = AddAttribute("path", szPath); - return bRet; - } - - // Call this function to set the Port attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Port attribute specifies the port to which this cookie applies. - // Only URLs accessed via that port are allowed to read or modify the cookie. - // This attribute is optional. - // When omitted the default behavior is for browsers to return the cookie via any port. - // Version 1 attribute. - __checkReturn BOOL SetPort(__in LPCSTR szPort) throw() - { - BOOL bRet = SetVersion(1); - if (bRet) - bRet = AddAttribute("port", szPort); - return bRet; - } - - // Call this function to add or remove the Secure attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Secure attribute does not have a value. - // Call SetSecure(TRUE) to add the Secure attribute - // or SetSecure(FALSE) to remove the Secure attribute. - // Setting the Secure attribute tells a browser that it should - // transmit the cookie to the web server only via secure means such as HTTPS. - // This attribute is optional. - // When omitted, the default behavior is that the cookie - // will be sent via unsecured protocols. - // Version 0 & Version 1 attribute. - __checkReturn BOOL SetSecure(__in BOOL bSecure) throw() - { - BOOL bRet = FALSE; - LPCSTR szKey = "secure"; - bRet = SetVersion(1); - if (bRet) - { - if (bSecure == 0) - { - bRet = m_Attributes.RemoveKey(szKey); - } - else - { - _ATLTRY - { - bRet = m_Attributes.SetAt(szKey, " ") != 0; - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - } - return bRet; - } - - // Call this function to set the Version attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // This attribute is required for Version 1 cookies by RFC 2109 and must have a value of 1. - // However, you do not need to call SetVersion explicitly from your own code unless you need to - // force RFC 2109 compliance. CCookie will automatically set this attribute whenever - // you use a Version 1 attribute in your cookie. - // Version 1 attribute. - __checkReturn BOOL SetVersion(__in UINT nVersion) throw() - { - BOOL bRet = FALSE; - CHAR buff[20]; - if (0 == _itoa_s(nVersion, buff, _countof(buff), 10)) - { - bRet = AddAttribute("version", buff); - } - return bRet; - } - - // Call this function to set the Expires attribute of the cookie. - // Returns TRUE on success, FALSE on failure. - // The Expires attribute specifies an absolute date and time at which this cookie - // should be discarded by web browsers. Pass a SYSTEMTIME holding a Greenwich Mean Time (GMT) - // value or a string in the following format: - // Wdy, DD-Mon-YY HH:MM:SS GMT - // This attribute is optional. - // When omitted, the default behavior is for browsers to discard cookies - // when the user closes the browser. - // This attribute has been superceded in Version 1 by the Max-Age attribute, - // but you should continue to use this attribute for Version 0 clients. - // Version 0 attribute. - __checkReturn BOOL SetExpires(__in LPCSTR szExpires) throw() - { - return AddAttribute("expires", szExpires); - } - - __checkReturn BOOL SetExpires(__in const SYSTEMTIME &st) throw() - { - _ATLTRY - { - CFixedStringT strTime; - SystemTimeToHttpDate(st, strTime); - return SetExpires(strTime); - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to look up the value of a name-value pair applied to this cookie. - // Returns the requested value if present or NULL if the name was not found. - __checkReturn LPCSTR Lookup(__in_opt LPCSTR szName=NULL) const throw() - { - if (IsEmpty()) - return NULL; - - if (m_strValue.GetLength()) - { - ATLASSERT(szName == NULL); - return m_strValue; - } - - if (m_Values.GetCount()) - { - ATLENSURE_RETURN_VAL(szName, NULL); - const mapType::CPair *pPair = NULL; - ATLTRY(pPair = m_Values.Lookup(szName)); - if (pPair) - return (LPCSTR)pPair->m_value; - } - - return NULL; - } - - // Call this function to clear the cookie of all content - // including name, value, name-value pairs, and attributes. - void Empty() throw() - { - m_strName.Empty(); - m_strValue.Empty(); - m_Attributes.RemoveAll(); - m_Values.RemoveAll(); - } - - // Call this function to create a CCookie from a buffer. - // The passed in buffer contains a cookie header retrieved - // from the HTTP_COOKIE request variable - bool ParseValue(__in const char *pstart) - { - ATLASSERT(pstart); - if (!pstart || *pstart == '\0') - return false; - - // could be just a value or could be an array of name=value pairs - LPCSTR pEnd = pstart; - LPCSTR pStart = pstart; - CStringA name, value; - - while (*pEnd != '\0') - { - while (*pEnd && *pEnd != '=' && *pEnd != '&') - pEnd++; - - if (*pEnd == '\0' || *pEnd == '&') - { - if (pEnd > pStart) - CopyToCString(value, pStart, pEnd); - SetValue(value); - if (*pEnd == '&') - { - pEnd++; - pStart = pEnd; - continue; - } - return true; // we're done; - } - else if (*pEnd == '=' ) - { - // we have name=value - if (pEnd > pStart) - { - CopyToCString(name, pStart, pEnd); - } - else - { - pEnd++; - pStart = pEnd; - break; - } - - // skip '=' and go for value - pEnd++; - pStart = pEnd; - while (*pEnd && *pEnd != '&' && *pEnd != '=') - pEnd++; - if (pEnd > pStart) - CopyToCString(value, pStart, pEnd); - - ATLENSURE(AddValue(name, value)); - - if (*pEnd != '\0') - pEnd++; - pStart = pEnd; - - } - } - - return true; - } - - // Call this function to render this cookie - // into a buffer. Returns TRUE on success, FALSE on failure. - // On entry, pdwLen should point to a DWORD that indicates - // the size of the buffer in bytes. On exit, the DWORD contains - // the number of bytes transferred or available to be transferred - // into the buffer (including the nul-terminating byte). On - // success, the buffer will contain the correct HTTP - // representation of the current cookie suitable for sending to - // a client as the body of a Set-Cookie header. - __success(return==true) ATL_NOINLINE __checkReturn BOOL Render(__out_ecount_part_opt(*pdwLen,*pdwLen) LPSTR szCookieBuffer, __inout DWORD *pdwLen) const throw() - { - if (!pdwLen) - return FALSE; - CStringA strCookie; - CStringA name, value; - DWORD dwLenBuff = *pdwLen; - *pdwLen = 0; - - // A cookie must have a name! - if (!m_strName.GetLength()) - { - *pdwLen = 0; - return FALSE; - } - _ATLTRY - { - strCookie = m_strName; - int nValSize = (int) m_Values.GetCount(); - if (nValSize) - { - strCookie += '='; - POSITION pos = m_Values.GetStartPosition(); - for (int i=0; pos; i++) - { - m_Values.GetNextAssoc(pos, name, value); - strCookie += name; - if (value.GetLength()) - { - strCookie += '='; - strCookie += value; - } - if (i <= nValSize-2) - strCookie += '&'; - } - } - else - { - strCookie += '='; - if (m_strValue.GetLength()) - strCookie += m_strValue; - } - - CStringA strAttributes; - if (!RenderAttributes(strAttributes)) - return FALSE; - if (strAttributes.GetLength() > 0) - { - strCookie += "; "; - strCookie += strAttributes; - } - - DWORD dwLenCookie = strCookie.GetLength() + 1; - *pdwLen = dwLenCookie; - if (!szCookieBuffer) - return TRUE; // caller just wanted the length - - // see if buffer is big enough - if (dwLenCookie > dwLenBuff) - return FALSE; //buffer wasn't big enough - - // copy the buffer - Checked::strcpy_s(szCookieBuffer, *pdwLen, strCookie); - } - _ATLCATCHALL() - { - return FALSE; - } - return TRUE; - } - - POSITION GetFirstAttributePos() const throw() - { - return m_Attributes.GetStartPosition(); - } - - const CStringA& GetNextAttributeName(__inout POSITION& pos) const throw() - { - return m_Attributes.GetNextKey(pos); - } - - const CStringA& GetAttributeValueAt(__in POSITION pos) const throw() - { - return m_Attributes.GetValueAt(pos); - } - - BOOL GetNextAttrAssoc(__inout POSITION& pos, __out CStringA& key, - __out CStringA& val) const throw() - { - _ATLTRY - { - m_Attributes.GetNextAssoc(pos, key, val); - } - _ATLCATCHALL() - { - return FALSE; - } - return TRUE; - } - - POSITION GetFirstValuePos() const throw() - { - return m_Values.GetStartPosition(); - } - - const CStringA& GetNextValueName(__inout POSITION& pos) const throw() - { - return m_Values.GetNextKey(pos); - } - - const CStringA& GetValueAt(__in POSITION pos) const throw() - { - return m_Values.GetValueAt(pos); - } - - BOOL GetNextValueAssoc(__inout POSITION& pos, __out CStringA& key, - __out CStringA& val) const throw() - { - _ATLTRY - { - m_Values.GetNextAssoc(pos, key, val); - } - _ATLCATCHALL() - { - return FALSE; - } - return TRUE; - } - -protected: -// Implementation - BOOL RenderAttributes(__out CStringA& strAttributes) const throw() - { - _ATLTRY - { - strAttributes.Empty(); - - POSITION pos = m_Attributes.GetStartPosition(); - CStringA key, val; - for (int i=0; pos; i++) - { - if (i) - strAttributes += ";"; - m_Attributes.GetNextAssoc(pos, key, val); - strAttributes += key; - strAttributes += '='; - strAttributes += val; - } - } - _ATLCATCHALL() - { - return FALSE; - } - return TRUE; - } -private: - CCookie& Copy(__in const CCookie& thatCookie) throw(...) - { - m_strName = thatCookie.m_strName; - m_strValue = thatCookie.m_strValue; - POSITION pos = NULL; - CStringA strName, strValue; - if (!thatCookie.m_Attributes.IsEmpty()) - { - pos = thatCookie.m_Attributes.GetStartPosition(); - while (pos) - { - thatCookie.m_Attributes.GetNextAssoc(pos, strName, strValue); - m_Attributes.SetAt(strName, strValue); - } - } - if (!thatCookie.m_Values.IsEmpty()) - { - strName.Empty(); - strValue.Empty(); - pos = thatCookie.m_Values.GetStartPosition(); - while (pos) - { - thatCookie.m_Values.GetNextAssoc(pos, strName, strValue); - m_Values.SetAt(strName, strValue); - } - } - return *this; - } - - // Call this function to copy a substring to a CString reference and ensure nul-termination. - void CopyToCString(__out CStringA& string, __in_ecount(pEnd-pStart) LPCSTR pStart, __in LPCSTR pEnd) throw( ... ) - { - ATLENSURE( pStart != NULL ); - ATLENSURE( pEnd != NULL ); - - string.SetString(pStart, (int)(pEnd-pStart)); - string.Trim(); - } - - -public: - // These are implementation only, use at your own risk! - // Map of attribute-value pairs applied to this cookie. - mapType m_Attributes; - - // Map of name-value pairs applied to this cookie. - mapType m_Values; - - // The name of this cookie. - CStringA m_strName; - - // The value of this cookie. - CStringA m_strValue; - -}; // class CCookie - -class CSessionCookie : public CCookie -{ -public: - CSessionCookie() throw(...) - { - if (!SetName(SESSION_COOKIE_NAME) || - !SetPath("/")) - AtlThrow(E_OUTOFMEMORY); - } - - CSessionCookie(LPCSTR szSessionID) throw(...) - { - if (!SetName(SESSION_COOKIE_NAME) || - !SetPath("/") || - !SetSessionID(szSessionID) ) - AtlThrow(E_OUTOFMEMORY); - } - - BOOL SetSessionID(LPCSTR szSessionID) throw() - { - ATLASSERT(szSessionID && szSessionID[0]); - return SetValue(szSessionID); - } -}; // class CSessionCookie - -template<> -class CElementTraits< CCookie > : - public CElementTraitsBase< CCookie > -{ -public: - typedef const CCookie& INARGTYPE; - typedef CCookie& OUTARGTYPE; - - static ULONG Hash( __in INARGTYPE cookie ) - { - return CStringElementTraits::Hash( cookie.m_strName ); - } - - static bool CompareElements( __in INARGTYPE cookie1, __in INARGTYPE cookie2 ) - { - return( cookie1.m_strName == cookie2.m_strName ); - } - - static int CompareElementsOrdered( __in INARGTYPE cookie1, __in INARGTYPE cookie2 ) - { - return( cookie1.m_strName.Compare( cookie2.m_strName ) ); - } -}; - - -/////////////////////////////////////////////////////////////////////////////// -// Request and response classes and support functions - - -// This class is a wrapper for CAtlMap that allows maps to be chained. -// It simply adds a bool that tells whether or not a map shares values -template , typename VTraits=CElementTraits > -class CHttpMap -{ -private: - -#ifdef ATL_HTTP_PARAM_MULTIMAP - typedef CRBMultiMap MAPTYPE; -#else - typedef CAtlMap MAPTYPE; -#endif // ATL_HTTP_PARAM_MULTIMAP - -public: - - typedef typename KTraits::INARGTYPE KINARGTYPE; - typedef typename KTraits::OUTARGTYPE KOUTARGTYPE; - typedef typename VTraits::INARGTYPE VINARGTYPE; - typedef typename VTraits::OUTARGTYPE VOUTARGTYPE; - - typedef typename MAPTYPE::CPair CPair; - -private: - - bool m_bShared; - - MAPTYPE m_map; - -public: - - CHttpMap() throw() - : m_bShared(false) - { - } - - virtual ~CHttpMap() - { - } - - inline bool IsShared() const throw() - { - return m_bShared; - } - - inline void SetShared(__in bool bShared) throw() - { - m_bShared = bShared; - } - - // - // exposed lookup and iteration functionality - // - - inline size_t GetCount() const throw() - { - return m_map.GetCount(); - } - - inline bool IsEmpty() const throw() - { - return m_map.IsEmpty(); - } - - inline POSITION GetStartPosition() const throw() - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - return m_map.GetHeadPosition(); -#else - return m_map.GetStartPosition(); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - - // Lookup wrappers - bool Lookup( __in KINARGTYPE key, __out VOUTARGTYPE value ) const throw() - { - _ATLTRY - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - CPair *p = Lookup(key); - if (p != NULL) - { - value = p->m_value; - return true; - } - return false; -#else - return m_map.Lookup(key, value); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - _ATLCATCHALL() - { - return false; - } - } - - const CPair* Lookup( __in KINARGTYPE key ) const throw() - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - POSITION pos = m_map.FindFirstWithKey(key); - if (pos != NULL) - { - return m_map.GetAt(pos); - } - return NULL; -#else - return m_map.Lookup(key); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - - CPair* Lookup( __in KINARGTYPE key ) throw() - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - POSITION pos = m_map.FindFirstWithKey(key); - if (pos != NULL) - { - return m_map.GetAt(pos); - } - return NULL; -#else - return m_map.Lookup(key); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - - // iteration wrappers - void GetNextAssoc( __inout POSITION& pos, __out KOUTARGTYPE key, __out VOUTARGTYPE value ) const throw(...) - { - m_map.GetNextAssoc(pos, key, value); - } - - const CPair* GetNext( __inout POSITION& pos ) const throw() - { - return m_map.GetNext(pos); - } - - CPair* GetNext( __inout POSITION& pos ) throw() - { - return m_map.GetNext(pos); - } - - const K& GetNextKey( __inout POSITION& pos ) const throw() - { - return m_map.GetNextKey(pos); - } - - const V& GetNextValue( __inout POSITION& pos ) const throw() - { - return m_map.GetNextValue(pos); - } - - V& GetNextValue( __inout POSITION& pos ) throw() - { - return m_map.GetNextValue(pos); - } - - void GetAt( __in POSITION pos, __out KOUTARGTYPE key, __out VOUTARGTYPE value ) const throw(...) - { - return m_map.GetAt(pos, key, value); - } - - CPair* GetAt( __in POSITION pos ) throw() - { - return m_map.GetAt(pos); - } - - const CPair* GetAt( __in POSITION pos ) const throw() - { - return m_map.GetAt(pos); - } - - const K& GetKeyAt( __in POSITION pos ) const throw() - { - return m_map.GetKeyAt(pos); - } - - const V& GetValueAt( __in POSITION pos ) const throw() - { - return m_map.GetValueAt(pos); - } - - V& GetValueAt( __in POSITION pos ) throw() - { - return m_map.GetValueAt(pos); - } - - // modification wrappers - POSITION SetAt( __in KINARGTYPE key, __in_opt VINARGTYPE value ) throw(...) - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - return m_map.Insert(key, value); -#else - return m_map.SetAt(key, value); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - - bool RemoveKey( __in KINARGTYPE key ) throw() - { -#ifdef ATL_HTTP_PARAM_MULTIMAP - return (m_map.RemoveKey(key) != 0); -#else - return m_map.RemoveKey(key); -#endif // ATL_HTTP_PARAM_MULTIMAP - } - - virtual void RemoveAll() - { - m_map.RemoveAll(); - } -}; - -// This class is a wrapper for CHttpMap that assumes it's values are pointers that -// should be deleted on RemoveAll -template , typename VTraits=CElementTraits > -class CHttpPtrMap : public CHttpMap -{ -public: - typedef CHttpMap Base; - - void RemoveAll() - { - if (!IsShared()) - { - POSITION pos = GetStartPosition(); - while (pos) - { - GetNextValue(pos)->Free(); - } - } - Base::RemoveAll(); - } - - ~CHttpPtrMap() - { - RemoveAll(); - } -}; - -// This class represents a collection of request parameters - the name-value pairs -// found, for example, in a query string or in the data provided when a form is submitted to the server. -// Call Parse to build the collection from a string of URL-encoded data. -// Use the standard collection methods of the CHttpMap base class to retrieve the -// decoded names and values. -// Use the methods of the CValidateObject base class to validate the parameters. -class CHttpRequestParams : -#if (defined(ATL_HTTP_PARAM_MAP_CASEINSENSITIVE)) - public CHttpMap, CStringElementTraitsI >, -#else - public CHttpMap, CStringElementTraits >, -#endif - public CValidateObject -{ -public: -#if (defined(ATL_HTTP_PARAM_MAP_CASEINSENSITIVE)) - typedef CHttpMap, CStringElementTraitsI > BaseMap; -#else - typedef CHttpMap, CStringElementTraits > BaseMap; -#endif - - LPCSTR Lookup(__in LPCSTR szName) const throw() - { - _ATLTRY - { - if (!szName) - return NULL; - - const CPair *p = BaseMap::Lookup(szName); - if (p) - { - return p->m_value; - } - } - _ATLCATCHALL() - { - } - return NULL; - } - - // Call this function to build a collection of name-value pairs from a string of URL-encoded data. - // Returns TRUE on success, FALSE on failure. - // URL-encoded data: - // Each name-value pair is separated from the next by an ampersand (&) - // Each name is separated from its corresponding value by an equals signs (=) - // The end of the data to be parsed is indicated by a nul character (\0) or a pound symbol (#) - // A plus sign (+) in the input will be decoded as a space - // A percent sign (%) in the input signifies the start of an escaped octet. - // The next two digits represent the hexadecimal code of the character. - // For example, %21 is the escaped encoding for the US-ASCII exclamation mark and will be decoded as !. - // Common sources of URL-encoded data are query strings and the bodies of POST requests with content type of application/x-www-form-urlencoded. - // - // Parse and Render are complementary operations. - // Parse creates a collection from a string. - // Render creates a string from a collection. - ATL_NOINLINE __checkReturn BOOL Parse(__inout LPSTR szQueryString) throw() - { - while (szQueryString && *szQueryString) - { - LPSTR szUrlCurrent = szQueryString; - LPSTR szName = szUrlCurrent; - LPSTR szPropValue; - - while (*szQueryString) - { - if (*szQueryString == '=') - { - szQueryString++; - break; - } - if (*szQueryString == '&') - { - break; - } - if (*szQueryString == '+') - *szUrlCurrent = ' '; - else if (*szQueryString == '%') - { - // if there is a % without two characters - // at the end of the url we skip it - if (*(szQueryString+1) && *(szQueryString+2)) - { - short nFirstDigit = AtlHexValue(szQueryString[1]); - short nSecondDigit = AtlHexValue(szQueryString[2]); - - if( nFirstDigit < 0 || nSecondDigit < 0 ) - { - break; - } - *szUrlCurrent = static_cast(16*nFirstDigit+nSecondDigit); - szQueryString += 2; - } - else - *szUrlCurrent = '\0'; - } - else - *szUrlCurrent = *szQueryString; - - szQueryString++; - szUrlCurrent++; - } - - if (*szUrlCurrent == '&') - { - *szUrlCurrent++ = '\0'; - szQueryString++; - szPropValue = ""; - } - else - { - if (*szUrlCurrent) - *szUrlCurrent++ = '\0'; - - // we have the property name - szPropValue = szUrlCurrent; - while (*szQueryString && *szQueryString != '#') - { - if (*szQueryString == '&') - { - szQueryString++; - break; - } - if (*szQueryString == '+') - *szUrlCurrent = ' '; - else if (*szQueryString == '%') - { - // if there is a % without two characters - // at the end of the url we skip it - if (*(szQueryString+1) && *(szQueryString+2)) - { - short nFirstDigit = AtlHexValue(szQueryString[1]); - short nSecondDigit = AtlHexValue(szQueryString[2]); - - if( nFirstDigit < 0 || nSecondDigit < 0 ) - { - break; - } - *szUrlCurrent = static_cast(16*nFirstDigit+nSecondDigit); - szQueryString += 2; - } - else - *szUrlCurrent = '\0'; - } - else - *szUrlCurrent = *szQueryString; - szQueryString++; - szUrlCurrent++; - } - // we have the value - *szUrlCurrent = '\0'; - szUrlCurrent++; - } - - _ATLTRY - { - SetAt(szName, szPropValue); - } - _ATLCATCHALL() - { - return FALSE; - } - } - return TRUE; - } - - // Call this function to render the map of names and values into a buffer as a URL-encoded string. - // Returns TRUE on success, FALSE on failure. - // On entry, pdwLen should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - // On success, the buffer will contain the correct URL-encoded representation of the current object - // suitable for sending to a server as a query string or in the body of a form. - // URL-encoding: - // Each name-value pair is separated from the next by an ampersand (&) - // Each name is separated from its corresponding value by an equals signs (=) - // A space is encoded as a plus sign (+). - // Other unsafe characters (as determined by AtlIsUnsafeUrlChar) are encoded as escaped octets. - // An escaped octet is a percent sign (%) followed by two digits representing the hexadecimal code of the character. - // - // Parse and Render are complementary operations. - // Parse creates a collection from a string. - // Render creates a string from a collection. - ATL_NOINLINE __checkReturn BOOL Render(__out_ecount(pdwLen) LPSTR szParameters, __inout LPDWORD pdwLen) - { - ATLENSURE(szParameters); - ATLENSURE(pdwLen); - _ATLTRY - { - if (GetCount() == 0) - { - *szParameters = '\0'; - *pdwLen = 0; - return TRUE; - } - - CStringA strParams; - POSITION pos = GetStartPosition(); - while (pos != NULL) - { - LPCSTR szBuf = GetKeyAt(pos); - EscapeToCString(strParams, szBuf); - szBuf = GetValueAt(pos); - if (*szBuf) - { - strParams+= '='; - EscapeToCString(strParams, szBuf); - } - strParams+= '&'; - GetNext(pos); - } - - DWORD dwLen = strParams.GetLength(); - strParams.Delete(dwLen-1); - BOOL bRet = TRUE; - if (dwLen > *pdwLen) - { - bRet = FALSE; - } - else - { - dwLen--; - Checked::memcpy_s(szParameters, *pdwLen, static_cast(strParams), dwLen); - szParameters[dwLen] = '\0'; - } - - *pdwLen = dwLen; - return bRet; - } - _ATLCATCHALL() - { - return FALSE; - } - } - -}; // class CHttpRequestParams - -#ifndef MAX_TOKEN_LENGTH -#define MAX_TOKEN_LENGTH (MAX_PATH) -#endif - -// This class represents the information about a file that has been uploaded to the web server. -class CHttpRequestFile : public IHttpFile -{ -private: - - // The name of the form field used to upload the file. - CHAR m_szParamName[MAX_TOKEN_LENGTH]; - - // The original file name of the uploaded file as set by the client. - CHAR m_szFileName[MAX_PATH]; - - // The original path and file name of the uploaded file as set by the client. - CHAR m_szFullFileName[MAX_PATH]; - - // The MIME type of the uploaded file. - CHAR m_szContentType[MAX_TOKEN_LENGTH]; - - // The name of the uploaded file on the server. - CHAR m_szTempFileName[MAX_PATH]; - - // The size of the file in bytes. - ULONGLONG m_nFileSize; - -public: - - CHttpRequestFile() throw() - { - *m_szParamName = '\0'; - *m_szFileName = '\0'; - *m_szFullFileName = '\0'; - *m_szContentType = '\0'; - m_nFileSize = 0; - } - - __checkReturn BOOL Initialize( - __in_opt LPCSTR pParamName, - __in LPCSTR pFileName, - __in_opt LPCSTR pTempFileName, - __in_opt LPCSTR pContentType, - __in const ULONGLONG &nFileSize) - { - ATLENSURE( pFileName != NULL ); - - if (!SafeStringCopy(m_szFullFileName, pFileName)) - { - // path too long - return FALSE; - } - - if (pParamName && *pParamName) - { - if (!SafeStringCopy(m_szParamName, pParamName)) - { - // string too long - return FALSE; - } - } - - if (pTempFileName && *pTempFileName) - { - if (!SafeStringCopy(m_szTempFileName, pTempFileName)) - { - // path too long - return FALSE; - } - } - - if (pContentType && *pContentType) - { - if (!SafeStringCopy(m_szContentType, pContentType)) - { - // string too long - return FALSE; - } - } - - // Set m_szFileName to be the file name without the path. - // This is likely to be the most meaningful part of the - // original file name once the file reaches the server. - - LPSTR szTmp = m_szFullFileName; - LPSTR szFile = m_szFileName; - LPSTR pszLastCharFileBuf=m_szFileName + _countof(m_szFileName) - 1; - while (*szTmp) - { - if (*szTmp == '\\') - { - szFile = m_szFileName; - } - else - { - if (szFile > pszLastCharFileBuf) - { - return FALSE; - } - *szFile++ = *szTmp; - } - szTmp++; - } - if (szFile > pszLastCharFileBuf) - { - return FALSE; - } - *szFile = 0; - - m_nFileSize = nFileSize; - return TRUE; - } - - - //======================================= - // IHttpFile interface - //======================================= - __checkReturn LPCSTR GetParamName() - { - return m_szParamName; - } - - __checkReturn LPCSTR GetFileName() - { - return m_szFileName; - } - - __checkReturn LPCSTR GetFullFileName() - { - return m_szFullFileName; - } - - __checkReturn LPCSTR GetContentType() - { - return m_szContentType; - } - - __checkReturn LPCSTR GetTempFileName() - { - return m_szTempFileName; - } - - __checkReturn ULONGLONG GetFileSize() - { - return m_nFileSize; - } - - void Free() - { - delete this; - } - -}; // class CHttpRequestFile - - -// utility function to ReadData from a ServerContext -ATL_NOINLINE inline -__checkReturn BOOL ReadClientData(__inout IHttpServerContext *pServerContext, __out_ecount_part(*pdwLen,*pdwLen) LPSTR pbDest, __inout LPDWORD pdwLen, __in DWORD dwBytesRead) -{ - ATLENSURE(pServerContext != NULL); - ATLENSURE(pdwLen != NULL); - ATLENSURE(pbDest != NULL); - - _ATLTRY - { - DWORD dwToRead = *pdwLen; - DWORD dwAvailableBytes = pServerContext->GetAvailableBytes(); - DWORD dwRead(0); - - // Read from available data first - if (dwBytesRead < dwAvailableBytes) - { - LPBYTE pbAvailableData = pServerContext->GetAvailableData(); - pbAvailableData+= dwBytesRead; - DWORD dwAvailableToRead = __min(dwToRead, dwAvailableBytes-dwBytesRead); - Checked::memcpy_s(pbDest, *pdwLen, pbAvailableData, dwAvailableToRead); - dwBytesRead+= dwAvailableToRead; - dwToRead-= dwAvailableToRead; - pbDest+= dwAvailableToRead; - dwRead+= dwAvailableToRead; - } - - DWORD dwTotalBytes = pServerContext->GetTotalBytes(); - - // If there is still more to read after the available data is exhausted - if (dwToRead && dwBytesRead < dwTotalBytes) - { - DWORD dwClientBytesToRead = __min(pServerContext->GetTotalBytes()-dwBytesRead, dwToRead); - DWORD dwClientBytesRead = 0; - - // keep on reading until we've read the amount requested - do - { - dwClientBytesRead = dwClientBytesToRead; - if (!pServerContext->ReadClient(pbDest, &dwClientBytesRead)) - { - return FALSE; - } - dwClientBytesToRead-= dwClientBytesRead; - dwRead+= dwClientBytesRead; - pbDest+= dwClientBytesRead; - - } while (dwClientBytesToRead != 0 && dwClientBytesRead != 0); - - - } - - *pdwLen = dwRead; - } - _ATLCATCHALL() - { - return FALSE; - } - - return TRUE; -} - -#ifndef MAX_MIME_BOUNDARY_LEN - #define MAX_MIME_BOUNDARY_LEN 128 -#endif - -enum ATL_FORM_FLAGS -{ - ATL_FORM_FLAG_NONE = 0, - ATL_FORM_FLAG_IGNORE_FILES = 1, - ATL_FORM_FLAG_REFUSE_FILES = 2, - ATL_FORM_FLAG_IGNORE_EMPTY_FILES = 4, - ATL_FORM_FLAG_IGNORE_EMPTY_FIELDS = 8, -}; - -// Use this class to read multipart/form-data from the associated server context -// and generate files as necessary from the data in the body of the request. -class CMultiPartFormParser -{ -protected: - - LPSTR m_pCurrent; - LPSTR m_pEnd; - LPSTR m_pStart; - CHAR m_szBoundary[MAX_MIME_BOUNDARY_LEN+2]; - DWORD m_dwBoundaryLen; - BOOL m_bFinished; - CComPtr m_spServerContext; - -public: - - typedef CHttpMap > FILEMAPTYPE; - - CMultiPartFormParser(__in IHttpServerContext* pServerContext) throw() : - m_pCurrent(NULL), - m_pEnd(NULL), - m_pStart(NULL), - m_dwBoundaryLen(0), - m_bFinished(FALSE), - m_spServerContext(pServerContext) - { - *m_szBoundary = '\0'; - } - - ~CMultiPartFormParser() throw() - { - _ATLTRY - { - // free memory if necessary - if (m_spServerContext->GetTotalBytes() > m_spServerContext->GetAvailableBytes()) - { - free(m_pStart); - } - } - _ATLCATCHALL() - { - } - } - - // Call this function to read multipart/form-data from the current HTTP request, - // allowing files to be uploaded to the web server. - // - // Returns TRUE on success, FALSE on failure. - // - // Forms can be sent to a web server using one of two encodings: application/x-www-form-urlencoded or multipart/form-data. - // In addition to the simple name-value pairs typically associated with - // application/x-www-form-urlencoded form data, multipart/form-data (as - // described in RFC 2388) can also contain files to be uploaded - // to the web server. - // - // This function will generate a physical file for each file contained in the multipart/form-data request body. - // The generated files are stored in the server's temporary directory as returned by the - // GetTempPath API and are named using the GetTempFileName API. - // The information about each file can be obtained from the elements of the Files array. - // You can retrieve the original name of the file on the client, the name of the generated file on the server, - // the MIME content type of the uploaded file, the name of the form field associated with that file, and the size in - // bytes of the file. All this information is exposed by the CHttpRequestFile objects in the array. - // - // In addition to generating files and populating the Files array with information about them, - // this function also populates the pQueryParams array with the names and values of the other form fields - // contained in the current request. The file fields are also added to this array. The value of these fields - // is the full name of the generated file on the server. - // - // Note that files can be generated even if this function returns FALSE unless you specify either the - // ATL_FORM_FLAG_IGNORE_FILES or the ATL_FORM_FLAG_REFUSE_FILES flag. If you don't specify one of these - // flags, you should always check the Files array for generated files and delete any that are no longer - // needed to prevent your web server from running out of disk space. - // - // dwFlags can be a combination of one or more of the following values: - // ATL_FORM_FLAG_NONE Default behavior. - // ATL_FORM_FLAG_IGNORE_FILES Any attempt to upload files is ignored. - // ATL_FORM_FLAG_REFUSE_FILES Any attempt to upload files is treated as a failure. The function will return FALSE. - // ATL_FORM_FLAG_IGNORE_EMPTY_FILES Files with a size of zero bytes are ignored. - // ATL_FORM_FLAG_IGNORE_EMPTY_FIELDS Fields with no content are ignored. - ATL_NOINLINE BOOL GetMultiPartData( - __inout FILEMAPTYPE& Files, - __inout CHttpRequestParams* pQueryParams, - __in DWORD dwFlags=ATL_FORM_FLAG_NONE) throw() - { - _ATLTRY - { - if (!InitializeParser()) - { - return FALSE; - } - - //Get to the first boundary - if (!ReadUntilBoundary()) - { - return FALSE; - } - - CStringA strParamName; - CStringA strFileName; - CStringA strContentType; - CStringA strData; - BOOL bFound; - - while (!m_bFinished) - { - // look for "name" field - if (!GetMimeData(strParamName, "name=", sizeof("name=")-1, &bFound, TRUE) || !bFound) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - // see if it's a file - if (!GetMimeData(strFileName, "filename=", sizeof("filename=")-1, &bFound, TRUE)) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - if (bFound) - { - if (dwFlags & ATL_FORM_FLAG_REFUSE_FILES) - { - return FALSE; - } - - if (!strFileName.GetLength()) - { - if(!ReadUntilBoundary()) - { - return FALSE; - } - continue; - } - - if (!GetMimeData(strContentType, "Content-Type:", sizeof("Content-Type:")-1, &bFound, TRUE)) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - // move to the actual uploaded data - if (!MoveToData()) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - // if the user doesn't want files, don't save the file - if (dwFlags & ATL_FORM_FLAG_IGNORE_FILES) - { - if (!ReadUntilBoundary(NULL, NULL)) - { - return FALSE; - } - continue; - } - - CAtlTemporaryFile ctf; - HRESULT hr = ctf.Create(); - if (hr != S_OK) - return FALSE; - - if (!ReadUntilBoundary(NULL, &ctf)) - { - ctf.Close(); - return FALSE; - } - ULONGLONG nFileSize = 0; - if (ctf.GetSize(nFileSize) != S_OK) - return FALSE; - - if ((dwFlags & ATL_FORM_FLAG_IGNORE_EMPTY_FILES) && nFileSize == 0) - { - ctf.Close(); - continue; - } - - CAutoPtr spFile; - - CT2AEX szTempFileNameA(ctf.TempFileName()); - - ATLTRY(spFile.Attach(new CHttpRequestFile())); - if (!spFile) - { - return FALSE; - } - - if (!spFile->Initialize(strParamName, strFileName, szTempFileNameA, strContentType, nFileSize)) - { - // one of the strings was too long - return FALSE; - } - - if (!Files.SetAt(szTempFileNameA, spFile)) - { - return FALSE; - } - - spFile.Detach(); - - if (!pQueryParams || !pQueryParams->SetAt(strParamName, szTempFileNameA)) - { - return FALSE; - } - - ctf.HandsOff(); - - continue; - } - - // move to the actual uploaded data - if (!MoveToData()) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - if (!ReadUntilBoundary(&strData)) - { - return FALSE; - } - - if ((dwFlags & ATL_FORM_FLAG_IGNORE_EMPTY_FIELDS) && strData.GetLength() == 0) - continue; - - if (!pQueryParams || !pQueryParams->SetAt(strParamName, strData)) - { - return FALSE; - } - - } - - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - -private: - - // implementation - - // case insensitive substring search -- does not handle multibyte characters (unlike tolower) - // allows searching up to a maximum point in a string - inline char AtlCharLower(__in char ch) throw() - { - if (ch > 64 && ch < 91) - { - return ch+32; - } - - return ch; - } - - inline __checkReturn char * _stristr (__in const char * str1, __in const char * str2) - { - ATLENSURE(str1!=NULL); - ATLENSURE(str2!=NULL); - char *cp = (char *) str1; - char *s1, *s2; - - if ( !*str2 ) - return((char *)str1); - - while (*cp) - { - s1 = cp; - s2 = (char *) str2; - - while ( *s1 && *s2 && !(AtlCharLower(*s1)-AtlCharLower(*s2)) ) - { - s1++, s2++; - } - - if (!*s2) - { - return(cp); - } - - cp++; - } - - return(NULL); - } - - - inline __checkReturn char * _stristrex (__in const char * str1, __in const char * str2, __in const char * str1End) - { - ATLENSURE(str1!=NULL); - ATLENSURE(str2!=NULL); - char *cp = (char *) str1; - char *s1, *s2; - - if ( !*str2 ) - return((char *)str1); - - while (cp != str1End) - { - s1 = cp; - s2 = (char *) str2; - - while ( s1 != str1End && *s2 && !(AtlCharLower(*s1)-AtlCharLower(*s2)) ) - { - s1++, s2++; - } - - if (!*s2) - { - return (cp); - } - - if (s1 == str1End) - { - return (NULL); - } - - cp++; - } - - return(NULL); - } - - inline __checkReturn char * _strstrex (__in const char * str1, __in const char * str2, __in const char * str1End) - { - ATLENSURE(str1!=NULL); - ATLENSURE(str2!=NULL); - char *cp = (char *) str1; - char *s1, *s2; - - if ( !*str2 ) - return((char *)str1); - - while (cp != str1End) - { - s1 = cp; - s2 = (char *) str2; - - while ( s1 != str1End && *s2 && !((*s1)-(*s2)) ) - { - s1++, s2++; - } - - if (!*s2) - { - return (cp); - } - - if (s1 == str1End) - { - return (NULL); - } - - cp++; - } - - return(NULL); - } - - ATL_NOINLINE __checkReturn BOOL InitializeParser() throw() - { - ATLASSUME( m_spServerContext != NULL ); - - _ATLTRY - { - DWORD dwBytesTotal = m_spServerContext->GetTotalBytes(); - - // if greater than bytes available, allocate necessary space - if (dwBytesTotal > m_spServerContext->GetAvailableBytes()) - { - m_pStart = (LPSTR) malloc(dwBytesTotal); - if (!m_pStart) - { - return FALSE; - } - m_pCurrent = m_pStart; - DWORD dwLen = dwBytesTotal; - if (!ReadClientData(m_spServerContext, m_pStart, &dwLen, 0) || dwLen != dwBytesTotal) - { - return FALSE; - } - } - else - { - m_pStart = (LPSTR) m_spServerContext->GetAvailableData(); - } - - m_pCurrent = m_pStart; - m_pEnd = m_pCurrent + dwBytesTotal; - - //get the boundary - LPCSTR pszContentType = m_spServerContext->GetContentType(); - ATLASSERT(pszContentType != NULL); - - LPCSTR pszTmp = _stristr(pszContentType, "boundary="); - if (!pszTmp) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed Form-Data")); - return FALSE; - } - - pszTmp += sizeof("boundary=")-1; - BOOL bInQuote = FALSE; - if (*pszTmp == '\"') - { - bInQuote = TRUE; - pszTmp++; - } - - LPSTR pszMimeBoundary = m_szBoundary; - *pszMimeBoundary++ = '-'; - *pszMimeBoundary++ = '-'; - m_dwBoundaryLen = 2; - while (*pszTmp && (bInQuote || IsStandardBoundaryChar(*pszTmp))) - { - if (m_dwBoundaryLen >= MAX_MIME_BOUNDARY_LEN) - { - ATLTRACE(atlTraceISAPI, 0, _T("Malformed MIME boundary")); - return FALSE; - } - - if (*pszTmp == '\r' || *pszTmp == '\n') - { - if (bInQuote) - { - pszTmp++; - continue; - } - break; - } - if (bInQuote && *pszTmp == '"') - { - break; - } - - *pszMimeBoundary++ = *pszTmp++; - m_dwBoundaryLen++; - } - - *pszMimeBoundary = '\0'; - } - _ATLCATCHALL() - { - return FALSE; - } - - return TRUE; - } - - inline __checkReturn BOOL MoveToData() throw() - { - LPSTR szEnd = _strstrex(m_pCurrent, "\r\n\r\n", m_pEnd); - if (!szEnd) - { - return FALSE; - } - - m_pCurrent = szEnd+4; - if (m_pCurrent >= m_pEnd) - { - return FALSE; - } - - return TRUE; - } - - inline __checkReturn BOOL GetMimeData(__inout CStringA &str, __in_ecount(dwFieldLen) LPCSTR szField, __in DWORD dwFieldLen, __out LPBOOL pbFound, __in BOOL bIgnoreCase = FALSE) throw() - { - _ATLTRY - { - ATLASSERT( szField != NULL ); - ATLENSURE( pbFound != NULL ); - - *pbFound = FALSE; - - LPSTR szEnd = _strstrex(m_pCurrent, "\r\n\r\n", m_pEnd); - if (!szEnd) - { - return FALSE; - } - - LPSTR szDataStart = NULL; - - if (!bIgnoreCase) - { - szDataStart = _strstrex(m_pCurrent, szField, szEnd); - } - else - { - szDataStart = _stristrex(m_pCurrent, szField, szEnd); - } - - if (szDataStart) - { - szDataStart+= dwFieldLen; - if (szDataStart >= m_pEnd) - { - return FALSE; - } - - BOOL bInQuote = FALSE; - if (*szDataStart == '\"') - { - bInQuote = TRUE; - szDataStart++; - } - - LPSTR szDataEnd = szDataStart; - while (!bInQuote && (szDataEnd < m_pEnd) && (*szDataEnd == ' ' || *szDataEnd == '\t')) - { - szDataEnd++; - } - - if (szDataEnd >= m_pEnd) - { - return FALSE; - } - - while (szDataEnd < m_pEnd) - { - if (!IsValidTokenChar(*szDataEnd)) - { - if (*szDataEnd == '\"' || !bInQuote) - { - break; - } - } - szDataEnd++; - } - - if (szDataEnd >= m_pEnd) - { - return FALSE; - } - - str.SetString(szDataStart, (int)(szDataEnd-szDataStart)); - *pbFound = TRUE; - } - - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - ATL_NOINLINE __checkReturn BOOL ReadUntilBoundary(__inout_opt CStringA* pStrData=NULL, __inout_opt CAtlTemporaryFile* pCtf=NULL) throw() - { - _ATLTRY - { - LPSTR szBoundaryStart = m_pCurrent; - LPSTR szBoundaryEnd = NULL; - - do - { - szBoundaryStart = _strstrex(szBoundaryStart, m_szBoundary, m_pEnd); - if (szBoundaryStart) - { - if ((szBoundaryStart-m_pStart) >= 2) - { - if (*(szBoundaryStart-1) != 0x0a || *(szBoundaryStart-2) != 0x0d) - { - szBoundaryStart++; - continue; - } - } - szBoundaryEnd = szBoundaryStart+m_dwBoundaryLen; - if (szBoundaryEnd+2 >= m_pEnd) - { - return FALSE; - } - if (szBoundaryEnd[0] == '\r' && szBoundaryEnd[1] == '\n') - { - break; - } - if (szBoundaryEnd[0] == '-' && szBoundaryEnd[1] == '-') - { - m_bFinished = TRUE; - break; - } - szBoundaryStart++; - } - } while (szBoundaryStart && szBoundaryStart < m_pEnd); - - if (!szBoundaryStart || szBoundaryStart >= m_pEnd) - { - return FALSE; - } - - if ((szBoundaryStart-m_pStart) >= 2) - { - szBoundaryStart-= 2; - } - if (pStrData) - { - pStrData->SetString(m_pCurrent, (int)(szBoundaryStart-m_pCurrent)); - } - if (pCtf) - { - if (FAILED(pCtf->Write(m_pCurrent, (DWORD)(szBoundaryStart-m_pCurrent)))) - { - return FALSE; - } - } - - if (!m_bFinished) - { - m_pCurrent = szBoundaryEnd+2; - if (m_pCurrent >= m_pEnd) - { - return FALSE; - } - } - - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - static inline __checkReturn BOOL IsStandardBoundaryChar(__in CHAR ch) throw() - { - if ( (ch >= 'A' && ch <= 'Z') || - (ch >= 'a' && ch <= 'z') || - (ch >= '0' && ch <= '9') || - (ch == '\'') || - (ch == '+') || - (ch == '_') || - (ch == '-') || - (ch == '=') || - (ch == '?') ) - { - return TRUE; - } - - return FALSE; - } - - inline __checkReturn BOOL IsValidTokenChar(__in CHAR ch) throw() - { - return ( (ch != 0) && (ch != 0xd) && (ch != 0xa) && (ch != ' ') && (ch != '\"') ); - } - -private: - // Prevents copying. - CMultiPartFormParser(__in const CMultiPartFormParser& /*that*/) throw() - { - ATLASSERT(FALSE); - } - - const CMultiPartFormParser& operator=(__in const CMultiPartFormParser& /*that*/) throw() - { - ATLASSERT(FALSE); - return (*this); - } -}; // class CMultiPartFormParser - - -// 48K max form size -#ifndef DEFAULT_MAX_FORM_SIZE -#define DEFAULT_MAX_FORM_SIZE 49152 -#endif - -// This class provides access to the information contained in an HTTP request submitted to a web server. -// -// CHttpRequest provides access to the query string parameters, form fields, cookies, and files -// that make up an HTTP request, as well as many other important properties of the request. -class CHttpRequest : public IHttpRequestLookup -{ -protected: - // Implementation: Array used to map an HTTP request method (for example, "GET" or "POST") - // from a string to a numeric constant from the HTTP_METHOD enum (HTTP_METHOD_GET or HTTP_METHOD_HEAD). - static const char* const m_szMethodStrings[]; - - // Implementation: The server context. - CComPtr m_spServerContext; - - // Implementation: The number of bytes read from the body of the request. - DWORD m_dwBytesRead; - - // Implementation: TRUE if the request method was POST and the encoding was - // multipart/form-data, FALSE otherwise. - BOOL m_bMultiPart; - - CCookie m_EmptyCookie; - - // Implementation: Constructor function used to reinitialize all data members. - void Construct() throw() - { - m_spServerContext.Release(); - m_bMultiPart = FALSE; - m_dwBytesRead = 0; - if (m_pFormVars != &m_QueryParams) - delete m_pFormVars; - - m_pFormVars = NULL; - m_pFormVars = &m_QueryParams; - m_QueryParams.RemoveAll(); - m_QueryParams.SetShared(false); - - ClearFilesAndCookies(); - } - - void ClearFilesAndCookies() throw() - { - m_Files.RemoveAll(); - m_Files.SetShared(false); - m_requestCookies.RemoveAll(); - m_requestCookies.SetShared(false); - } - -public: - - // Implementation: The collection of query parameters (name-value pairs) obtained from the query string. - CHttpRequestParams m_QueryParams; - - // Implementation: The collection of form fields (name-value pairs). - // The elements of this collection are obtained from the query string for a GET request, - // or from the body of the request for a POST request. - CHttpRequestParams *m_pFormVars; - - // The array of CHttpRequestFiles obtained from the current request. - // See CHttpRequest::Initialize and CMultiPartFormParser::GetMultiPartData for more information. - typedef CHttpPtrMap > FileMap; - FileMap m_Files; - - // Implementation: The array of cookies obtained from the current request. - typedef CHttpMap > CookieMap; - CookieMap m_requestCookies; - - // Numeric constants for the HTTP request methods (such as GET and POST). - enum HTTP_METHOD - { - HTTP_METHOD_UNKNOWN=-1, - HTTP_METHOD_GET, - HTTP_METHOD_POST, - HTTP_METHOD_HEAD, - HTTP_METHOD_DELETE, - HTTP_METHOD_LINK, - HTTP_METHOD_UNLINK, - HTTP_METHOD_DEBUG // Debugging support for VS7 - }; - - // The collection of query parameters (name-value pairs) obtained from the query string. - // A read-only property. - __declspec(property(get=GetQueryParams)) const CHttpRequestParams& QueryParams; - - // Returns a reference to the collection of query parameters(name-value pairs) - // obtained from the query string. - const CHttpRequestParams& GetQueryParams() const throw() - { - return m_QueryParams; - } - - // The collection of form fields (name-value pairs). - // The elements of this collection are obtained from the query string for a GET request, - // or from the body of the request for a POST request. - // A read-only property. - __declspec(property(get=GetFormVars)) const CHttpRequestParams& FormVars; - - // Returns a reference to the collection of form fields (name-value pairs) - // obtained from the query string for a GET request, - // or from the body of the request for a POST request. - const CHttpRequestParams& GetFormVars() const throw() - { - return *m_pFormVars; - } - - CHttpRequest() throw() - { - m_bMultiPart = FALSE; - m_dwBytesRead = 0; - m_pFormVars = &m_QueryParams; - } - - virtual ~CHttpRequest() throw() - { - DeleteFiles(); - - if (m_pFormVars != &m_QueryParams) - { - delete m_pFormVars; - m_pFormVars = NULL; - } - } - - // Constructs and initializes the object. - CHttpRequest( - __in IHttpServerContext *pServerContext, - __in DWORD dwMaxFormSize=DEFAULT_MAX_FORM_SIZE, - __in DWORD dwFlags=ATL_FORM_FLAG_NONE) throw(...) - :m_pFormVars(NULL) - { - Construct(); - if (!Initialize(pServerContext, dwMaxFormSize, dwFlags)) - AtlThrow(E_FAIL); - } - - CHttpRequest(__in IHttpRequestLookup *pRequestLookup) throw(...) - :m_pFormVars(NULL) - { - if (!Initialize(pRequestLookup)) // Calls Construct for you - AtlThrow(E_FAIL); - } - - //========================================================================================= - // BEGIN IHttpRequestLoookup interface - //========================================================================================= - __success(return != NULL) __checkReturn POSITION GetFirstQueryParam(__deref_out LPCSTR *ppszName, __deref_out LPCSTR *ppszValue) - { - POSITION pos = m_QueryParams.GetStartPosition(); - if (pos != NULL) - { - ATLENSURE(ppszName != NULL); - ATLENSURE(ppszValue != NULL); - *ppszName = m_QueryParams.GetKeyAt(pos); - *ppszValue = m_QueryParams.GetValueAt(pos); - } - - return pos; - } - - __success(return != NULL) __checkReturn POSITION GetNextQueryParam(__in POSITION pos, __deref_out LPCSTR *ppszName, __deref_out LPCSTR *ppszValue) - { - ATLENSURE(pos != NULL); - - - POSITION posNext(pos); - m_QueryParams.GetNext(posNext); - if (posNext != NULL) - { - ATLENSURE(ppszName != NULL); - ATLENSURE(ppszValue != NULL); - *ppszName = m_QueryParams.GetKeyAt(posNext); - *ppszValue = m_QueryParams.GetValueAt(posNext); - } - - return posNext; - } - - __success(return != NULL) __checkReturn POSITION GetFirstFormVar(__deref_out LPCSTR *ppszName, __deref_out LPCSTR *ppszValue) - { - // if no form vars and just pointing to the query params, - // then return NULL - if (m_pFormVars == &m_QueryParams) - return NULL; - - POSITION pos = m_pFormVars->GetStartPosition(); - if (pos != NULL) - { - ATLENSURE(ppszName != NULL); - ATLENSURE(ppszValue != NULL); - *ppszName = m_pFormVars->GetKeyAt(pos); - *ppszValue = m_pFormVars->GetValueAt(pos); - } - - return pos; - } - - __success(return != NULL) __checkReturn POSITION GetNextFormVar(__in POSITION pos, __deref_out LPCSTR *ppszName, __deref_out LPCSTR *ppszValue) - { - ATLASSERT(pos != NULL); - ATLASSERT(ppszName != NULL); - ATLASSERT(ppszValue != NULL); - - POSITION posNext(pos); - m_pFormVars->GetNext(posNext); - if (posNext != NULL) - { - *ppszName = m_pFormVars->GetKeyAt(posNext); - *ppszValue = m_pFormVars->GetValueAt(posNext); - } - - return posNext; - } - - POSITION GetFirstFile(__in LPCSTR *ppszName, __deref_out IHttpFile **ppFile) - { - ATLASSERT(ppszName != NULL); - ATLASSERT(ppFile != NULL); - - POSITION pos = m_Files.GetStartPosition(); - if (pos != NULL) - { - *ppszName = m_Files.GetKeyAt(pos); - *ppFile = m_Files.GetValueAt(pos); - } - - return pos; - } - - __success(return != NULL) __checkReturn POSITION GetNextFile(__in POSITION pos, __deref_out LPCSTR *ppszName, __deref_out IHttpFile **ppFile) - { - ATLASSERT(pos != NULL); - ATLASSERT(ppszName != NULL); - ATLASSERT(ppFile != NULL); - - m_Files.GetNext(pos); - if (pos != NULL) - { - *ppszName = m_Files.GetKeyAt(pos); - *ppFile = m_Files.GetValueAt(pos); - } - - return pos; - } - - // Returns a pointer to the IHttpServerContext interface for the current request. - HRESULT GetServerContext(__deref_out_opt IHttpServerContext ** ppOut) - { - return m_spServerContext.CopyTo(ppOut); - } - //========================================================================================= - // END IHttpRequestLookup interface - //========================================================================================= - - __success(return != NULL) __checkReturn POSITION GetFirstCookie(__deref_out LPCSTR *ppszName, __deref_out const CCookie **ppCookie) throw() - { - ATLASSERT(ppszName != NULL); - ATLASSERT(ppCookie != NULL); - POSITION pos = NULL; - if (GetRequestCookies()) - { - pos = m_requestCookies.GetStartPosition(); - if (pos != NULL) - { - *ppszName = m_requestCookies.GetKeyAt(pos); - *ppCookie = &(m_requestCookies.GetValueAt(pos)); - } - } - return pos; - } - - __success(return != NULL) __checkReturn POSITION GetNextCookie(__in POSITION pos, __deref_out LPCSTR *ppszName, __deref_out const CCookie **ppCookie) throw() - { - ATLASSERT(pos != NULL); - ATLASSERT(ppszName != NULL); - ATLASSERT(ppCookie != NULL); - - POSITION posNext(pos); - m_requestCookies.GetNext(posNext); - if (posNext != NULL) - { - *ppszName = m_requestCookies.GetKeyAt(posNext); - *ppCookie = &(m_requestCookies.GetValueAt(posNext)); - } - return posNext; - } - - void SetServerContext(__in IHttpServerContext *pServerContext) throw() - { - m_spServerContext = pServerContext; - } - - BOOL Initialize(__in IHttpRequestLookup *pRequestLookup) throw() - { - _ATLTRY - { - ATLASSERT(pRequestLookup != NULL); - // if there's no pRequestLookup, just return - if (!pRequestLookup) - return TRUE; - - Construct(); - HRESULT hr = pRequestLookup->GetServerContext(&m_spServerContext); - if (FAILED(hr)) - return FALSE; - - LPCSTR szName(NULL); - LPCSTR szValue(NULL); - - // Initialize query params from the IHttpRequestLookup* - POSITION pos(pRequestLookup->GetFirstQueryParam(&szName, &szValue)); - while (pos != NULL) - { - m_QueryParams.SetAt(szName, szValue); - pos = pRequestLookup->GetNextQueryParam(pos, &szName, &szValue); - } - m_QueryParams.SetShared(true); - - // Initialize the form vars from the IHttpRequestLookup* - pos = pRequestLookup->GetFirstFormVar(&szName, &szValue); - if (pos) - { - m_pFormVars = NULL; - ATLTRY(m_pFormVars = new CHttpRequestParams); - if (!m_pFormVars) - return FALSE; - - while (pos != NULL) - { - m_pFormVars->SetAt(szName, szValue); - pos = pRequestLookup->GetNextFormVar(pos, &szName, &szValue); - } - m_pFormVars->SetShared(true); - } - else - { - m_pFormVars = &m_QueryParams; - } - - // Initialize the files from the IHttpRequestLookup* - IHttpFile *pFile(NULL); - pos = pRequestLookup->GetFirstFile(&szName, &pFile); - while (pos != NULL) - { - m_Files.SetAt(szName, pFile); - pos = pRequestLookup->GetNextFile(pos, &szName, &pFile); - } - m_Files.SetShared(true); - - // Initialzie the cookies form the IHttpRequestLookup* - BOOL bRet = FALSE; - CStringA strCookies; - bRet = GetCookies(strCookies); - if (bRet) - { - bRet = Parse(strCookies); - } - m_requestCookies.SetShared(false); - return bRet; - } // _ATLTRY - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to initialize the object with information about the current request. - // - // Returns TRUE on success, FALSE on failure. - // - // Call Initialize directly or via the appropriate constructor before using the methods and - // properties of the request object. - // - // Initialize does the following: - // - // Parses and decodes the query string into a collection of name-value pairs. - // This collection is accessible via the GetQueryParams method or the QueryParams property. - // - // Sets m_bMultiPart to TRUE if the request is a POST request with multipart/form-data encoding. - // - // Parses the body of a POST request if the size of the request data is less than or equal to dwMaxFormSize. - // The body of the request will consist of simple form fields and may also contain files if the request is encoded as multipart/form-data. - // In that case, the dwFlags parameter is passed to CMultiPartFormParser::GetMultiPartData to control the creation of the files. - // The collection of form fields is accessible via the GetFormVars method or the FormVars property. - // The collection of files is accessible via the m_Files member. - // - // Note that Initialize does not parse the cookies associated with a request. - // Cookies are not processed until an attempt is made to access a cookie in the collection. - BOOL Initialize( - __in IHttpServerContext *pServerContext, - __in DWORD dwMaxFormSize=DEFAULT_MAX_FORM_SIZE, - __in DWORD dwFlags=ATL_FORM_FLAG_NONE) throw() - { - _ATLTRY - { - ATLASSERT(pServerContext != NULL); - if (!pServerContext) - { - return FALSE; - } - - m_spServerContext = pServerContext; - - HTTP_METHOD httpMethod = GetMethod(); - LPCSTR pszQueryString = GetQueryString(); - if (pszQueryString && *pszQueryString) - { - // Parse the query string. - CHAR szQueryString[ATL_URL_MAX_URL_LENGTH]; - if (!SafeStringCopy(szQueryString, pszQueryString)) - { - return FALSE; - } - - if (!m_QueryParams.Parse(szQueryString)) - { - return FALSE; - } - } - - if (m_QueryParams.IsShared()) - { - return TRUE; - } - - // If this is a GET request, the collection of form fields - // is the same as the collection of query parameters. - if (httpMethod == HTTP_METHOD_GET) - { - m_pFormVars = &m_QueryParams; - return TRUE; - } - else if (httpMethod == HTTP_METHOD_POST) - { - LPCSTR szContentType = GetContentType(); - if (!szContentType) - return FALSE; - - // Don't parse the form data if the size is bigger than the maximum specified. - if (m_spServerContext->GetTotalBytes() > dwMaxFormSize) - { - if (strncmp(szContentType, "multipart/form-data", 19) == 0) - m_bMultiPart = TRUE; - - m_dwBytesRead = 0; - - return TRUE; - } - - // If POSTed data is urlencoded, call InitFromPost. - if (strncmp(szContentType, "application/x-www-form-urlencoded", 33) == 0 && !m_pFormVars->IsShared()) - return InitFromPost(); - - // If POSTed data is encoded as multipart/form-data, use CMultiPartFormParser. - if (strncmp(szContentType, "multipart/form-data", 19) == 0 && !m_pFormVars->IsShared()) - { - if (m_pFormVars != &m_QueryParams) - delete m_pFormVars; - m_pFormVars = NULL; - - CMultiPartFormParser FormParser(m_spServerContext); - ATLTRY(m_pFormVars = new CHttpRequestParams); - if (!m_pFormVars) - return FALSE; - - BOOL bRet = FormParser.GetMultiPartData(m_Files, m_pFormVars, dwFlags); - return bRet; - } - - // else initialize m_dwBytesRead for ReadData - m_dwBytesRead = 0; - } - - return TRUE; - } - _ATLCATCHALL() - { - } - return FALSE; - - } - - // Implementation: Call this function to initialize the collection of form fields - // from the body of an application/x-www-form-urlencoded POST request. - ATL_NOINLINE BOOL InitFromPost() throw() - { - _ATLTRY - { - ATLASSUME(m_spServerContext != NULL); - - // create our m_pFormVars - if (m_pFormVars == NULL || m_pFormVars == &m_QueryParams) - { - ATLTRY(m_pFormVars = new CHttpRequestParams); - if (m_pFormVars == NULL) - { - return FALSE; - } - } - - // read the form data into a buffer - DWORD dwBytesTotal = m_spServerContext->GetTotalBytes(); - CAutoVectorPtr szBuff; - if ((dwBytesTotal+1 < dwBytesTotal) || (dwBytesTotal < 0)) - { - return FALSE; - } - if (!szBuff.Allocate(dwBytesTotal+1)) - { - return FALSE; - } - // first copy the available - BOOL bRet = ReadClientData(m_spServerContext, szBuff, &dwBytesTotal, 0); - if (bRet) - { - szBuff[dwBytesTotal] = '\0'; - bRet = m_pFormVars->Parse(szBuff); - } - - return bRet; - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to remove the files listed in m_Files from the web server's hard disk. - // Returns the number of files deleted. - int DeleteFiles() throw() - { - int nDeleted = 0; - POSITION pos = m_Files.GetStartPosition(); - while (pos != NULL) - { - LPCSTR szTempFile = m_Files.GetKeyAt(pos); - if (szTempFile && DeleteFileA(szTempFile)) - { - nDeleted++; - } - m_Files.GetNext(pos); - } - - return nDeleted; - } - - // Read a specified amount of data into pbDest and return the bytes read in pdwLen. - // Returns TRUE on success, FALSE on failure. - BOOL ReadData(__out_ecount_part(*pdwLen,*pdwLen) LPSTR pDest, __inout LPDWORD pdwLen) - { - ATLENSURE(pDest); - ATLENSURE(pdwLen); - - BOOL bRet = ReadClientData(m_spServerContext, pDest, pdwLen, m_dwBytesRead); - if (bRet) - m_dwBytesRead+= *pdwLen; - return bRet; - } - - // Returns the number of bytes available in the request buffer accessible via GetAvailableData. - // If GetAvailableBytes returns the same value as GetTotalBytes, the request buffer contains the whole request. - // Otherwise, the remaining data should be read from the client using ReadData. - // Equivalent to EXTENSION_CONTROL_BLOCK::cbAvailable. - __checkReturn DWORD GetAvailableBytes() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetAvailableBytes(); - } - - // Returns the total number of bytes to be received from the client. - // If this value is 0xffffffff, then there are four gigabytes or more of available data. - // In this case, ReadData should be called until no more data is returned. - // Equivalent to the CONTENT_LENGTH server variable or EXTENSION_CONTROL_BLOCK::cbTotalBytes. - __checkReturn DWORD GetTotalBytes() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetTotalBytes(); - } - - // Returns a pointer to the request buffer containing the data sent by the client. - // The size of the buffer can be determined by calling GetAvailableBytes. - // Equivalent to EXTENSION_CONTROL_BLOCK::lpbData - __checkReturn LPBYTE GetAvailableData() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetAvailableData(); - } - - - // Returns a nul-terminated string that contains the query information. - // This is the part of the URL that appears after the question mark (?). - // Equivalent to the QUERY_STRING server variable or EXTENSION_CONTROL_BLOCK::lpszQueryString. - __checkReturn LPCSTR GetQueryString() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetQueryString(); - } - - // Returns a nul-terminated string that contains the HTTP method of the current request. - // Examples of common HTTP methods include "GET" and "POST". - // Equivalent to the REQUEST_METHOD server variable or EXTENSION_CONTROL_BLOCK::lpszMethod. - __checkReturn LPCSTR GetMethodString() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetRequestMethod(); - } - - // Returns an HTTP_METHOD enum value corresponding to the HTTP method of the current request. - // Returns HTTP_METHOD_UNKNOWN if the request method is not one of the following methods: - // GET - // POST - // HEAD - // DELETE - // LINK - // UNLINK - __checkReturn HTTP_METHOD GetMethod() throw(...) - { - LPCSTR szMethod = GetMethodString(); - if (!szMethod) - return HTTP_METHOD_UNKNOWN; - for (int i=0; m_szMethodStrings[i]; i++) - { - if (strcmp(szMethod, m_szMethodStrings[i]) == 0) - return (HTTP_METHOD) i; - } - return HTTP_METHOD_UNKNOWN; - } - - // Returns a nul-terminated string that contains the content type of the data sent by the client. - // Equivalent to the CONTENT_TYPE server variable or EXTENSION_CONTROL_BLOCK::lpszContentType. - __checkReturn LPCSTR GetContentType() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetContentType(); - } - - - // Call this function to retrieve a nul-terminated string containing the value of the "AUTH_USER" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetAuthUserName(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("AUTH_USER", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "APPL_PHYSICAL_PATH" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetPhysicalPath(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("APPL_PHYSICAL_PATH", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "AUTH_PASSWORD" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetAuthUserPassword(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("AUTH_PASSWORD", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "URL" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUrl(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("URL", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "REMOTE_HOST" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUserHostName(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("REMOTE_HOST", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "REMOTE_ADDR" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUserHostAddress(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("REMOTE_ADDR", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the physical path of the script. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - // The script path is the same as GetPathTranslated up to the first .srf or .dll. - // For example, if GetPathTranslated returns "c:\inetpub\vcisapi\hello.srf\goodmorning", - // then this function returns "c:\inetpub\vcisapi\hello.srf". - __checkReturn LPCSTR GetScriptPathTranslated() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetScriptPathTranslated(); - } - - // Returns a nul-terminated string that contains the physical path of the requested resource on the local server. - // Equivalent to the PATH_TRANSLATED server variable or EXTENSION_CONTROL_BLOCK::lpszPathTranslated. - __checkReturn LPCSTR GetPathTranslated() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetPathTranslated(); - } - - // Returns a nul-terminated string that contains the path of the current request. - // This is the part of the URL that appears after the server name, but before the query string. - // Equivalent to the PATH_INFO server variable or EXTENSION_CONTROL_BLOCK::lpszPathInfo. - __checkReturn LPCSTR GetPathInfo() throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetPathInfo(); - } - - // Call this function to determine whether the current request was authenticated. - __checkReturn BOOL GetAuthenticated() throw(...) - { - // We assume that if we get an authentication type from IIS, - // then the user has been authenticated. - CStringA strAuthType; - if (GetAuthenticationType(strAuthType) && - strAuthType.GetLength() > 0) - return TRUE; - - return FALSE; - } - - // Call this function to retrieve a nul-terminated string containing the value of the "AUTH_TYPE" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetAuthenticationType(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("AUTH_TYPE", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "REMOTE_USER" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUserName(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, DWORD __inout *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("REMOTE_USER", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "HTTP_USER_AGENT" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUserAgent(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("HTTP_USER_AGENT", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "HTTP_ACCEPT_LANGUAGE" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUserLanguages(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("HTTP_ACCEPT_LANGUAGE", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "HTTP_ACCEPT" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetAcceptTypes(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("HTTP_ACCEPT", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "HTTP_ACCEPT_ENCODING" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetAcceptEncodings(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("HTTP_ACCEPT_ENCODING", szBuff, pdwSize); - } - - - // Call this function to retrieve a nul-terminated string containing the value of the "HTTP_REFERER" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetUrlReferer(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("HTTP_REFERER", szBuff, pdwSize); - } - - // Call this function to retrieve a nul-terminated string containing the value of the "SCRIPT_NAME" server variable. - // - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - __checkReturn BOOL GetScriptName(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuff, __inout DWORD *pdwSize) throw(...) - { - ATLENSURE(m_spServerContext); - return m_spServerContext->GetServerVariable("SCRIPT_NAME", szBuff, pdwSize); - } - - // Fills a buffer with the contents of the HTTP_COOKIE headers sent - // from the browser. - __checkReturn BOOL GetCookies(__out_ecount_part(*pdwSize,*pdwSize) LPSTR szBuf, __inout LPDWORD pdwSize) const throw(...) - { - ATLASSERT(szBuf != NULL); - - CStringA strCookie; - if (GetCookies(strCookie)) - { - ATLENSURE(pdwSize != NULL); - if (pdwSize && *pdwSize > (DWORD)strCookie.GetLength()) - { - Checked::strcpy_s(szBuf, *pdwSize, strCookie); - *pdwSize = strCookie.GetLength(); - return true; - } - } - return false; - } - - // Fills a CStringA with the contents of the HTTP_COOKIE headers sent - // from the browser. - __checkReturn BOOL GetCookies(__inout CStringA& strBuff) const throw() - { - return GetServerVariable("HTTP_COOKIE", strBuff); - } - - // Call this function to retrieve a reference to the specified cookie. - // Returns a CCookie reference to the specified cookie or a - // reference to an empty cookie if the name can not be found. - ATL_NOINLINE const CCookie& Cookies(__in LPCSTR szName) throw(...) - { - if (GetRequestCookies()) - { - // p->m_value is a const CCookie& - CookieMap::CPair *p = NULL; - ATLTRY(p = m_requestCookies.Lookup(szName)); - if (p) - { - return p->m_value; - } - } - m_EmptyCookie.Empty(); // make sure it is cleared. - return m_EmptyCookie; - } - - - // Call this function to retrieve the session cookie. - const CCookie& GetSessionCookie() throw(...) - { - return Cookies(SESSION_COOKIE_NAME); - } - - // Call this function to retrieve the value of the requested server variable in a CStringA object. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::GetServerVariable. - BOOL GetServerVariable(__in LPCSTR szVariable, __out CStringA &str) const - { - ATLENSURE(m_spServerContext); - - DWORD dwSize = 0; - BOOL bRet = FALSE; - _ATLTRY - { - m_spServerContext->GetServerVariable(szVariable, NULL, &dwSize); - bRet = m_spServerContext->GetServerVariable(szVariable, str.GetBuffer(dwSize), &dwSize); - if (dwSize > 0) - dwSize--; - str.ReleaseBuffer(dwSize); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - } - - // Call this function to retrieve the value of the "APPL_PHYSICAL_PATH" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetPhysicalPath(__out CStringA &str) throw() - { - return GetServerVariable("APPL_PHYSICAL_PATH", str); - } - - // Call this function to retrieve the value of the "REMOTE_HOST" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUserHostName(__out CStringA &str) throw() - { - return GetServerVariable("REMOTE_HOST", str); - } - - // Call this function to retrieve the value of the "REMOTE_ADDR" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUserHostAddress(__out CStringA &str) throw() - { - return GetServerVariable("REMOTE_ADDR", str); - } - - // Call this function to retrieve the value of the "AUTH_TYPE" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetAuthenticationType(__out CStringA &str) throw() - { - return GetServerVariable("AUTH_TYPE", str); - } - - // Call this function to retrieve the value of the "REMOTE_USER" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUserName(__out CStringA &str) throw() - { - return GetServerVariable("REMOTE_USER", str); - } - - // Call this function to retrieve the value of the "HTTP_USER_AGENT" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUserAgent(__out CStringA &str) throw() - { - return GetServerVariable("HTTP_USER_AGENT", str); - } - - // Call this function to retrieve the value of the "HTTP_ACCEPT_LANGUAGE" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUserLanguages(__out CStringA &str) throw() - { - return GetServerVariable("HTTP_ACCEPT_LANGUAGE", str); - } - - // Call this function to retrieve the value of the "AUTH_USER" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetAuthUserName(__out CStringA &str) throw() - { - return GetServerVariable("AUTH_USER", str); - } - - // Call this function to retrieve the value of the "AUTH_PASSWORD" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetAuthUserPassword(__out CStringA &str) throw() - { - return GetServerVariable("AUTH_PASSWORD", str); - } - - // Call this function to retrieve the value of the "URL" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUrl(__out CStringA &str) throw() - { - return GetServerVariable("URL", str); - } - - // Call this function to retrieve the value of the "HTTP_ACCEPT" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetAcceptTypes(__out CStringA &str) throw() - { - return GetServerVariable("HTTP_ACCEPT", str); - } - - // Call this function to retrieve the value of the "HTTP_ACCEPT_ENCODING" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetAcceptEncodings(__out CStringA& str) throw() - { - return GetServerVariable("HTTP_ACCEPT_ENCODING", str); - } - - // Call this function to retrieve the value of the "HTTP_REFERER" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetUrlReferer(__out CStringA &str) throw() - { - return GetServerVariable("HTTP_REFERER", str); - } - - // Call this function to retrieve the value of the "SCRIPT_NAME" server variable. - // Returns TRUE on success, FALSE on failure. Call GetLastError to get extended error information. - __checkReturn BOOL GetScriptName(__out CStringA &str) throw() - { - return GetServerVariable("SCRIPT_NAME", str); - } - - // Implementation: Call this function to populate the collection - // of CCookie objects with the cookies in the current request. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL GetRequestCookies() throw() - { - BOOL bRet = FALSE; - - if (m_requestCookies.GetCount()) - return TRUE; // we already got the cookies! - - CStringA strCookies; - if (GetCookies(strCookies)) - { - bRet = Parse(strCookies); - } - return bRet; - } - -private: - struct Pair - { - Pair(__in const CStringA &n, __in const CStringA& v) - { - name = n; - value = v; - } - - Pair(__in const Pair& rhs) - { - name = rhs.name; - value = rhs.value; - } - - CStringA name; - CStringA value; - }; - static const int INVALID_COOKIE_VERSION = -1; -public: - - // Implementation: Call this function to populate m_requestCookies - // with a collection of CCookie objects which represents the - // cookies contained in szCookie header sent from the browser. - BOOL Parse(__in LPCSTR szCookieIn) - { - ATLENSURE(szCookieIn!=NULL); - UINT acp = GetACP(); - LPCSTR szStart; - LPCSTR szEnd; - CStringA name, value; - CAtlList pair_list; - - // create a list of name=value pairs - // these are separated by or ; - szStart = szCookieIn; - szEnd = szStart; - while (*szStart) - { - name.Empty(); - value.Empty(); - szStart = SkipSpace(szStart, (WORD)acp); - if (*szStart == '\0') - break; - - szEnd = szStart; - while (*szEnd && *szEnd != '=' && *szEnd != ';' ) - szEnd++; - - if (szEnd <= szStart) - { - if (*szEnd ==';') - { - szEnd++; - szStart = szEnd; - continue; - } - szStart = szEnd; - break; // no name or error - } - - CopyToCString(name, szStart, szEnd); - if (*szEnd == '\0' || *szEnd == ';' ) - { - // no value expected; - pair_list.AddTail(Pair(name, value)); - szStart = szEnd; - } - else if ( *szEnd == '=') - { - szEnd++; // skip '=' - szStart = szEnd; - while (*szEnd && *szEnd != ';') - szEnd++; - - if (szEnd <= szStart) - { - if (*szEnd == ';') - { - szEnd++; - szStart = szEnd; - continue; - } - szStart = szEnd; - pair_list.AddTail(Pair(name,value)); - break; // no value - } - - CopyToCString(value, szStart, szEnd); - pair_list.AddTail(Pair(name,value)); - szStart = szEnd; - } - } - - // now make cookies out of the list - // The first item could be $Version, which would - // be the version for all cookies in the list. - // any other $Version's found in the list will be ignored. - if (pair_list.GetCount() <= 0) - return TRUE; // nothing in the list - - // check for $Version - static const char szVersion[] = "$Version"; - int nVersion = INVALID_COOKIE_VERSION; - if (!strncmp(pair_list.GetHead().name, szVersion, sizeof(szVersion)+1)) - { - char *pStop = NULL; - errno_t errnoValue = AtlStrToNum(&nVersion, pair_list.GetHead().value, &pStop, 10); - if (errnoValue == ERANGE) - nVersion = INVALID_COOKIE_VERSION; // $Version contained garbage - pair_list.RemoveHead(); // Remove $Version - } - - POSITION pos = pair_list.GetHeadPosition(); - bool bInCookie = false; - CCookie cookie; - - while (pos) - { - const Pair &p = pair_list.GetNext(pos); - if (p.name[0] == '$') - { - if (!bInCookie) - return FALSE; // invalid cookie string - else - { - //add attribute to current cookie - if(!cookie.AddAttribute(p.name.Right(p.name.GetLength()-1),p.value)) - { - return FALSE; - } - } - } - else - { - if (!bInCookie) - { - bInCookie = true; - cookie.SetName(p.name); - cookie.ParseValue(p.value); - if (nVersion != INVALID_COOKIE_VERSION) - cookie.SetVersion(nVersion); - } - else - { - // add previous cookie - CStringA strPrevName; - if(!cookie.GetName(strPrevName)) - { - return FALSE; - } - m_requestCookies.SetAt(strPrevName, cookie); - - // empty current cookie and start over - cookie.Empty(); - cookie.SetName(p.name); - cookie.ParseValue(p.value); - if (nVersion != INVALID_COOKIE_VERSION) - cookie.SetVersion(nVersion); - - } - } - } - - if (!cookie.IsEmpty()) - { - CStringA strName; - if(!cookie.GetName(strName)) - { - return FALSE; - } - m_requestCookies.SetAt(strName, cookie); - } - return TRUE; - - } - -private: - // Call this function to copy a substring to a CString reference and ensure nul-termination. - inline void CopyToCString(__out CStringA& string, __in_ecount(pEnd-pStart) LPCSTR pStart, __in LPCSTR pEnd) throw( ... ) - { - ATLENSURE( pStart != NULL ); - ATLENSURE( pEnd != NULL ); - ATLENSURE( pEnd>=pStart ); - - string.SetString(pStart, (int)(pEnd-pStart)); - string.Trim(); - } - - inline LPCSTR SkipSpace(__in LPCSTR sz, __in WORD nCodePage) throw() - { - if (sz == NULL) - return NULL; - - while (isspace(static_cast(*sz))) - sz = CharNextExA(nCodePage, sz, 0); - return sz; - } -public: - - - __success(SUCCEEDED(return)) __checkReturn HRESULT STDMETHODCALLTYPE QueryInterface(__in REFIID riid, __deref_out void **ppv) - { - if (!ppv) - return E_POINTER; - if (InlineIsEqualGUID(riid, __uuidof(IHttpRequestLookup))) - { - *ppv = static_cast(static_cast(this)); - AddRef(); - return S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IUnknown))) - { - *ppv = static_cast(this); - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } -}; // class CHttpRequest - -__declspec(selectany) const char* const CHttpRequest::m_szMethodStrings[] = { - "GET", - "POST", - "HEAD", - "DELETE", - "LINK", - "UNLINK", - "DEBUG", // Debugging support for VS7 - NULL -}; - -// This class provides type conversions via the Write method -// and overloaded left shift << operator for writing -// data to the IWriteStream interface. The IWriteStream interface -// only accepts strings, but this helper class allows you to transparently -// pass many different types by providing automatic type conversions. -// -// Notes on Type Conversions: -// Numeric types are converted to their decimal representations. -// Floating point values are output with a precision of 6 decimal places. -// Currency values are converted according to the locale settings of the current thread. -class CWriteStreamHelper -{ -protected: - // Implementation: The IWriteStream interface. - IWriteStream *m_pStream; - UINT m_ulACP; - -public: - CWriteStreamHelper() throw() - :m_pStream(NULL) - { - m_ulACP = _AtlGetConversionACP(); - } - - CWriteStreamHelper(__in_opt IWriteStream *pStream) throw() - { - m_pStream = pStream; - m_ulACP = _AtlGetConversionACP(); - } - - // Attach a IWriteStream - IWriteStream *Attach(__in IWriteStream *pStream) throw() - { - IWriteStream *pRetStream = m_pStream; - m_pStream = pStream; - return pRetStream; - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in_z LPCSTR szOut) throw() - { - ATLASSUME(m_pStream != NULL); - - if (!szOut) - return FALSE; - - DWORD dwWritten; - return SUCCEEDED(m_pStream->WriteStream(szOut, (int) strlen(szOut), &dwWritten)); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in int n) throw() - { - CHAR szTmp[21]; - Checked::itoa_s(n, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in unsigned int u) throw() - { - CHAR szTmp[21]; - Checked::ultoa_s(u, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in short int w) throw() - { - return Write((int) w); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in unsigned short int w) throw() - { - return Write((unsigned int) w); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in long int dw) throw() - { - CHAR szTmp[21]; - Checked::ltoa_s(dw, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in unsigned long int dw) throw() - { - CHAR szTmp[21]; - Checked::ultoa_s(dw, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in double d, __in int nDigitCount=ATL_DEFAULT_PRECISION) throw() - { - ATLASSUME(m_pStream != NULL); - - CHAR szTmp[512]; - int nDec = 0; - int nSign = 0; - bool fWriteDec=true; - if (0 != _fcvt_s(szTmp, _countof(szTmp), d, nDigitCount, &nDec, &nSign)) - { - // too large - return FALSE; - } - - if (nSign != 0) - m_pStream->WriteStream("-", 1, NULL); - if (nDec < 0) - { - nDec *= -1; - m_pStream->WriteStream("0.", 2, NULL); - for (int i=0;iWriteStream("0", 1, NULL); - } - nDec = 0; - fWriteDec=false; - } - - char *p = szTmp; - while (*p) - { - // if the decimal lies at the end of the number - // (no digits to the right of the decimal, we don't - // print it. - if (nDec == 0 && fWriteDec) - m_pStream->WriteStream(".", 1, NULL); - m_pStream->WriteStream(p, 1, NULL); - nDec--; - p++; - } - return TRUE; - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in __int64 i) throw() - { - CHAR szTmp[21]; - Checked::i64toa_s(i, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in unsigned __int64 i) throw() - { - CHAR szTmp[21]; - Checked::ui64toa_s(i, szTmp, _countof(szTmp), 10); - return Write(szTmp); - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in CURRENCY c) throw() - { - CHAR szDest[256]; - CHAR szNumber[32]; - - Checked::i64toa_s(c.int64, szNumber, _countof(szNumber), 10); - int nLen = (int) strlen(szNumber); - if (nLen < 5) - { - // prepend ascii zeros - Checked::memmove_s(szNumber+5-nLen, 32-(5-nLen), szNumber, nLen+1); - memset(szNumber, '0', 5-nLen); - nLen = 5; - } - - Checked::memmove_s(szNumber+nLen-3, 32-(nLen-3), szNumber+nLen-4, 5); - szNumber[nLen-4] = '.'; - - int nRet = GetCurrencyFormatA(GetThreadLocale(), 0, szNumber, NULL, szDest, sizeof(szDest)); - if (nRet > 0) - return Write(szDest); - - ATLASSERT(GetLastError()==ERROR_INSUFFICIENT_BUFFER); - - nRet = GetCurrencyFormatA(GetThreadLocale(), 0, szNumber, NULL, NULL, 0); - ATLASSERT(nRet > 0); - - if (nRet <= 0) - return FALSE; - - CAutoVectorPtr szBuffer; - if (!szBuffer.Allocate(nRet)) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return FALSE; - } - nRet = GetCurrencyFormatA(GetThreadLocale(), 0, szNumber, NULL, szBuffer, nRet); - - ATLASSERT(nRet > 0); - BOOL bRet = FALSE; - if (nRet > 0) - bRet = Write(szBuffer); - - return bRet; - } - - // Call this function to write data to the IWriteStream interface managed by this object. - // Returns TRUE on success, FALSE on failure. - BOOL Write(__in LPCWSTR wsz) throw() - { - ATLASSUME(m_pStream != NULL); - - BOOL bRet; - - _ATLTRY - { - CW2A sz(wsz, m_ulACP); - - if (!sz) - { - bRet = FALSE; - } - - DWORD dwWritten; - bRet = SUCCEEDED(m_pStream->WriteStream(sz, (int) strlen(sz), &dwWritten)); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - - return bRet; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in LPCSTR szStr) throw(...) - { - if (!Write(szStr)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in LPCWSTR wszStr) throw(...) - { - if (!Write(wszStr)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in int n) throw(...) - { - if (!Write(n)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in short int w) throw(...) - { - if (!Write(w)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in unsigned int u) throw(...) - { - if (!Write(u)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in long int dw) throw(...) - { - if (!Write(dw)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in unsigned long int dw) throw(...) - { - if (!Write(dw)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in double d) throw(...) - { - if (!Write(d)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in __int64 i) throw(...) - { - if (!Write(i)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in unsigned __int64 i) throw(...) - { - if (!Write(i)) - AtlThrow(E_FAIL); - return *this; - } - - // Use this operator to write data to the IWriteStream interface managed by this object. - CWriteStreamHelper& operator<<(__in CURRENCY c) throw(...) - { - if (!Write(c)) - AtlThrow(E_FAIL); - return *this; - } - - UINT SetConversionCodePage(__in UINT nNewCP) - { - UINT nOldCP = m_ulACP; - m_ulACP = nNewCP; - return nOldCP; - } -}; - - -template -class CAtlIsapiBuffer -{ -protected: - char m_szBuffer[dwSizeT]; - LPSTR m_pBuffer; - DWORD m_dwLen; - DWORD m_dwAlloc; - HANDLE m_hProcHeap; - -public: - CAtlIsapiBuffer() throw() - { - if (dwSizeT > 0) - m_szBuffer[0] = 0; - - m_pBuffer = m_szBuffer; - m_dwLen = 0; - m_dwAlloc = dwSizeT; - m_hProcHeap = GetProcessHeap(); - } - - CAtlIsapiBuffer(__in LPCSTR sz) - { - m_pBuffer = m_szBuffer; - m_dwLen = 0; - m_dwAlloc = dwSizeT; - m_hProcHeap = GetProcessHeap(); - - if (!Append(sz)) - AtlThrow(E_OUTOFMEMORY); - } - - ~CAtlIsapiBuffer() throw() - { - Free(); - } - - BOOL Alloc(__in DWORD dwSize) throw() - { - if (m_dwAlloc >= dwSize) - { - return TRUE; - } - if (m_pBuffer != m_szBuffer) - { - HeapFree(m_hProcHeap, 0, m_pBuffer); - m_dwLen = 0; - m_dwAlloc = 0; - } - m_pBuffer = (LPSTR)HeapAlloc(m_hProcHeap, 0, dwSize); - if (m_pBuffer) - { - m_dwAlloc = dwSize; - return TRUE; - } - return FALSE; - } - - BOOL ReAlloc(__in DWORD dwNewSize) throw() - { - if (dwNewSize <= m_dwAlloc) - return TRUE; - - if (m_pBuffer == m_szBuffer) - { - BOOL bRet = Alloc(dwNewSize); - if (bRet) - { - Checked::memcpy_s(m_pBuffer, dwNewSize, m_szBuffer, m_dwLen); - } - return bRet; - } - - LPSTR pvNew = (LPSTR )HeapReAlloc(m_hProcHeap, 0, m_pBuffer, dwNewSize); - if (pvNew) - { - m_pBuffer = pvNew; - m_dwAlloc = dwNewSize; - return TRUE; - } - return FALSE; - } - - void Free() throw() - { - if (m_pBuffer != m_szBuffer) - { - HeapFree(m_hProcHeap,0 , m_pBuffer); - m_dwAlloc = dwSizeT; - m_pBuffer = m_szBuffer; - } - Empty(); - } - - void Empty() throw() - { - if (m_pBuffer) - { - m_pBuffer[0]=0; - m_dwLen = 0; - } - } - - DWORD GetLength() throw() - { - return m_dwLen; - } - - BOOL Append(__in LPCSTR sz, __in int nLen = -1) throw() - { - if (!sz) - return FALSE; - - if (nLen == -1) - nLen = (int) strlen(sz); - - DWORD newLen = m_dwLen + nLen + 1; - if (newLen <= m_dwLen || newLen <= (DWORD)nLen) - { - return FALSE; - } - if (newLen > m_dwAlloc) - { - if (!ReAlloc(m_dwAlloc + (nLen+1 > ATL_ISAPI_BUFFER_SIZE ? nLen+1 : ATL_ISAPI_BUFFER_SIZE))) - return FALSE; - } - Checked::memcpy_s(m_pBuffer + m_dwLen, m_dwAlloc-m_dwLen, sz, nLen); - m_dwLen += nLen; - m_pBuffer[m_dwLen]=0; - return TRUE; - } - - operator LPCSTR() throw() - { - return m_pBuffer; - } - - CAtlIsapiBuffer& operator+=(__in LPCSTR sz) - { - if (!Append(sz)) - AtlThrow(E_OUTOFMEMORY); - return *this; - } -}; // class CAtlIsapiBuffer - -// This class represents the response that the web server will send back to the client. -// -// CHttpResponse provides friendly functions for building up the headers, cookies, and body of an HTTP response. -// The class derives from IWriteStream and CWriteStreamHelper, allowing you to call those classes' methods -// to build up the body of the response. By default, the class improves performance by buffering the response until it is complete before sending it back to the client. -class CHttpResponse : public IWriteStream, public CWriteStreamHelper -{ -private: - - // Implementation: A map of HTTP response headers. - // The key is the name of the response header. - // The value is the data for the response header. - CSimpleMap m_headers; - - // Implementation: Determines whether the response is currently being buffered. - BOOL m_bBufferOutput; - - // Implementation: Determines whether any output should be sent to the client. - // Intended mainly for HEAD requests, where the client should get the same headers - // (i.e. Content-Length) as for a GET request - BOOL m_bSendOutput; - - // Implementation: The limit in bytes of the response buffer. - // When the limit is reached, the buffer is automatically flushed - // and data is sent to the client. You can set this to ULONG_MAX - // to enable full buffering (this is the default, and is required - // for enabling keep alive connections). - DWORD m_dwBufferLimit; - - // Implementation: The server context. - CComPtr m_spServerContext; - - // Implementation: The HTTP status code for the response. - int m_nStatusCode; - - // Implementation: Determines whether the response headers have already been sent to the client. - BOOL m_bHeadersSent; - - // Implementation: Handle of the file being transmitted so it can be closed - // when the async I/O completes - HANDLE m_hFile; - -public: - // Implementation: The buffer used to store the response before - // the data is sent to the client. - CAtlIsapiBuffer<> m_strContent; - - // Numeric constants for the HTTP status codes used for redirecting client requests. - enum HTTP_REDIRECT - { - HTTP_REDIRECT_MULTIPLE=300, - HTTP_REDIRECT_MOVED=301, - HTTP_REDIRECT_FOUND=302, - HTTP_REDIRECT_SEE_OTHER=303, - HTTP_REDIRECT_NOT_MODIFIED=304, - HTTP_REDIRECT_USE_PROXY=305, - HTTP_REDIRECT_TEMPORARY_REDIRECT=307 - }; - - CHttpResponse() throw() - { - m_bBufferOutput = TRUE; - m_dwBufferLimit = ULONG_MAX; - m_nStatusCode = 200; - m_pStream = this; - m_bHeadersSent = FALSE; - m_bSendOutput = TRUE; - m_hFile = INVALID_HANDLE_VALUE; - } - - CHttpResponse(__in IHttpServerContext *pServerContext) - { - m_bBufferOutput = TRUE; - m_dwBufferLimit = ULONG_MAX; - m_nStatusCode = 200; - m_pStream = this; - m_bHeadersSent = FALSE; - ATLENSURE(Initialize(pServerContext)); - m_bSendOutput = TRUE; - m_hFile = INVALID_HANDLE_VALUE; - } - - // The destructor flushes the buffer if there is content that - // hasn't yet been sent to the client. - virtual ~CHttpResponse() throw() - { - Flush(TRUE); - if (m_hFile && m_hFile != INVALID_HANDLE_VALUE) - CloseHandle(m_hFile); - } - - // Call this function to initialize the response object with a pointer to the server context. - // Returns TRUE on success, FALSE on failure. - __checkReturn BOOL Initialize(__in IHttpServerContext *pServerContext) throw() - { - ATLASSERT(pServerContext != NULL); - if (!pServerContext) - return FALSE; - - m_spServerContext = pServerContext; - - return TRUE; - } - - // This is called to initialize the CHttpResponse for a child handler. By default, it - // assumes the parent will be responsible for sending the headers. - __checkReturn BOOL Initialize(__in IHttpRequestLookup *pLookup) throw(...) - { - ATLASSERT(pLookup); - if (!pLookup) - return FALSE; - - CComPtr spContext; - HRESULT hr = pLookup->GetServerContext(&spContext); - if (FAILED(hr)) - return FALSE; - - if (!Initialize(spContext)) - return FALSE; - - m_bHeadersSent = TRUE; - - return TRUE; - } - - // Returns a pointer to the IHttpServerContext interface for the current request. - __checkReturn HRESULT GetServerContext(__deref_out_opt IHttpServerContext ** ppOut) throw() - { - return m_spServerContext.CopyTo(ppOut); - } - - void Detach() - { - m_spServerContext.Release(); - HaveSentHeaders(TRUE); - } - // Call this function to set buffering options for the response. - // - // This function allows you to turn buffering on or off, and to set a size limit - // on the amount of data that will be buffered before being sent to the client. - // - // When you turn off buffering, the current contents of the buffer will be sent to the client. - // If you need to clear the buffer without sending the contents to the client, call ClearContent instead. - // - // When the size of the buffer is reduced below the current size of the buffered content, - // the entire buffer is flushed. - void SetBufferOutput(__in BOOL bBufferOutput, __in DWORD dwBufferLimit=ATL_ISAPI_BUFFER_SIZE) throw() - { - if (m_bBufferOutput && !bBufferOutput) - { - // before turning off buffering, flush - // the current contents - Flush(); - } - SetBufferLimit(dwBufferLimit); - - m_bBufferOutput = bBufferOutput; - } - - // Call this function to determine whether data written to the response object is being buffered or not. - // Returns TRUE if output is being buffered, FALSE otherwise. - __checkReturn BOOL GetBufferOutput() throw() - { - return m_bBufferOutput; - } - - // Call this function to determine whether the response headers have been sent - // Returns TRUE if headers have been sent, FALSE otherwise. - __checkReturn BOOL HaveSentHeaders() throw() - { - return m_bHeadersSent; - } - - // Call this function to override the m_bHeadersSent state. This is useful - // when you want child handlers (e.g. from an include or subhandler) to send the headers - void HaveSentHeaders(__in BOOL bSent) throw() - { - m_bHeadersSent = bSent; - } - - // Call this function to set a size limit on the amount of data buffered by the reponse object. - // When the size of the buffer is reduced below the current size of the buffered content, - // the entire buffer is flushed. - // See GetBufferLimit. - void SetBufferLimit(__in DWORD dwBufferLimit) throw() - { - if (m_bBufferOutput) - { - if (m_strContent.GetLength() >= dwBufferLimit) - { - // new buffer limit is less than the - // size currently buffered. So flush - // the current buffer - Flush(); - } - } - m_dwBufferLimit = dwBufferLimit; - } - - // Returns the current size limit of the buffer in bytes. - // See SetBufferLimit. - DWORD GetBufferLimit() throw() - { - return m_dwBufferLimit; - } - - // Returns the current value of the Content-Type header if present, otherwise returns NULL. - LPCSTR GetContentType() throw() - { - // return the content type from the - // header collection if any - _ATLTRY - { - CStringA strKey("Content-Type"); - - int nIndex = m_headers.FindKey(strKey); - if (nIndex >= 0) - return m_headers.GetValueAt(nIndex); - } - _ATLCATCHALL() - { - } - return NULL; - } - - // Call this function to set the Content-Type of the HTTP response. - // Examples of common MIME content types include text/html and text/plain. - BOOL SetContentType(__in_opt LPCSTR szContentType) throw() - { - _ATLTRY - { - if (!m_headers.SetAt("Content-Type", szContentType)) - return m_headers.Add("Content-Type", szContentType); - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to set the HTTP status code of the response. - // If not set explicitly, the default status code is 200 (OK). - // See GetStatusCode. - void SetStatusCode(__in int nCode) throw() - { - m_nStatusCode = nCode; - } - - // Returns the current HTTP status code of the response. - // See SetStatusCode. - int GetStatusCode() throw() - { - return m_nStatusCode; - } - - // Call this function to set the Cache-Control http header of the response. - // Examples of common Cache-Control header values: public, private, max-age=delta-seconds - BOOL SetCacheControl(__in_opt LPCSTR szCacheControl) throw() - { - _ATLTRY - { - if (!m_headers.SetAt("Cache-Control", szCacheControl)) - return m_headers.Add("Cache-Control", szCacheControl); - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to set the Expires HTTP header to the absolute date/time - // specified in the stExpires parameter - BOOL SetExpiresAbsolute(__in const SYSTEMTIME& stExpires) throw() - { - _ATLTRY - { - CStringA strExpires; - SystemTimeToHttpDate(stExpires, strExpires); - - if (!m_headers.SetAt("Expires", strExpires)) - return m_headers.Add("Expires", strExpires); - } - _ATLCATCHALL() - { - } - return FALSE; - } - - // Call this function to set the Expires HTTP header to a relative date/time - // value specified in minutes; - BOOL SetExpires(__in long lMinutes) throw() - { - CFileTime ft; - GetSystemTimeAsFileTime(&ft); - - // add the specified number of minutes - ft += CFileTimeSpan(((ULONGLONG)lMinutes)*60*10000000); - - SYSTEMTIME st; - FileTimeToSystemTime(&ft, &st); - return SetExpiresAbsolute(st); - } - - // Call this function to set whether or not to output to client. - // Intended primarily for HEAD requests - BOOL SetWriteToClient(__in BOOL bSendOutput) throw() - { - m_bSendOutput = bSendOutput; - return TRUE; - } - - // Call this function to determine whether or not the data is - // sent to the client. Intended primarily for HEAD requests - BOOL GetWriteToClient() throw() - { - return m_bSendOutput; - } - - // Call this function to write data to the response object. - // - // Returns S_OK on success, E_INVALIDARG or E_FAIL on failure. - // - // See WriteClient for comments on buffering. - // - // szOut A pointer to the first byte of the data to be written. - // - // nLen The number of bytes to write. If this parameter is -1, - // szOut is assumed to be a nul-terminated string and the - // whole string will be written. - // - // pdwWritten A DWORD pointer that can be used to get the number of bytes written. - // This parameter can be NULL. - __checkReturn HRESULT WriteStream(__in_z LPCSTR szOut, __in int nLen, __out_opt DWORD *pdwWritten) - { - ATLASSUME(m_spServerContext != NULL); - - if (pdwWritten) - *pdwWritten = 0; - if (nLen == -1) - { - if (!szOut) - return E_INVALIDARG; - nLen = (int) strlen(szOut); - } - BOOL bRet = WriteLen(szOut, nLen); - if (!bRet) - { - return AtlHresultFromLastError(); - } - if (pdwWritten) - *pdwWritten = nLen; - return S_OK; - } - - // Call this function to write data to the response object. - // - // Returns TRUE on success. FALSE on failure. - // - // If buffering is disabled, data is written directly to the client. - // If buffering is enabled, this function attempts to write to the buffer. - // If the buffer is too small to contain its existing data and the new data, - // the current contents of the buffer are flushed. - // If the buffer is still too small to contain the new data, that data is written - // directly to the client. Otherwise the new data is written to the buffer. - // - // Any headers that have been set in the response will be sent just before the - // data is written to the client if no headers have been sent up to that point. - // - // szOut A pointer to the first byte of the data to be written. - // - // nLen The number of bytes to write. - __checkReturn BOOL WriteLen(__in_ecount(dwLen) LPCSTR szOut, __in DWORD dwLen) throw() - { - ATLASSUME(m_spServerContext != NULL); - if (!szOut) - return FALSE; - - if (m_bBufferOutput) - { - if (m_strContent.GetLength()+dwLen >= m_dwBufferLimit) - { - if (!Flush()) - return FALSE; - } - if (dwLen <= m_dwBufferLimit) - return m_strContent.Append(szOut, dwLen); - } - BOOL bRet = SendHeadersInternal(); - - if (bRet && m_bSendOutput) - bRet = m_spServerContext->WriteClient((void *) szOut, &dwLen); - - return bRet; - } - - // Call this function to redirect the client to a different resource. - // - // Returns TRUE on success, FALSE on failure. - // - // szURL A nul-terminated string specifying the resource the client should navigate to. - // - // statusCode An HTTP status code from the HTTP_REDIRECT enumeration describing the reason - // for the redirection. - // - // bSendBody Specifies whether to generate and send a response body with the headers. - // - // This function allows (and RFC 2616 encourages) a response body to be sent - // with the following redirect types: - // HTTP_REDIRECT_MOVED - // HTTP_REDIRECT_FOUND - // HTTP_REDIRECT_SEE_OTHER - // HTTP_REDIRECT_TEMPORARY_REDIRECT - // No body will be sent with other redirect types. - // - // The response body contains a short hypertext note with a hyperlink to the new resource. - // A meta refresh tag is also included to allow browsers to automatically redirect - // the user to the resource even if they don't understand the redirect header. - // - // See RFC 2616 section 10.3 for more information on redirection. - BOOL Redirect(__in LPCSTR szUrl, __in HTTP_REDIRECT statusCode=HTTP_REDIRECT_MOVED, __in BOOL bSendBody=TRUE) throw(...) - { - CStringA strBody; - LPCSTR szBody = NULL; - if (bSendBody && - (HTTP_REDIRECT_MOVED == statusCode || HTTP_REDIRECT_FOUND == statusCode || - HTTP_REDIRECT_SEE_OTHER == statusCode || HTTP_REDIRECT_TEMPORARY_REDIRECT == statusCode)) - { - _ATLTRY - { - ATLENSURE(szUrl!=NULL); - strBody.Format( - "\r\n" - "\r\n" - "\r\n" - "\r\n" - "Please use the following link to access this resource:" - " %s\r\n" - "\r\n" - "\r\n", - szUrl, szUrl, szUrl); - } - _ATLCATCHALL() - { - return FALSE; - } - szBody = (LPCSTR) strBody; - } - return Redirect(szUrl, szBody, statusCode); - } - - // Call this function to redirect the client to a different resource. - // - // Returns TRUE on success, FALSE on failure. - // - // szURL A nul-terminated string specifying the resource the client should navigate to. - // - // szBody A nul-terminated string containing the body of the response to be sent to the client. - // - // statusCode An HTTP status code from the HTTP_REDIRECT enumeration describing the reason - // for the redirection. - // - // This function allows (and RFC 2616 encourages) a response body to be sent - // with the following redirect types: - // HTTP_REDIRECT_MOVED - // HTTP_REDIRECT_FOUND - // HTTP_REDIRECT_SEE_OTHER - // HTTP_REDIRECT_TEMPORARY_REDIRECT - // No body will be sent with other redirect types. - // - // The response body should contain a short hypertext note with a hyperlink to the new resource. - // You can include a meta refresh tag to allow browsers to automatically redirect - // the user to the resource even if they don't understand the redirect header. - // - // See RFC 2616 section 10.3 for more information on redirection. - BOOL Redirect(__in LPCSTR szUrl, __in LPCSTR szBody, __in HTTP_REDIRECT statusCode=HTTP_REDIRECT_MOVED) throw() - { - SetStatusCode(statusCode); - AppendHeader("Location", szUrl); - - _ATLTRY - { - if (!SendHeadersInternal()) - return FALSE; - } - _ATLCATCHALL() - { - return FALSE; - } - - if (szBody && - (HTTP_REDIRECT_MOVED == statusCode || HTTP_REDIRECT_FOUND == statusCode || - HTTP_REDIRECT_SEE_OTHER == statusCode || HTTP_REDIRECT_TEMPORARY_REDIRECT == statusCode)) - { - Write(szBody); - return Flush(); - } - return TRUE; - } - - // Call this function to append a header to the collection of HTTP headers managed by this object. - // - // szName A nul-teminated string containing the name of the HTTP header. - // - // szValue A nul-teminated string containing the value of the HTTP header. - BOOL AppendHeader(__in LPCSTR szName, __in_opt LPCSTR szValue) throw() - { - ATLASSERT(szName); - BOOL bRet = FALSE; - _ATLTRY - { - bRet = m_headers.Add(szName, szValue); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - } - - // Call this function to add a Set-Cookie header to the collection of HTTP headers managed by this object. - // - // pCookie A pointer to a CCookie object describing the cookie to be sent to the client. - BOOL AppendCookie(__in const CCookie *pCookie) - { - ATLENSURE(pCookie); - return AppendCookie((const CCookie&)*pCookie); - } - - // Call this function to add a Set-Cookie header to the collection of HTTP headers managed by this object. - // - // cookie A reference to a CCookie object describing the cookie to be sent to the client. - BOOL AppendCookie(__in const CCookie& cookie) throw() - { - CHAR szCookie[ATL_MAX_COOKIE_LEN]; - DWORD dwBuffSize = ATL_MAX_COOKIE_LEN; - BOOL bRet = FALSE; - bRet = cookie.Render(szCookie, &dwBuffSize); - if (bRet) - { - _ATLTRY - { - bRet = m_headers.Add("Set-Cookie", szCookie); - } - _ATLCATCHALL() - { - bRet = FALSE; - dwBuffSize = 0; - } - } - - if (!bRet && dwBuffSize > 0 && dwBuffSize+1 > dwBuffSize) //static buffer wasn't big enough. - { - //We'll have to try dynamically allocating it - //allocate a buffer - CAutoVectorPtr sz; - if (sz.Allocate(dwBuffSize+1)) - { - DWORD dwSizeNew = dwBuffSize + 1; - if (cookie.Render(sz, &dwSizeNew)) - { - _ATLTRY - { - bRet = m_headers.Add("Set-Cookie", (const char *) sz); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - } - } - return bRet; - } - - // Call this function to add a Set-Cookie header to the collection of HTTP headers managed by this object. - // - // szName A nul-terminated string containing the name of the cookie to be sent to the client. - // - // szValue A nul-terminated string containing the value of the cookie to be sent to the client. - BOOL AppendCookie(__in LPCSTR szName, __in_opt LPCSTR szValue) throw() - { - ATLASSERT(szName); - BOOL bRet = FALSE; - _ATLTRY - { - CCookie c(szName, szValue); - bRet = AppendCookie(c); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - } - - // Call this function to add a Set-Cookie header that removes a cookie value - // to the collection of HTTP headers managed by this object. - // - // szName A nul-terminated string containing the name of the cookie to be deleted - BOOL DeleteCookie(__in LPCSTR szName) throw() - { - ATLASSERT(szName); - BOOL bRet = FALSE; - _ATLTRY - { - CCookie cookie(szName, ""); - bRet=cookie.SetMaxAge(0); - if(bRet) - { - bRet = AppendCookie(cookie); - } - } - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - - } - - // Call this function to clear the collection of HTTP response headers maintained by this object. - // - // Note that clearing the headers includes removing all cookies associated with the response - // object. Cookies are sent to the client as Set-Cookie HTTP headers. - void ClearHeaders() throw() - { - m_headers.RemoveAll(); - } - - // Call this function to clear theresponse buffer without sending the contents to the client. - // If you need to empty the buffer but you do want the current contents sent to the client, call Flush instead. - void ClearContent() throw() - { - m_strContent.Empty(); - } - - // Call this function to send the current headers associated with this object to the client. - // - // Returns TRUE on success, FALSE on failure. - // - // The response headers are sent to the client using the current status code for the - // response object. See SetStatusCode and GetStatusCode. - BOOL SendHeadersInternal(__in BOOL fKeepConn=FALSE) - { - if (m_bHeadersSent) - return TRUE; - - ATLENSURE(m_spServerContext != NULL); - - CStringA strHeaders; - RenderHeaders(strHeaders); - - BOOL bRet = FALSE; - _ATLTRY - { - if (m_nStatusCode == 200) - { - bRet = m_spServerContext->SendResponseHeader(strHeaders, "200 OK", fKeepConn); - if (bRet) - { - m_bHeadersSent = TRUE; - } - return bRet; - } - - CFixedStringT strStatus; - CDefaultErrorProvider prov; - GetStatusHeader(strStatus, m_nStatusCode, SUBERR_NONE, &prov); - bRet = m_spServerContext->SendResponseHeader(strHeaders, strStatus, fKeepConn); - if (bRet) - { - m_bHeadersSent = TRUE; - } - } - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - } - - // Call this function to get a string containing all the HTTP headers associated with - // this object in a format suitable for sending to a client. - // - // strHeaders A CStringA reference to which will be appended the HTTP headers. - void RenderHeaders(CStringA& strHeaders) throw() - { - _ATLTRY - { - strHeaders.Preallocate(::ATL::AtlMultiplyThrow(m_headers.GetSize(),64)); - for (int i=0; iGetServerVariable("SERVER_PROTOCOL", szProtocol, &dwProtocolLen) && - !strcmp(szProtocol, "HTTP/1.0")) - AppendHeader("Connection", "Keep-Alive"); - Checked::itoa_s(m_strContent.GetLength(), szProtocol, _countof(szProtocol), 10); - AppendHeader("Content-Length", szProtocol); - bRet = SendHeadersInternal(TRUE); - } - else - bRet = SendHeadersInternal(); - } - if (m_bBufferOutput) - { - DWORD dwLen = 0; - - dwLen = m_strContent.GetLength(); - if (dwLen) - { - if (m_bSendOutput && - m_spServerContext->WriteClient((void *) (LPCSTR) m_strContent, &dwLen) != TRUE) - { - m_strContent.Empty(); - return FALSE; - } - m_strContent.Empty(); - } - } - } // _ATLTRY - _ATLCATCHALL() - { - bRet = FALSE; - } - return bRet; - } - - // Call this function to clear the response object of any headers - // and the contents of the buffer. - void ClearResponse() throw() - { - m_strContent.Empty(); - m_headers.RemoveAll(); - } - - BOOL AsyncPrep(__in BOOL fKeepConn=FALSE) throw() - { - ATLASSUME(m_spServerContext != NULL); - - return SendHeadersInternal(fKeepConn); - } - - BOOL AsyncFlush() throw() - { - ATLASSUME(m_spServerContext != NULL); - - BOOL bRet = SendHeadersInternal(); - - if (bRet && m_bBufferOutput) - { - DWORD dwLen = 0; - - dwLen = m_strContent.GetLength(); - if (dwLen) - { - _ATLTRY - { - if (m_spServerContext->AsyncWriteClient((void *) (LPCSTR) m_strContent, &dwLen) != TRUE) - { - bRet = FALSE; - } - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - } - - return bRet; - } - - BOOL TransmitFile(__in HANDLE hFile, __in LPCSTR szContentType="text/plain") throw() - { - ATLASSUME(m_spServerContext != NULL); - ATLASSERT(hFile != NULL && hFile != INVALID_HANDLE_VALUE); - - SetContentType(szContentType); - - if (m_strContent.GetLength()) - if (!Flush()) - return FALSE; - - BOOL bRet = SendHeadersInternal(); - if (bRet) - { - _ATLTRY - { - bRet = m_spServerContext->TransmitFile(hFile, NULL, NULL, NULL, - 0, 0, NULL, 0, NULL, 0, HSE_IO_ASYNC | HSE_IO_NODELAY); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - - return bRet; - } -}; // class CHttpResponse - - - -#define ATLS_FLAG_NONE 0 -#define ATLS_FLAG_ASYNC 1 // handler might do some async handling - -// push_macro/pop_macro doesn't work in a template definition. -#pragma push_macro("new") -#undef new -template -class PerThreadWrapper : public CComObjectNoLock -{ -public: - void *operator new(size_t /*size*/, void *p) throw() - { - return p; - } - - void operator delete(void * /*p*/) throw() - { - } - - STDMETHOD_(ULONG, Release)() throw() - { - ULONG l = InternalRelease(); - if (l == 0) - { - T *pT = static_cast(this); - ATLASSERT(pT->m_spExtension != NULL); - CIsapiWorker *pWorker = pT->m_spExtension->GetThreadWorker(); - ATLASSERT(pWorker); - - delete this; - if(pWorker) - { - HeapFree(pWorker->m_hHeap, HEAP_NO_SERIALIZE, this); - } - } - return l; - } -}; - -template -inline BOOL CreateRequestHandlerSync(__in IIsapiExtension *pExtension, __deref_out_opt IUnknown **ppOut) -{ - ATLENSURE(pExtension); - ATLENSURE(ppOut); - - CIsapiWorker *pWorker = pExtension->GetThreadWorker(); - ATLENSURE(pWorker); - void *pv = HeapAlloc(pWorker->m_hHeap, HEAP_NO_SERIALIZE, sizeof(PerThreadWrapper)); - if (!pv) - return FALSE; - - PerThreadWrapper *pHandler = new(pv) PerThreadWrapper; - *ppOut = static_cast(pHandler); - pHandler->m_spExtension = pExtension; - - (*ppOut)->AddRef(); - - return TRUE; -} -#pragma pop_macro("new") - -#define DECLARE_ASYNC_HANDLER() \ - static DWORD GetHandlerFlags() \ - { \ - return ATLS_FLAG_ASYNC; \ - } \ - DWORD GetAsyncFlags() \ - { \ - return ATLSRV_INIT_USEASYNC; \ - } - -#define DECLARE_ASYNC_HANDLER_EX() \ - static DWORD GetHandlerFlags() \ - { \ - return ATLS_FLAG_ASYNC; \ - } \ - DWORD GetAsyncFlags() \ - { \ - return (ATLSRV_INIT_USEASYNC|ATLSRV_INIT_USEASYNC_EX); \ - } - - -template -class IRequestHandlerImpl : public IRequestHandler -{ -public: - HINSTANCE m_hInstHandler; - CComPtr m_spServiceProvider; - CComPtr m_spServerContext; - CComPtr m_spExtension; - DWORD m_dwAsyncFlags; - - IRequestHandlerImpl() - :m_hInstHandler(NULL) - { - m_dwAsyncFlags = 0; - } - virtual ~IRequestHandlerImpl() - { - } - - HTTP_CODE GetFlags(__out DWORD *pdwStatus) - { - ATLASSERT(pdwStatus); - THandler *pT = static_cast(this); - - *pdwStatus = pT->GetAsyncFlags(); - if (pT->CachePage()) - *pdwStatus |= ATLSRV_INIT_USECACHE; - -#ifdef _DEBUG - if (*pdwStatus & (ATLSRV_INIT_USEASYNC|ATLSRV_INIT_USEASYNC_EX)) - ATLASSERT(pT->GetHandlerFlags() & ATLS_FLAG_ASYNC); -#endif - - return HTTP_SUCCESS; - } - - HTTP_CODE InitializeHandler(__in AtlServerRequest *pRequestInfo, __in IServiceProvider *pProvider) - { - ATLENSURE(pRequestInfo != NULL); - ATLENSURE(pProvider != NULL); - ATLENSURE(pRequestInfo->hInstDll != NULL); - ATLENSURE(pRequestInfo->pServerContext != NULL); - - // Initialize our internal references to required services - m_hInstHandler = pRequestInfo->hInstDll; - m_spServiceProvider = pProvider; - m_spServerContext = pRequestInfo->pServerContext; - - return HTTP_SUCCESS; - } - - HTTP_CODE InitializeChild(__in AtlServerRequest *pRequestInfo, __in IServiceProvider *pProvider, IHttpRequestLookup * /*pLookup*/) - { - return InitializeHandler(pRequestInfo, pProvider); - } - - void UninitializeHandler() - { - } - - HTTP_CODE HandleRequest( - AtlServerRequest* /*pRequestInfo*/, - IServiceProvider* /*pServiceProvider*/) - { - return HTTP_SUCCESS; - } - - DWORD GetAsyncFlags() - { - return m_dwAsyncFlags; - } - - void SetAsyncFlags(__in DWORD dwAsyncFlags) - { - ATLASSERT((dwAsyncFlags & ~(ATLSRV_INIT_USEASYNC|ATLSRV_INIT_USEASYNC_EX)) == 0); - m_dwAsyncFlags = dwAsyncFlags; - } - - BOOL CachePage() - { - return FALSE; - } - - static DWORD GetHandlerFlags() - { - return ATLS_FLAG_NONE; - } - - // Used to create new instance of this object. A pointer to this - // function is stored in the handler map in user's code. - static BOOL CreateRequestHandler(__in IIsapiExtension *pExtension, __deref_out_opt IUnknown **ppOut) - { - ATLASSERT(ppOut != NULL); - if (ppOut == NULL) - return false; - - *ppOut = NULL; - - if (THandler::GetHandlerFlags() & ATLS_FLAG_ASYNC) - { - THandler *pHandler = NULL; - ATLTRY(pHandler = new CComObjectNoLock); - if (!pHandler) - return FALSE; - *ppOut = static_cast(pHandler); - pHandler->m_spExtension = pExtension; - (*ppOut)->AddRef(); - } - else - { - if (!CreateRequestHandlerSync(pExtension, ppOut)) - return FALSE; - } - - return TRUE; - } - - // Used to initialize the class - // function is stored in the handler map in user's code. - static BOOL InitRequestHandlerClass(IHttpServerContext *pContext, IIsapiExtension *pExt) - { - (pContext); // unused - (pExt); // unused - return TRUE; - } - - // Used to uninitialize the class - // function is stored in the handler map in user's code. - static void UninitRequestHandlerClass() - { - return; - } -}; - -struct CRequestStats -{ - long m_lTotalRequests; - long m_lFailedRequests; - __int64 m_liTotalResponseTime; - long m_lAvgResponseTime; - long m_lCurrWaiting; - long m_lMaxWaiting; - long m_lActiveThreads; - - CRequestStats() throw() - { - m_lTotalRequests = 0; - m_lFailedRequests = 0; - m_liTotalResponseTime = 0; - m_lAvgResponseTime = 0; - m_lCurrWaiting = 0; - m_lMaxWaiting = 0; - m_lActiveThreads = 0; - } - - void RequestHandled(__in AtlServerRequest *pRequestInfo, __in BOOL bSuccess) - { - ATLENSURE(pRequestInfo); - - InterlockedIncrement(&m_lTotalRequests); - if (!bSuccess) - InterlockedIncrement(&m_lFailedRequests); - - long lTicks; - -#ifndef ATL_NO_MMSYS - lTicks = (long) (timeGetTime() - pRequestInfo->dwStartTicks); -#else - lTicks = (long) (GetTickCount() - pRequestInfo->dwStartTicks); -#endif - __int64 liTotalResponseTime = Add64(&m_liTotalResponseTime, lTicks); - long lAv = (long) (liTotalResponseTime / m_lTotalRequests); - InterlockedExchange(&m_lAvgResponseTime, lAv); - - InterlockedDecrement(&m_lActiveThreads); - } - - long GetTotalRequests() throw() - { - return m_lTotalRequests; - } - - long GetFailedRequests() throw() - { - return m_lFailedRequests; - } - - long GetAvgResponseTime() throw() - { - return m_lAvgResponseTime; - } - - void OnRequestReceived() throw() - { - long nCurrWaiting = InterlockedIncrement(&m_lCurrWaiting); - AtlInterlockedUpdateMax(nCurrWaiting, &m_lMaxWaiting); - } - - void OnRequestDequeued() throw() - { - InterlockedDecrement(&m_lCurrWaiting); - InterlockedIncrement(&m_lActiveThreads); - } - - long GetCurrWaiting() throw() - { - return m_lCurrWaiting; - } - - long GetMaxWaiting() throw() - { - return m_lMaxWaiting; - } - - long GetActiveThreads() throw() - { - return m_lActiveThreads; - } - -private: - // not actually atomic, but it will add safely. - - // the returned value is not 100% guaranteed to be - // correct, but should be correct more often than - // just reading the __int64 - // the 2 cases where the return value will not be - // a valid result value from an add are: - // * multiple threads wrap the low part in rapid succession - // * different threads are adding values with different signs - - // this is good enough for our use in RequestHandled - - // we always add positive values and we shouldn't wrap 32-bits often - inline __int64 Add64(__inout __int64* pn, long nAdd) - { - ATLENSURE(pn != NULL); - -#if defined(_WIN64) && defined(_M_CEE) - - // Use System::Threading::Interlocked::Add because InterlockedExchangeAdd is an intrisinc not supported in managed code - // with 64bits compilers. - // Also, System::Threading::Interlocked::Add support 64bits operands. - return System::Threading::Interlocked::Add(*pn, nAdd); - -#else - - long* pnLow = (long*)(LPBYTE(pn) + offsetof(LARGE_INTEGER, LowPart)); - long* pnHigh = (long*)(LPBYTE(pn) + offsetof(LARGE_INTEGER, HighPart)); - - long nOrigLow = InterlockedExchangeAdd(pnLow, nAdd); - long nNewLow = nOrigLow + nAdd; - long nNewHigh = *pnHigh; - if (nAdd > 0 && nNewLow < nOrigLow) - nNewHigh = InterlockedIncrement(pnHigh); - else if (nAdd < 0 && nNewLow > nOrigLow) - nNewHigh = InterlockedDecrement(pnHigh); - - LARGE_INTEGER li; - li.LowPart = nNewLow; - li.HighPart = nNewHigh; - return li.QuadPart; - -#endif - } -}; - -class CStdRequestStats : public CRequestStats -{ - -public: - HRESULT Initialize() throw() - { - return S_OK; - } - - void Uninitialize() throw() - { - } -}; - -#define PERF_REQUEST_OBJECT 100 - -struct CPerfRequestStatObject : public CPerfObject, - public CRequestStats -{ - DECLARE_PERF_CATEGORY_EX(PERF_REQUEST_OBJECT, IDS_PERFMON_REQUEST, IDS_PERFMON_REQUEST_HELP, PERF_DETAIL_NOVICE, 0, sizeof(CPerfRequestStatObject), MAX_PATH, -1); - BEGIN_COUNTER_MAP(CPerfRequestStatObject) - DEFINE_COUNTER(m_lTotalRequests, IDS_PERFMON_REQUEST_TOTAL, IDS_PERFMON_REQUEST_TOTAL_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_lFailedRequests, IDS_PERFMON_REQUEST_FAILED, IDS_PERFMON_REQUEST_FAILED_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_lTotalRequests, IDS_PERFMON_REQUEST_RATE, IDS_PERFMON_REQUEST_RATE_HELP, PERF_COUNTER_COUNTER, -1) - DEFINE_COUNTER(m_lAvgResponseTime, IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME, IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_lCurrWaiting, IDS_PERFMON_REQUEST_CURR_WAITING, IDS_PERFMON_REQUEST_CURR_WAITING_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_lMaxWaiting, IDS_PERFMON_REQUEST_MAX_WAITING, IDS_PERFMON_REQUEST_MAX_WAITING_HELP, PERF_COUNTER_RAWCOUNT, -1) - DEFINE_COUNTER(m_lActiveThreads, IDS_PERFMON_REQUEST_ACTIVE_THREADS, IDS_PERFMON_REQUEST_ACTIVE_THREADS, PERF_COUNTER_RAWCOUNT, -1) - END_COUNTER_MAP() -}; - -class CRequestPerfMon : public CPerfMon -{ -public: - BEGIN_PERF_MAP(_T("ATL Server:Request")) - CHAIN_PERF_CATEGORY(CPerfRequestStatObject) - END_PERF_MAP() -}; - -class CPerfMonRequestStats -{ - CRequestPerfMon m_PerfMon; - CPerfRequestStatObject * m_pPerfObjectInstance; - CPerfRequestStatObject * m_pPerfObjectTotal; - -public: - CPerfMonRequestStats() throw() - { - m_pPerfObjectInstance = NULL; - m_pPerfObjectTotal = NULL; - } - - HRESULT Initialize() throw() - { - HRESULT hr; - - m_pPerfObjectInstance = NULL; - m_pPerfObjectTotal = NULL; - - hr = m_PerfMon.Initialize(); - if (SUCCEEDED(hr)) - { - CPerfLock lock(&m_PerfMon); - if (FAILED(hr = lock.GetStatus())) - { - return hr; - } - - HINSTANCE hInst = _AtlBaseModule.GetModuleInstance(); - WCHAR szName[MAX_PATH]; - if (GetModuleFileNameW(hInst, szName, MAX_PATH) == 0) - { - return E_FAIL; - } - szName[MAX_PATH-1] = 0; - - hr = m_PerfMon.CreateInstanceByName(L"_Total", &m_pPerfObjectTotal); - if (FAILED(hr)) - { - return hr; - } - - hr = m_PerfMon.CreateInstanceByName(szName, &m_pPerfObjectInstance); - if (FAILED(hr)) - { - m_PerfMon.ReleaseInstance(m_pPerfObjectTotal); - m_pPerfObjectTotal = NULL; - return hr; - } - } - - return hr; - } - - void Uninitialize() throw() - { - if (m_pPerfObjectInstance != NULL) - m_PerfMon.ReleaseInstance(m_pPerfObjectInstance); - if (m_pPerfObjectTotal != NULL) - m_PerfMon.ReleaseInstance(m_pPerfObjectTotal); - - m_pPerfObjectInstance = NULL; - m_pPerfObjectTotal = NULL; - - m_PerfMon.UnInitialize(); - } - - void RequestHandled(__in AtlServerRequest *pRequestInfo, __in BOOL bSuccess) throw() - { - if (m_pPerfObjectInstance != NULL) - m_pPerfObjectInstance->RequestHandled(pRequestInfo, bSuccess); - if (m_pPerfObjectTotal != NULL) - m_pPerfObjectTotal->RequestHandled(pRequestInfo, bSuccess); - } - - long GetTotalRequests() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetTotalRequests(); - - return 0; - } - - long GetFailedRequests() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetFailedRequests(); - - return 0; - } - - long GetAvgResponseTime() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetAvgResponseTime(); - - return 0; - } - - void OnRequestReceived() throw() - { - if (m_pPerfObjectInstance != NULL) - m_pPerfObjectInstance->OnRequestReceived(); - if (m_pPerfObjectTotal != NULL) - m_pPerfObjectTotal->OnRequestReceived(); - } - - void OnRequestDequeued() throw() - { - if (m_pPerfObjectInstance != NULL) - m_pPerfObjectInstance->OnRequestDequeued(); - if (m_pPerfObjectTotal != NULL) - m_pPerfObjectTotal->OnRequestDequeued(); - } - - long GetCurrWaiting() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetCurrWaiting(); - - return 0; - } - - long GetMaxWaiting() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetMaxWaiting(); - - return 0; - } - - long GetActiveThreads() throw() - { - if (m_pPerfObjectInstance != NULL) - return m_pPerfObjectInstance->GetActiveThreads(); - - return 0; - } -}; - -class CNoRequestStats -{ -protected: - -public: - - HRESULT Initialize() throw() - { - return S_OK; - } - - void Uninitialize() throw() - { - } - - void RequestHandled(AtlServerRequest * /*pRequestInfo*/, BOOL /*bSuccess*/) throw() - { - } - - long GetTotalRequests() throw() - { - return 0; - } - - long GetFailedRequests() throw() - { - return 0; - } - - long GetAvgResponseTime() throw() - { - return 0; - } - - void OnRequestReceived() throw() - { - } - - void OnRequestDequeued() throw() - { - } - - long GetCurrWaiting() throw() - { - return 0; - } - - long GetMaxWaiting() throw() - { - return 0; - } - - long GetActiveThreads() throw() - { - return 0; - } -}; - -struct ATLServerDllInfo -{ - GETATLHANDLERBYNAME pfnGetHandler; - UNINITIALIZEATLHANDLERS pfnUninitHandlers; - INITIALIZEATLHANDLERS pfnInitHandlers; - IIsapiExtension *pExtension; - IHttpServerContext *pContext; -}; - -class CDllCachePeer -{ -public: - struct DllInfo : public ATLServerDllInfo - { - DllInfo& operator=(__in const DllInfo& right) throw() - { - if (this != &right) - { - pfnGetHandler = right.pfnGetHandler; - pfnUninitHandlers = right.pfnUninitHandlers; - pfnInitHandlers = right.pfnInitHandlers; - pExtension = right.pExtension; - pContext = right.pContext; - } - return *this; - } - }; - - BOOL Add(__in HINSTANCE hInst, __out DllInfo *pInfo) throw(...) - { - ATLENSURE(pInfo!=NULL); - pInfo->pfnInitHandlers = (INITIALIZEATLHANDLERS) GetProcAddress(hInst, ATLS_FUNCID_INITIALIZEHANDLERS); - - pInfo->pfnGetHandler = (GETATLHANDLERBYNAME) GetProcAddress(hInst, ATLS_FUNCID_GETATLHANDLERBYNAME); - if (!pInfo->pfnGetHandler) - return FALSE; - - pInfo->pfnUninitHandlers = (UNINITIALIZEATLHANDLERS) GetProcAddress(hInst, ATLS_FUNCID_UNINITIALIZEHANDLERS); - - if (pInfo->pfnInitHandlers) - { - pInfo->pfnInitHandlers(pInfo->pContext, pInfo->pExtension); - pInfo->pContext = NULL; // won't be valid after this call - } - - return TRUE; - } - - void Remove(HINSTANCE /*hInst*/, __in DllInfo *pInfo) throw(...) - { - ATLENSURE(pInfo!=NULL); - if (pInfo->pfnUninitHandlers) - (*pInfo->pfnUninitHandlers)(); - } - -}; - -inline bool operator==(__in const CDllCachePeer::DllInfo& left, __in const CDllCachePeer::DllInfo& right) throw() -{ - return ( (left.pfnGetHandler == right.pfnGetHandler) && - (left.pfnUninitHandlers == right.pfnUninitHandlers) && - (left.pfnInitHandlers == right.pfnInitHandlers) && - (left.pExtension == right.pExtension) && - (left.pContext == right.pContext) - ); -} - - - -// Helper function to impersonate the client -// on the current thread -inline BOOL AtlImpersonateClient(__in IHttpServerContext *pServerContext) -{ - ATLENSURE(pServerContext); - - // impersonate the calling client on the current thread - HANDLE hToken; - _ATLTRY - { - if (!pServerContext->GetImpersonationToken(&hToken)) - return FALSE; - } - _ATLCATCHALL() - { - return FALSE; - } - - if (!SetThreadToken(NULL, hToken)) - return FALSE; - return TRUE; -} - -// Helper class to set the thread impersonation token -// This is mainly used internally to ensure that we -// don't forget to revert to the process impersonation -// level -class CSetThreadToken -{ -public: - CSetThreadToken() : m_bShouldRevert(FALSE) {} - - BOOL Initialize(__in AtlServerRequest *pRequestInfo) - { - ATLENSURE(pRequestInfo); - m_bShouldRevert = AtlImpersonateClient(pRequestInfo->pServerContext); - return m_bShouldRevert; - } - - ~CSetThreadToken() throw() - { - if( m_bShouldRevert && !RevertToSelf() ) - { - _AtlRaiseException( (DWORD)EXCEPTION_ACCESS_VIOLATION ); - } - } -protected: - BOOL m_bShouldRevert; -}; - - -// push_macro/pop_macro doesn't work in a template definition. -#pragma push_macro("new") -#undef new - - -//Base is the user's class that derives from CComObjectRoot and whatever -//interfaces the user wants to support on the object -template -class _CComObjectHeapNoLock : public Base -{ - public: - typedef Base _BaseClass; - HANDLE m_hHeap; - - _CComObjectHeapNoLock(void* = NULL, HANDLE hHeap = NULL) - { - m_hHeap = hHeap; - } - // Set refcount to -(LONG_MAX/2) to protect destruction and - // also catch mismatched Release in debug builds - ~_CComObjectHeapNoLock() - { - m_dwRef = -(LONG_MAX/2); - FinalRelease(); -#ifdef _ATL_DEBUG_INTERFACES - _AtlDebugInterfacesModule.DeleteNonAddRefThunk(_GetRawUnknown()); -#endif - } - - //If InternalAddRef or InternalRelease is undefined then your class - //doesn't derive from CComObjectRoot - STDMETHOD_(ULONG, AddRef)() throw() {return InternalAddRef();} - STDMETHOD_(ULONG, Release)() throw() - { - ULONG l = InternalRelease(); - if (l == 0) - { - HANDLE hHeap = m_hHeap;; - this->~_CComObjectHeapNoLock(); - if (hHeap != NULL) - { - HeapFree(hHeap, 0, this); - } - } - return l; - } - //if _InternalQueryInterface is undefined then you forgot BEGIN_COM_MAP - STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject) throw() - {return _InternalQueryInterface(iid, ppvObject);} - - static HRESULT WINAPI CreateInstance(_CComObjectHeapNoLock** pp, HANDLE hHeap) throw(); -}; - - - -template -HRESULT WINAPI _CComObjectHeapNoLock::CreateInstance(__deref_out _CComObjectHeapNoLock** pp, __in HANDLE hHeap) throw() -{ - ATLASSERT(pp != NULL); - if (pp == NULL) - return E_POINTER; - *pp = NULL; - - HRESULT hRes = E_OUTOFMEMORY; - // Allocate a fixed block size to avoid fragmentation - void *pv = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, - __max(sizeof(AtlServerRequest), sizeof(_CComObjectHeapNoLock))); - if (pv == NULL) - { - return hRes; - } -#pragma warning(push) -#pragma warning(disable: 6280) - /* prefast noise VSW 493229 */ - _CComObjectHeapNoLock* p = new(pv) _CComObjectHeapNoLock(NULL, hHeap); -#pragma warning(pop) - - p->SetVoid(NULL); - p->InternalFinalConstructAddRef(); - hRes = p->_AtlInitialConstruct(); - if (SUCCEEDED(hRes)) - hRes = p->FinalConstruct(); - if (SUCCEEDED(hRes)) - hRes = p->_AtlFinalConstruct(); - p->InternalFinalConstructRelease(); - if (hRes != S_OK) - { - p->~_CComObjectHeapNoLock(); -#pragma warning(push) -#pragma warning(disable: 6280) - /* prefast noise VSW 493229 */ - HeapFree(hHeap, 0, p); -#pragma warning(pop) - p = NULL; - } - *pp = p; - return hRes; -} - -inline CServerContext* CreateServerContext(__in HANDLE hRequestHeap) throw() -{ - _CComObjectHeapNoLock* pContext; - _CComObjectHeapNoLock::CreateInstance(&pContext, hRequestHeap); - return pContext; -} -#pragma pop_macro("new") - -// _AtlGetHandlerName -// get handler name from stencil file. Ignore all server side comments -// szFileName - the file from which to extract the handler name -// szHandlerName - buffer into which handler name will be copied, -// it is assumed to be of size MAX_PATH+ATL_MAX_HANDLER_NAME+2 -inline HTTP_CODE _AtlGetHandlerName(__in LPCSTR szFileName, __out_ecount(MAX_PATH+ATL_MAX_HANDLER_NAME+2) LPSTR szHandlerName) -{ - ATLASSERT(szFileName); - ATLENSURE(szHandlerName); - - szHandlerName[0] = '\0'; - CAtlFile cfFile; - HRESULT hr; - - _ATLTRY - { - hr = cfFile.Create(CA2CTEX(szFileName), GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING); - if (FAILED(hr) || cfFile.m_h == NULL || GetFileType(cfFile.m_h) != FILE_TYPE_DISK) - { - if (hr == AtlHresultFromWin32(ERROR_FILE_NOT_FOUND)) - return HTTP_NOT_FOUND; - else if (hr == AtlHresultFromWin32(ERROR_ACCESS_DENIED)) - return HTTP_UNAUTHORIZED; - else - return AtlsHttpError(500, IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL); - } - } - _ATLCATCHALL() - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); // CA2CTEX threw - } - - HTTP_CODE hcErr = HTTP_SUCCESS; - DWORD dwRead=0; - LPCSTR szHandler = "handler"; - LPCSTR pszHandlerPos = NULL; - LPSTR pszHandlerName = szHandlerName; - char szBuf[4097]; - LPSTR szCurly = NULL; - LPSTR pszBuf = NULL; - bool bInQuote = false; - - // state: - // 0 = default/unknown - // 1 = have "{" - // 2 = have "{{" -- skip spaces - // 3 = have "{{" -- check "handler" - // 4 = have "handler" -- skip spaces - // 5 = have "handler" -- get name - // 6 = scan until first '}' - // 7 = better be '}' - // 8 = done - int nState = 0; - - do - { - hr = cfFile.Read(szBuf, _countof(szBuf)-1, dwRead); - if (hr != S_OK) - { - return AtlsHttpError(500, ISE_SUBERR_READFILEFAIL); // failed reading - } - - szBuf[dwRead] = '\0'; - pszBuf = szBuf; - - while (*pszBuf && nState != 8) - { - switch (nState) - { - case 0: - // 0 = default/unknown - - // look for the first curly - szCurly = strchr(pszBuf, '{'); - if (!szCurly) - { - // skip to the end of the buffer - pszBuf = szBuf+dwRead-1; - } - else - { - pszBuf = szCurly; - nState = 1; - } - break; - case 1: - // 1 = have "{" - if (*pszBuf == '{') - { - nState = 2; - } - else - { - nState = 0; // if the next character is not a '{', start over - } - break; - case 2: - if (!isspace(static_cast(*pszBuf))) - { - pszHandlerPos = szHandler; - pszBuf--; - nState = 3; - } - break; - case 3: - // 3 = partial handler "h..." - if (*pszBuf != *pszHandlerPos) - { - // not a handler, skip tag - nState = 6; - } - else - { - pszHandlerPos++; - if (!*pszHandlerPos) // at the end of the "handler" part - nState = 4; - } - break; - case 4: - // 4 = have "handler" -- skip spaces - if (!isspace(static_cast(*pszBuf))) - { - if (*pszBuf == '\"') - { - bInQuote = true; - } - else - { - pszBuf--; - } - nState = 5; - } - break; - case 5: - // 5 = have "handler" -- get name - if (isspace(static_cast(*pszBuf)) && !bInQuote) - { - if (*(pszHandlerName-1) != '/') - { - // end of the name -- jump to getting the first '}' - nState = 6; - } - else - { - nState = 4; - } - } - else if (*pszBuf == '}') - { - // end of the name -- jump to getting the second '}' - nState = 7; - } - else if (*pszBuf == '\"') - { - if (bInQuote) - { - bInQuote = false; - } - else - { - hcErr = HTTP_FAIL; - nState = 8; - } - } - else - { - // ensure we don't overwrite the buffer - if (pszHandlerName-szHandlerName >= MAX_PATH+ATL_MAX_HANDLER_NAME_LEN+1) - { - hcErr = HTTP_FAIL; - nState = 8; - } - else - { - *pszHandlerName++ = *pszBuf; - } - } - break; - case 6: - // 6 = scan until first '}' - if (*pszBuf == '}') - nState = 7; - break; - case 7: - // 7 = better be '}' - if (*pszBuf != '}') - { - hcErr = AtlsHttpError(500, ISE_SUBERR_BAD_HANDLER_TAG); - nState = 8; - } - if (*szHandlerName) - nState = 8; - else - nState = 0; - break; - default: - ATLASSERT(FALSE); - return HTTP_INTERNAL_SERVER_ERROR; - } - - pszBuf++; - } - } while (dwRead != 0 && nState != 8); - - *pszHandlerName = '\0'; - - return hcErr; -} - -// _AtlCrackHandler cracks a request path of the form dll_path/handler_name into its -// constituent parts -// szHandlerDllName - the full handler path of the form "dll_path/handler_name" -// szDllPath - the DLL path (should be of length MAX_PATH) -// szHandlerName - the handler name (should be of length ATL_MAX_HANDLER_NAME_LEN+1) -// -inline BOOL _AtlCrackHandler( - __in_z LPCSTR szHandlerDllName, - __out_ecount_part(*pdwszDllPathLen,*pdwszDllPathLen) LPSTR szDllPath, - __inout LPDWORD pdwDllPathLen, - __out_ecount_part(*pdwHandlerNameLen,*pdwHandlerNameLen) LPSTR szHandlerName, - __inout LPDWORD pdwHandlerNameLen) -{ - ATLENSURE( szHandlerDllName != NULL ); - ATLASSERT( szDllPath != NULL ); - ATLENSURE( pdwDllPathLen != NULL ); - ATLASSERT( szHandlerName != NULL ); - ATLASSERT( pdwHandlerNameLen != NULL ); - - BOOL bRet = TRUE; - - // skip leading spaces - while (*szHandlerDllName && isspace(static_cast(*szHandlerDllName))) - ++szHandlerDllName; - - // get the handler name - LPCSTR szSlash = strchr(szHandlerDllName, '/'); - LPCSTR szEnd = NULL; - LPCSTR szSlashEnd = NULL; - - // if it is of the form / - if (szSlash) - { - szEnd = szSlash; - - // skip trailing spaces on - while (szEnd>szHandlerDllName && isspace(static_cast(*(szEnd-1)))) - --szEnd; - - szSlash++; - // skip leading whitespace - while (*szSlash && isspace(static_cast(*szSlash))) - szSlash++; - - // right trim szSlash; - szSlashEnd = szSlash; - while (*szSlashEnd && !isspace(static_cast(*szSlashEnd))) - szSlashEnd++; - } - else // only the - { - szSlash = ATL_HANDLER_NAME_DEFAULT; - szSlashEnd = szSlash+sizeof(ATL_HANDLER_NAME_DEFAULT)-1; - - // do it this way to handle paths with spaces - // (e.g. "some path\subdirectory one\subdirectory two\dll_name.dll") - szEnd = szHandlerDllName+strlen(szHandlerDllName); - - // skip trailing spaces - while (szEnd>szHandlerDllName && isspace(static_cast(*(szEnd-1)))) - --szEnd; - } - - // if the dll path is quoted, strip the quotes - if (*szHandlerDllName == '\"' && *(szEnd-1) == '\"' && szEnd > szHandlerDllName+2) - { - szHandlerDllName++; - szEnd--; - } - - if (*pdwDllPathLen > (DWORD)(szEnd-szHandlerDllName) && (szEnd-szHandlerDllName >= 0)) - { - Checked::memcpy_s(szDllPath, *pdwDllPathLen, szHandlerDllName, szEnd-szHandlerDllName); - szDllPath[szEnd-szHandlerDllName] = '\0'; - *pdwDllPathLen = (DWORD)(szEnd-szHandlerDllName); - } - else - { - *pdwDllPathLen = (DWORD)(szEnd-szHandlerDllName)+1; - bRet = FALSE; - } - - if (*pdwHandlerNameLen > (DWORD)(szSlashEnd-szSlash) && (szSlashEnd-szSlash >= 0)) - { - Checked::memcpy_s(szHandlerName, *pdwHandlerNameLen, szSlash, (szSlashEnd-szSlash)); - szHandlerName[szSlashEnd-szSlash] = '\0'; - *pdwHandlerNameLen = (DWORD)(szSlashEnd-szSlash); - } - else - { - *pdwHandlerNameLen = (DWORD)(szSlashEnd-szSlash)+1; - bRet = FALSE; - } - - return bRet; -} - -inline __checkReturn __success(return==HTTP_SUCCESS) HTTP_CODE _AtlLoadRequestHandler( - __in LPCSTR szDllPath, - __in LPCSTR szHandlerName, - __in IHttpServerContext *pServerContext, - __out HINSTANCE *phInstance, - __deref_out_opt IRequestHandler **ppHandler, - __in IIsapiExtension *pExtension, - __in IDllCache *pDllCache) throw(...) -{ - ATLENSURE(phInstance!=NULL); - ATLENSURE(ppHandler!=NULL); - ATLENSURE(pDllCache!=NULL); - *phInstance = NULL; - *ppHandler = NULL; - - ATLServerDllInfo DllInfo; - DllInfo.pExtension = pExtension; - DllInfo.pContext = pServerContext; - if (!IsFullPathA(szDllPath)) - { - CHAR szFileName[MAX_PATH]; - if (!GetScriptFullFileName(szDllPath, szFileName, pServerContext)) - { - return HTTP_FAIL; - } - - *phInstance = pDllCache->Load(szFileName, (void *)&DllInfo); - } - else - { - *phInstance = pDllCache->Load(szDllPath, (void *)&DllInfo); - } - if (!*phInstance) - { - ATLTRACE( "LoadLibrary failed: '%s' with error: %d\r\n", szDllPath, GetLastError() ); - return AtlsHttpError(500, ISE_SUBERR_LOADLIB); - } - - CComPtr spUnk; - - if (!DllInfo.pfnGetHandler || - !DllInfo.pfnGetHandler(szHandlerName, pExtension, &spUnk) || - FAILED(spUnk->QueryInterface(ppHandler))) - { - pDllCache->Free(*phInstance); - *phInstance = NULL; - return AtlsHttpError(500, ISE_SUBERR_HANDLER_NOT_FOUND); - } - - return HTTP_SUCCESS; -} // _AtlLoadRequestHandler - - -class CTransferServerContext : public CComObjectRootEx, - public CWrappedServerContext -{ -public: - char m_szFileName[MAX_PATH]; - char m_szQueryString[ATL_URL_MAX_PATH_LENGTH+1]; - CStringA m_strUrl; - IWriteStream *m_pStream; - - BEGIN_COM_MAP(CTransferServerContext) - COM_INTERFACE_ENTRY(IHttpServerContext) - END_COM_MAP() - - CTransferServerContext() throw() - { - m_pStream = NULL; - } - - BOOL Initialize(__in CTransferServerContext *pOtherContext) - { - ATLENSURE(pOtherContext!=NULL); - return Initialize(pOtherContext->m_strUrl, pOtherContext->m_pStream, pOtherContext->m_spParent); - } - - BOOL Initialize(__in LPCSTR szUrl, __in IWriteStream *pStream, __in IHttpServerContext *pParent) throw() - { - m_pStream = pStream; - m_spParent = pParent; - - _ATLTRY - { - m_strUrl = szUrl; // we store the URL in case we need to initialize another context from this context - } - _ATLCATCHALL() - { - return FALSE; - } - - long nUrlLen = m_strUrl.GetLength(); - m_szFileName[0] = '\0'; - - if (!IsFullPathA(szUrl)) - { - DWORD dwLen = MAX_PATH; - BOOL bRet = TRUE; - _ATLTRY - { - bRet = m_spParent->GetServerVariable( - "APPL_PHYSICAL_PATH", - m_szFileName, - &dwLen); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - - if (!bRet) - { - return bRet; - } - } - - // check for query params - LPCSTR szMark = strchr(szUrl, '?'); - if (szMark) - { - size_t nPathLen = szMark - szUrl; - size_t nLen; - - if ((nPathLen >= 0) && (nPathLen < MAX_PATH)) - { - nLen = strlen(m_szFileName) + nPathLen; - if (nLen < MAX_PATH) - { -#pragma warning(push) -#pragma warning(disable: 22008) - /* Prefast false warning about unbound nPathLen in the below fragment - - we already have necessary checks few lines above - */ - if (m_szFileName[0]) - { - Checked::strcat_s(m_szFileName, MAX_PATH-nLen, szUrl); - } - else - { - Checked::memcpy_s(m_szFileName, MAX_PATH, szUrl, nPathLen); - m_szFileName[nPathLen] = '\0'; - } -#pragma warning(pop) - } - else - { - return FALSE; // path would overwrite buffer - } - } - else - { - return FALSE; // path would overwrite buffer - } - - // save query params - nLen = strlen(szMark + 1); - if (nLen < ATL_URL_MAX_PATH_LENGTH) - { - Checked::strcpy_s(m_szQueryString, ATL_URL_MAX_PATH_LENGTH, szMark+1); - } - else - { - return FALSE; // url would overwrite buffer - } - } - else - { - // no query string - size_t nLen = strlen(m_szFileName) + nUrlLen; - if (nLen < MAX_PATH) - { - if (m_szFileName[0]) - { - Checked::strcat_s(m_szFileName, MAX_PATH-nLen, szUrl); - } - else - { - Checked::strcpy_s(m_szFileName, MAX_PATH, szUrl); - } - } - else - { - return FALSE; // path would be too long - } - m_szQueryString[0] = '\0'; - } - - return TRUE; - } - BOOL WriteClient(__in_bcount(*pdwBytes) void *pvBuffer, __inout DWORD *pdwBytes) - { - ATLENSURE(m_pStream != NULL); - - HRESULT hr = S_OK; - _ATLTRY - { - m_pStream->WriteStream((LPCSTR) pvBuffer, *pdwBytes, pdwBytes); - } - _ATLCATCHALL() - { - return FALSE; - } - - return SUCCEEDED(hr); - } - - LPCSTR GetQueryString() - { - ATLASSUME(m_spParent); - return m_szQueryString; - } - - LPCSTR GetScriptPathTranslated() - { - ATLASSUME(m_spParent); - return m_szFileName; - } - - LPCSTR GetPathTranslated() - { - ATLASSUME(m_spParent); - return m_szFileName; - } - - // Asynchronous writes will not work properly in a child handler - BOOL AsyncWriteClient(void * /*pvBuffer*/, DWORD * /*pdwBytes*/) - { - ATLASSERT(FALSE); - return FALSE; - } - - // These next few methods are to protect against attempting to parse form data twice - // We tell the new handler that it was a GET request - LPCSTR GetRequestMethod() - { - ATLASSUME(m_spParent); - return "GET"; - } - - // The handler should not query these methods -- they are only useful if attempting to - // parse form data, which is not allowed in child handlers. - BOOL ReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - return FALSE; - } - - BOOL AsyncReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - return FALSE; - } - - DWORD GetTotalBytes() - { - ATLASSERT(FALSE); - return 0; - } - - DWORD GetAvailableBytes() - { - ATLASSERT(FALSE); - return 0; - } - - BYTE *GetAvailableData() - { - ATLASSERT(FALSE); - return NULL; - } - - LPCSTR GetContentType() - { - ATLASSERT(FALSE); - return NULL; - } -}; - -class CAllocContextBase -{ -public: - virtual HTTP_CODE Alloc(IHttpServerContext **ppNewContext) = 0; -}; - -ATL_NOINLINE inline HTTP_CODE _AtlRenderInclude( - __in IHttpServerContext *pServerContextNew, - __in LPCSTR szFileName, - __in LPCSTR szQueryParams, - __in WORD wCodePage, - __in CAllocContextBase *pAllocContext, - __in IServiceProvider *pServiceProvider, - __in_opt IHttpRequestLookup *pLookup, - __inout_opt CStencilState* pState = NULL) -{ - ATLENSURE(pServiceProvider!=NULL); - AtlServerRequest* pRequestInfo = NULL; - HTTP_CODE hcErr = HTTP_SUCCESS; - - // get a pointer to the ISAPI extension - CComPtr spExtension; - if (S_OK != pServiceProvider->QueryInterface(&spExtension) || - !spExtension) - { - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - - // get a pointer to the extension's dll cache - CComPtr spDllCache; - if (S_OK != pServiceProvider->QueryService(__uuidof(IDllCache), - __uuidof(IDllCache), - (void**)&spDllCache) || - !spDllCache) - { - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - -#ifdef _DEBUG - bool bAsyncAllowed = false; -#endif - if (pState && pState->pIncludeInfo) - { - pRequestInfo = pState->pIncludeInfo; - pState->pIncludeInfo = NULL; -#ifdef _DEBUG - bAsyncAllowed = true; -#endif - } - else - { - ATLASSERT(spDllCache); - ATLASSERT(spExtension); - - pRequestInfo = spExtension->CreateRequest(); - if (pRequestInfo == NULL) - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - - pRequestInfo->dwRequestState = ATLSRV_STATE_BEGIN; - pRequestInfo->dwRequestType = ATLSRV_REQUEST_STENCIL; - pRequestInfo->pDllCache = spDllCache; - pRequestInfo->pExtension = spExtension; - pRequestInfo->pServerContext = pServerContextNew; - if (pState && pState->pParentInfo) - { - pRequestInfo->pUserData = pState->pParentInfo->pUserData; - } - - // Extract the file extension of the included file by searching - // for the first '.' from the right. - // Can't use _tcsrchr because we have to use the stencil's codepage - LPCSTR szDot = NULL; - LPCSTR szMark = szFileName; - ATLENSURE(szMark!=NULL); - while (*szMark) - { - if (*szMark == '.') - szDot = szMark; - - LPCSTR szNext = CharNextExA(wCodePage, szMark, 0); - if (szNext == szMark) - { - // embedded null - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return HTTP_FAIL; - } - szMark = szNext; - } - - if (szDot && AsciiStricmp(szDot, c_AtlSRFExtension) == 0) - { - hcErr = spExtension->LoadDispatchFile(szFileName, pRequestInfo); - if (hcErr) - { - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return hcErr; - } - } - else if (szDot && AsciiStricmp(szDot, c_AtlDLLExtension) == 0) - { - // Get the handler name if they used the asdf.dll?Handler=Default notation - char szHandlerName[ATL_MAX_HANDLER_NAME_LEN+1] = { '\0' }; - - LPCSTR szStart = strstr(szQueryParams, "Handler="); - if (szStart && - ((szStart == szQueryParams) || - ((szStart > szQueryParams) && (*(szStart-1) == '&')))) - { - szStart += 8; // Skip past "Handler" and the "=" - LPCSTR szEnd = strchr(szStart, '&'); - if (szEnd) - { - Checked::memcpy_s(szHandlerName, ATL_MAX_HANDLER_NAME_LEN+1, szStart, __min((szEnd-szStart), ATL_MAX_HANDLER_NAME_LEN)); - szHandlerName[__min((szEnd-szStart), ATL_MAX_HANDLER_NAME_LEN)] = '\0'; - } - else - { - if (!SafeStringCopy(szHandlerName, szStart)) - { - // handler name too long - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return HTTP_FAIL; - } - } - } - else - { - ATLASSERT( ATL_MAX_HANDLER_NAME_LEN >= sizeof(ATL_HANDLER_NAME_DEFAULT) ); - Checked::memcpy_s(szHandlerName, ATL_MAX_HANDLER_NAME_LEN+1, ATL_HANDLER_NAME_DEFAULT, sizeof(ATL_HANDLER_NAME_DEFAULT)); - } - - pRequestInfo->dwRequestType = ATLSRV_REQUEST_DLL; - - hcErr = spExtension->LoadRequestHandler(szFileName, szHandlerName, pRequestInfo->pServerContext, - &pRequestInfo->hInstDll, &pRequestInfo->pHandler); - if (hcErr) - { - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return hcErr; - } - } - else - { - // unknown extension - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - - DWORD dwStatus; - hcErr = pRequestInfo->pHandler->GetFlags(&dwStatus); - - if (hcErr) - { - pRequestInfo->pHandler->UninitializeHandler(); - pRequestInfo->pServerContext = NULL; - spExtension->FreeRequest(pRequestInfo); - return hcErr; - } - - if (dwStatus & (ATLSRV_INIT_USEASYNC | ATLSRV_INIT_USEASYNC_EX)) - { -#ifdef _DEBUG - bAsyncAllowed = true; -#endif - ATLENSURE(pAllocContext!=NULL); - hcErr = pAllocContext->Alloc(&pRequestInfo->pServerContext); - if (hcErr) - { - pRequestInfo->pHandler->UninitializeHandler(); - if (pRequestInfo->pServerContext == pServerContextNew) - { - pRequestInfo->pServerContext = NULL; - } - spExtension->FreeRequest(pRequestInfo); - return hcErr; - } - } - - hcErr = pRequestInfo->pHandler->InitializeChild(pRequestInfo, pServiceProvider, pLookup); - if (hcErr) - { - pRequestInfo->pHandler->UninitializeHandler(); - if (pRequestInfo->pServerContext == pServerContextNew) - { - pRequestInfo->pServerContext = NULL; - } - spExtension->FreeRequest(pRequestInfo); - return hcErr; - } - - pRequestInfo->pfnHandleRequest = &IRequestHandler::HandleRequest; - } - - if (pRequestInfo) - { - if (!hcErr) - { - ATLASSERT(pRequestInfo->pfnHandleRequest != NULL); - hcErr = (pRequestInfo->pHandler->*pRequestInfo->pfnHandleRequest)(pRequestInfo, pServiceProvider); - -#ifdef _DEBUG - // must use ATLSRV_INIT_USEASYNC to use ASYNC returns - if (IsAsyncStatus(hcErr)) - { - ATLASSERT(bAsyncAllowed); - } -#endif - - if (IsAsyncStatus(hcErr)) - { - ATLASSERT(pState); // state is required for async - if (IsAsyncContinueStatus(hcErr)) - { - pState->pIncludeInfo = pRequestInfo; - pRequestInfo->dwRequestState = ATLSRV_STATE_CONTINUE; - } - else if (IsAsyncDoneStatus(hcErr)) - { - pRequestInfo->pHandler->UninitializeHandler(); - if (pRequestInfo->pServerContext == pServerContextNew) - { - pRequestInfo->pServerContext = NULL; - } - spExtension->FreeRequest(pRequestInfo); - } - } - else - { - pRequestInfo->pHandler->UninitializeHandler(); - if (pRequestInfo->pServerContext == pServerContextNew) - { - pRequestInfo->pServerContext = NULL; - } - spExtension->FreeRequest(pRequestInfo); - } - } - } - else - { - hcErr = AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - - return hcErr; -} - -// CAllocTransferAsyncContext is an unsupported implementation detail, used -// for implementing _AtlTransferRequest. -class CAllocTransferAsyncContext : - public CAllocContextBase -{ -public: - CAllocTransferAsyncContext(CTransferServerContext *pInitialContext): - m_pInitialContext(pInitialContext) - { - } - - HTTP_CODE Alloc(IHttpServerContext** ppNewContext) - { - if (!ppNewContext) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - *ppNewContext = NULL; - - CComObjectNoLock* pServerContext = NULL; - ATLTRY(pServerContext = new CComObjectNoLock); - if (pServerContext == NULL) - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - pServerContext->Initialize(m_pInitialContext); - pServerContext->AddRef(); - *ppNewContext = pServerContext; - return HTTP_SUCCESS; - } -private: - CTransferServerContext *m_pInitialContext; -}; - -inline HTTP_CODE _AtlTransferRequest( - __in AtlServerRequest *pRequest, - __in IServiceProvider *pServiceProvider, - __in IWriteStream *pWriteStream, - __in_opt IHttpRequestLookup *pLookup, - __in LPCSTR szNewUrl, - __in WORD nCodePage, - __in bool bContinueAfterProcess, - __inout_opt CStencilState *pState) -{ - CComObjectStackEx serverContext; - if (!serverContext.Initialize(szNewUrl, pWriteStream, pRequest->pServerContext)) - return AtlsHttpError(500, 0); - CAllocTransferAsyncContext AsyncAllocObj(&serverContext); - HTTP_CODE hcErr = _AtlRenderInclude(static_cast(&serverContext), - serverContext.m_szFileName, - serverContext.m_szQueryString, - nCodePage, - &AsyncAllocObj, - pServiceProvider, - pLookup, - pState); - if (hcErr == HTTP_SUCCESS && bContinueAfterProcess) - return hcErr; - return HTTP_SUCCESS_NO_PROCESS; -} - -// -// This function is now deprecated. ATL is not using it anymore. -// -inline ATL_DEPRECATED("Do not use this function.") -void __cdecl AtlsSecErrHandlerFunc(int /* nCode */, void * /* pv */) -{ - // - // a buffer overflow has occurred in your code - // - ATLASSERT( FALSE ); - - // - // terminate process (safest thing to do) - // - TerminateProcess( GetCurrentProcess(), 1 ); -} - -// -// Class CIsapiExtension -// The main ISAPI Extension implementation. -// Template parameters -// ThreadPoolClass: Specifies the thread pool that will be used by the -// extension to queue incoming requests. CThreadPool is the -// default and is declared and implemented in ATLUTIL.H. This class -// templatizes on a worker thread class. The worker thread class -// represents an abstraction of a thread that will be used to -// process requests as they are dequeued from the pool's work queue. -// You would change this parameter if you wanted to use a completely -// different thread pool, or, more commonly, if you wanted to use -// a different worker thread class. Request processing code can -// access a pointer to the worker thread class, which allows the -// request handling code to easily access per-thread data. -// CRequestStatClass: Specifies the class to be used to track request statistics -// CNoRequestStats is the default which is a noop class. -// You would change this parameter to provide a class that will -// track request statistics for you. ATL provides CStdRequestStats -// and CPerfRequestStatObject but these classes should be used -// with caution because they require interlocked operations to -// keep track of request statistics which can affect server performance. -// HttpUserErrorTextProvider: This class provides error text messages -// and headers, including resource IDs of error messages to the -// isapi extension's error handling functions. You would change this -// parameter if you wanted to provide your own error headers and/or -// messages in response to error encountered during request processing. -// CPageCacheStats, CStencilCacheStats: These two classes are used to keep -// statistics about the page and stencil caches. You could change these -// paramters if you wanted to track statistics for these caches. ATL -// provides CPerfStatClass and CStdStatClass to store the stat data but -// using these classes can affect server performance because they use -// interlocked operations internally to store the data. -template < class ThreadPoolClass=CThreadPool, - class CRequestStatClass=CNoRequestStats, - class HttpUserErrorTextProvider=CDefaultErrorProvider, - class WorkerThreadTraits=DefaultThreadTraits, - class CPageCacheStats=CNoStatClass, - class CStencilCacheStats=CNoStatClass> -class CIsapiExtension : - public IServiceProvider, public IIsapiExtension, public IRequestStats -{ -private: - -#ifndef ATL_NO_CRITICAL_ISAPI_ERROR - - DWORD m_dwCriticalIsapiError; - -#endif // ATL_NO_CRITICAL_ISAPI_ERROR - -protected: - DWORD m_dwTlsIndex; - - typedef CWorkerThread extWorkerType; - - extWorkerType m_WorkerThread; - ThreadPoolClass m_ThreadPool; - - CDllCache m_DllCache; - CFileCache m_PageCache; - CComObjectGlobal > m_StencilCache; - HttpUserErrorTextProvider m_UserErrorProvider; - HANDLE m_hRequestHeap; - CComCriticalSection m_critSec; - - // Dynamic services stuff - struct ServiceNode - { - HINSTANCE hInst; - IUnknown *punk; - GUID guidService; - IID riid; - - ServiceNode() throw() - { - } - - ServiceNode(const ServiceNode& that) throw() - :hInst(that.hInst), punk(that.punk), guidService(that.guidService), riid(that.riid) - { - } - }; - - class CServiceEqualHelper - { - public: - static bool IsEqual(__in const ServiceNode& t1, __in const ServiceNode& t2) throw() - { - return (InlineIsEqualGUID(t1.guidService, t2.guidService) != 0 && - InlineIsEqualGUID(t1.riid, t2.riid) != 0); - } - }; - - CSimpleArray m_serviceMap; - -public: - CWin32Heap m_heap; - - CRequestStatClass m_reqStats; - - AtlServerRequest *CreateRequest() - { - // Allocate a fixed block size to avoid fragmentation - AtlServerRequest *pRequest = (AtlServerRequest *) HeapAlloc(m_hRequestHeap, - HEAP_ZERO_MEMORY, __max(sizeof(AtlServerRequest), sizeof(_CComObjectHeapNoLock))); - if (!pRequest) - return NULL; - pRequest->cbSize = sizeof(AtlServerRequest); - - return pRequest; - } - - void FreeRequest(__inout AtlServerRequest *pRequest) - { - _ReleaseAtlServerRequest(pRequest); - HeapFree(m_hRequestHeap, 0, pRequest); - } - - CIsapiExtension() throw() - { - m_hRequestHeap = NULL; -#ifdef _DEBUG - m_bDebug = FALSE; -#endif - -#ifndef ATL_NO_CRITICAL_ISAPI_ERROR - - m_dwCriticalIsapiError = 0; - -#endif // ATL_NO_CRITICAL_ISAPI_ERROR - } - - HTTP_CODE TransferRequest( - __in AtlServerRequest *pRequest, - __in IServiceProvider *pServiceProvider, - __in IWriteStream *pWriteStream, - __in_opt IHttpRequestLookup *pLookup, - __in LPCSTR szNewUrl, - __in WORD nCodePage, - __in bool bContinueAfterProcess, - __inout_opt CStencilState *pState) - { - HTTP_CODE hcErr; - _ATLTRY - { - hcErr = _AtlTransferRequest(pRequest, pServiceProvider, pWriteStream, - pLookup, szNewUrl, nCodePage, bContinueAfterProcess, pState); - } - _ATLCATCHALL() - { - hcErr = HTTP_FAIL; - } - return hcErr; - } - -#ifndef ATL_NO_CRITICAL_ISAPI_ERROR - - DWORD ReturnCriticalError(__in EXTENSION_CONTROL_BLOCK *pECB) - { - - _ATLTRY - { - ATLENSURE(pECB); - UINT uResId = 0; - LPCSTR szHeader = NULL; - - CStringA strStatus; - CStringA strBody; - CStringA strFormat; - CStringA strError; - - DWORD dwErr = GetCriticalIsapiError(); - if (!strError.LoadString(dwErr)) - { - strError.Format("Unknown Error %d", dwErr); - } - -#ifdef ATL_CRITICAL_ISAPI_ERROR_LOGONLY - // we've logged the real error - don't send detailed internal info to the user - m_UserErrorProvider.GetErrorText(500, - SUBERR_NONE, - &szHeader, - &uResId); - - if (!uResId || !strBody.LoadString(uResId)) - { - strBody = "A server error has occurred."; - } -#else - m_UserErrorProvider.GetErrorText(500, - ISE_SUBERR_ISAPISTARTUPFAILED, - &szHeader, - &uResId); - if (!uResId || !strFormat.LoadString(uResId)) - { - strFormat = "A critical error has occurred initializing this ISAPI extension: %s"; - } - strBody.Format(strFormat, strError); -#endif - strStatus.Format("500 %s", szHeader); - - HSE_SEND_HEADER_EX_INFO hex; - hex.pszStatus = (LPCSTR)strStatus; - hex.pszHeader = NULL; - hex.cchStatus = (DWORD)strStatus.GetLength(); - hex.cchHeader = 0; - hex.fKeepConn = FALSE; - - pECB->ServerSupportFunction(pECB->ConnID, - HSE_REQ_SEND_RESPONSE_HEADER_EX, - &hex, - NULL, - NULL); - - DWORD dwBodyLen = strBody.GetLength(); - pECB->WriteClient(pECB->ConnID, - (void *) (LPCSTR) strBody, - &dwBodyLen, - NULL); - } - _ATLCATCHALL() - { - return HSE_STATUS_ERROR; - } - return HSE_STATUS_SUCCESS; - } - -#endif // ATL_NO_CRITICAL_ISAPI_ERROR - - DWORD HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpECB) throw() - { - -#ifndef ATL_NO_CRITICAL_ISAPI_ERROR - - if (GetCriticalIsapiError() != 0) - { - return ReturnCriticalError(lpECB); - } - -#endif // ATL_NO_CRITICAL_ISAPI_ERROR - - AtlServerRequest *pRequestInfo = NULL; - - _ATLTRY - { - pRequestInfo = CreateRequest(); - if (pRequestInfo == NULL) - return HSE_STATUS_ERROR; - - CServerContext *pServerContext = NULL; - ATLTRY(pServerContext = CreateServerContext(m_hRequestHeap)); - if (pServerContext == NULL) - { - FreeRequest(pRequestInfo); - return HSE_STATUS_ERROR; - } - - pServerContext->Initialize(lpECB); - pServerContext->AddRef(); - - pRequestInfo->pServerContext = pServerContext; - pRequestInfo->dwRequestType = ATLSRV_REQUEST_UNKNOWN; - pRequestInfo->dwRequestState = ATLSRV_STATE_BEGIN; - pRequestInfo->pExtension = static_cast(this); - pRequestInfo->pDllCache = static_cast(&m_DllCache); -#ifndef ATL_NO_MMSYS - pRequestInfo->dwStartTicks = timeGetTime(); -#else - pRequestInfo->dwStartTicks = GetTickCount(); -#endif - pRequestInfo->pECB = lpECB; - - m_reqStats.OnRequestReceived(); - - if (m_ThreadPool.QueueRequest(pRequestInfo)) - return HSE_STATUS_PENDING; - - if (pRequestInfo != NULL) - { - FreeRequest(pRequestInfo); - } - - } - _ATLCATCHALL() - { - } - - - - return HSE_STATUS_ERROR; - } - - - BOOL QueueRequest(__in AtlServerRequest * pRequestInfo) - { - return m_ThreadPool.QueueRequest(pRequestInfo); - } - - CIsapiWorker *GetThreadWorker() - { - return (CIsapiWorker *) TlsGetValue(m_dwTlsIndex); - } - - BOOL SetThreadWorker(__in CIsapiWorker *pWorker) - { - return TlsSetValue(m_dwTlsIndex, (void*)pWorker); - } - - // Configuration functions -- override in base class if another value is desired - virtual LPCSTR GetExtensionDesc() throw() { return "VC Server Classes"; } - virtual int GetNumPoolThreads() throw() { return 0; } - virtual int GetPoolStackSize() throw() { return 0; } - virtual HANDLE GetIOCompletionHandle() throw() { return INVALID_HANDLE_VALUE; } - virtual DWORD GetDllCacheTimeout() throw() { return ATL_DLL_CACHE_TIMEOUT; } - virtual DWORD GetStencilCacheTimeout() throw() { return ATL_STENCIL_CACHE_TIMEOUT; } - virtual LONGLONG GetStencilLifespan() throw() { return ATL_STENCIL_LIFESPAN; } - - BOOL OnThreadAttach() - { - return SUCCEEDED(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)); - } - - void OnThreadTerminate() - { - CoUninitialize(); - } - -#ifndef ATL_NO_CRITICAL_ISAPI_ERROR - - BOOL SetCriticalIsapiError(__in DWORD dwErr = 1) throw() - { - m_dwCriticalIsapiError = dwErr; - - // send the error to the event log - _ATLTRY - { - CStringA strBody; - CStringA strFormat; - CStringA strError; - - // format an error message - if (!strError.LoadString(dwErr)) - { - strError.Format("Unknown Error %d", dwErr); - } - - if (!strFormat.LoadString(IDS_ATLSRV_CRITICAL_LOGMESSAGE)) - { - strFormat = "A critical error has occurred initializing the ISAPI extension: %s"; - } - strBody.Format(strFormat, strError); - - // take the base module name as the app name - CPath path; - { - CStrBuf buf(path, MAX_PATH); - DWORD dwLen = ::GetModuleFileName(_AtlBaseModule.GetModuleInstance(), buf, MAX_PATH); - if (dwLen == MAX_PATH) - buf.SetLength(MAX_PATH); - } - path.StripPath(); - - // log the event - HANDLE h = RegisterEventSource(NULL, path); - if (h) - { - LPCSTR szBody = strBody; - ReportEventA(h, EVENTLOG_ERROR_TYPE, 0, 0, NULL, 1, 0, &szBody, NULL); - DeregisterEventSource(h); - } - } - _ATLCATCHALL() - { - } - - return TRUE; - } - - DWORD GetCriticalIsapiError() throw() - { - return m_dwCriticalIsapiError; - } - -#else - - BOOL SetCriticalIsapiError(__in DWORD dwErr = 1) throw() - { - dwErr; // not used - return FALSE; - } - - DWORD GetCriticalIsapiError() throw() - { - return 0; - } - -#endif // ATL_NO_CRITICAL_ISAPI_ERROR - - - BOOL GetExtensionVersion(__out HSE_VERSION_INFO* pVer) throw() - { - ATLASSERT(pVer!=NULL); - if(pVer==NULL) - { - return FALSE; - } - // allocate a Tls slot for storing per thread data - m_dwTlsIndex = TlsAlloc(); - - // create a private heap for request data - // this heap has to be thread safe to allow for - // async processing of requests - m_hRequestHeap = HeapCreate(0, 0, 0); - if (!m_hRequestHeap) - { - ATLTRACE(atlTraceISAPI, 0, _T("Failed creating request heap. Using process heap\n")); - m_hRequestHeap = GetProcessHeap(); - if (!m_hRequestHeap) - { - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED); - } - - } - - // create a private heap (synchronized) for - // allocations. This reduces fragmentation overhead - // as opposed to the process heap - HANDLE hHeap = HeapCreate(0, 0, 0); - if (!hHeap) - { - ATLTRACE(atlTraceISAPI, 0, _T("Failed creating extension heap. Using process heap\n")); - hHeap = GetProcessHeap(); - m_heap.Attach(hHeap, false); - } - else - { - m_heap.Attach(hHeap, true); - } - hHeap = NULL; - - if (S_OK != m_reqStats.Initialize()) - { - ATLTRACE(atlTraceISAPI, - 0, - _T("Initialization failed for request statistics perfmon support.\n") - _T("Check request statistics perfmon dll registration\n") ); - } - - if (S_OK != m_WorkerThread.Initialize()) - { - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_WORKERINITFAILED); - } - - if (m_critSec.Init() != S_OK) - { - HRESULT hrIgnore=m_WorkerThread.Shutdown(); - (hrIgnore); - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_CRITSECINITFAILED); - } - - if (S_OK != m_ThreadPool.Initialize(static_cast(this), GetNumPoolThreads(), GetPoolStackSize(), GetIOCompletionHandle())) - { - HRESULT hrIgnore=m_WorkerThread.Shutdown(); - (hrIgnore); - m_critSec.Term(); - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_THREADPOOLFAILED); - } - - if (FAILED(m_DllCache.Initialize(&m_WorkerThread, GetDllCacheTimeout()))) - { - HRESULT hrIgnore=m_WorkerThread.Shutdown(); - (hrIgnore); - m_ThreadPool.Shutdown(); - m_critSec.Term(); - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_DLLCACHEFAILED); - } - - if (FAILED(m_PageCache.Initialize(&m_WorkerThread))) - { - HRESULT hrIgnore=m_WorkerThread.Shutdown(); - (hrIgnore); - m_ThreadPool.Shutdown(); - m_DllCache.Uninitialize(); - m_critSec.Term(); - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_PAGECACHEFAILED); - } - - if (S_OK != m_StencilCache.Initialize(static_cast(this), - &m_WorkerThread, - GetStencilCacheTimeout(), - GetStencilLifespan())) - { - HRESULT hrIgnore=m_WorkerThread.Shutdown(); - (hrIgnore); - m_ThreadPool.Shutdown(); - m_DllCache.Uninitialize(); - m_PageCache.Uninitialize(); - m_critSec.Term(); - return SetCriticalIsapiError(IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED); - } - - pVer->dwExtensionVersion = HSE_VERSION; - Checked::strncpy_s(pVer->lpszExtensionDesc, HSE_MAX_EXT_DLL_NAME_LEN, GetExtensionDesc(), _TRUNCATE); - pVer->lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN - 1] = '\0'; - - return TRUE; - } - - BOOL TerminateExtension(DWORD /*dwFlags*/) throw() - { - m_critSec.Lock(); - for (int i=0; i < m_serviceMap.GetSize(); i++) - { - ATLASSUME(m_serviceMap[i].punk != NULL); - if(m_serviceMap[i].punk != NULL) - { - m_serviceMap[i].punk->Release(); - } - m_DllCache.ReleaseModule(m_serviceMap[i].hInst); - } - m_critSec.Unlock(); - - m_ThreadPool.Shutdown(); - m_StencilCache.Uninitialize(); - m_DllCache.Uninitialize(); - m_PageCache.Uninitialize(); - HRESULT hrShutdown=m_WorkerThread.Shutdown(); - m_reqStats.Uninitialize(); - m_critSec.Term(); - - // free the request heap - if (m_hRequestHeap != GetProcessHeap()) - HeapDestroy(m_hRequestHeap); - - // free the Tls slot that we allocated - TlsFree(m_dwTlsIndex); - - return SUCCEEDED(hrShutdown); - } - - static void WINAPI AsyncCallback(LPEXTENSION_CONTROL_BLOCK /*lpECB*/, - __in PVOID pContext, - __in DWORD cbIO, - __in DWORD dwError) throw(...) - { - AtlServerRequest *pRequestInfo = reinterpret_cast(pContext); - ATLENSURE(pRequestInfo); - if (pRequestInfo->m_hMutex) - { - // synchronize in case the previous async_noflush call isn't finished - // setting up state for the next call. - DWORD dwStatus = WaitForSingleObject(pRequestInfo->m_hMutex, ATLS_ASYNC_MUTEX_TIMEOUT); - if (dwStatus != WAIT_OBJECT_0 && dwStatus != WAIT_ABANDONED) - { - _ATLTRY - { - pRequestInfo->pExtension->RequestComplete(pRequestInfo, 500, ISE_SUBERR_UNEXPECTED); - } - _ATLCATCHALL() - { - ATLTRACE(_T("Warning: Uncaught user exception thrown and caught in AsyncCallback.\n")); - _ATLRETHROW; - } - return; - } - } - - if (pRequestInfo->pfnAsyncComplete != NULL) - ATLTRY((*pRequestInfo->pfnAsyncComplete)(pRequestInfo, cbIO, dwError)); - - if (pRequestInfo->dwRequestState == ATLSRV_STATE_DONE) - { - pRequestInfo->pExtension->RequestComplete(pRequestInfo, HTTP_ERROR_CODE(HTTP_SUCCESS), 0); - } - else if (pRequestInfo->dwRequestState == ATLSRV_STATE_CACHE_DONE) - { - CloseHandle(pRequestInfo->hFile); - pRequestInfo->pFileCache->ReleaseFile(pRequestInfo->hEntry); - pRequestInfo->pExtension->RequestComplete(pRequestInfo, HTTP_ERROR_CODE(HTTP_SUCCESS), 0); - } - else - { - HANDLE hMutex = pRequestInfo->m_hMutex; - pRequestInfo->pExtension->QueueRequest(pRequestInfo); - if (hMutex) - ReleaseMutex(hMutex); - } - } - - void HandleError(__in IHttpServerContext *pServerContext, __in DWORD dwStatus, __in DWORD dwSubStatus) throw() - { - RenderError(pServerContext, dwStatus, dwSubStatus, &m_UserErrorProvider); - } - - void RequestComplete(__inout AtlServerRequest *pRequestInfo, __in DWORD dwStatus, __in DWORD dwSubStatus) - { - ATLASSERT(pRequestInfo); - - if (pRequestInfo->pHandler != NULL) - pRequestInfo->pHandler->UninitializeHandler(); - - DWORD dwReqStatus = dwStatus; - if (!dwReqStatus) - dwReqStatus = 200; - - if (dwStatus >= 400) - { - if (dwSubStatus != SUBERR_NO_PROCESS) - HandleError(pRequestInfo->pServerContext, dwStatus, dwSubStatus); - m_reqStats.RequestHandled(pRequestInfo, FALSE); - } - else - m_reqStats.RequestHandled(pRequestInfo, TRUE); - - CComPtr spServerContext = pRequestInfo->pServerContext; - - FreeRequest(pRequestInfo); - - spServerContext->DoneWithSession(dwReqStatus); - } - - HTTP_CODE GetHandlerName(__in LPCSTR szFileName, __out_ecount(MAX_PATH+ATL_MAX_HANDLER_NAME+2) LPSTR szHandlerName) throw() - { - return _AtlGetHandlerName(szFileName, szHandlerName); - } - - HTTP_CODE LoadDispatchFile(__in LPCSTR szFileName, __out AtlServerRequest *pRequestInfo) - { - ATLASSERT(szFileName); - ATLASSERT(pRequestInfo); - - CStencil *pStencil = NULL; - HCACHEITEM hStencil = NULL; - - // Must have space for the path to the handler + the maximum size - // of the handler, plus the '/' plus the '\0' - CHAR szDllPath[MAX_PATH]; - CHAR szHandlerName[ATL_MAX_HANDLER_NAME_LEN+1]; - - pRequestInfo->pHandler = NULL; - pRequestInfo->hInstDll = NULL; - - m_StencilCache.LookupStencil(szFileName, &hStencil); - - // Stencil was found, check to see if it needs to be refreshed - if (hStencil) - { - m_StencilCache.GetStencil(hStencil, (void **) &pStencil); - pStencil->GetHandlerName(szDllPath, MAX_PATH, szHandlerName, ATL_MAX_HANDLER_NAME_LEN + 1); - - CFileTime cftCurr; - CFileTime cftLastChecked; - cftCurr = CFileTime::GetCurrentTime(); - - pStencil->GetLastChecked(&cftLastChecked); - - CFileTimeSpan span(ATL_STENCIL_CHECK_TIMEOUT * CFileTime::Millisecond); - - if (cftLastChecked + span < cftCurr) - { - CComPtr spCacheCtrl; - m_StencilCache.QueryInterface(__uuidof(IStencilCacheControl), reinterpret_cast(&spCacheCtrl)); - if (spCacheCtrl) - { - CFileTime cftLastModified; - pStencil->GetLastModified(&cftLastModified); - - // Resource based stencils have a last modified filetime of 0 - if (cftLastModified != 0) - { - // for file base stencils, we check whether the file - // has been modified since being put in the cache - WIN32_FILE_ATTRIBUTE_DATA fad; - pStencil->SetLastChecked(&cftCurr); - BOOL bRet = GetFileAttributesExA(szFileName, GetFileExInfoStandard, &fad); - - if ((bRet && cftLastModified < fad.ftLastWriteTime) || - !bRet) - { - // the file has changed or an error has occurred trying to read the file, - // so remove it from the cache and force a reload - spCacheCtrl->RemoveStencil(hStencil); - pStencil = NULL; - hStencil = NULL; - } - } - } - } - } - - - if (!hStencil) - { - CHAR szHandlerDllName[MAX_PATH+ATL_MAX_HANDLER_NAME_LEN+1]; - *szHandlerDllName = '\0'; - - // not in the cache, so open the file - HTTP_CODE hcErr = GetHandlerName(szFileName, szHandlerDllName); - if (hcErr) - return hcErr; - DWORD dwDllPathLen = MAX_PATH; - DWORD dwHandlerNameLen = ATL_MAX_HANDLER_NAME_LEN+1; - if (!_AtlCrackHandler(szHandlerDllName, szDllPath, &dwDllPathLen, szHandlerName, &dwHandlerNameLen)) - { - return AtlsHttpError(500, ISE_SUBERR_HANDLER_NOT_FOUND); - } - ATLASSERT(*szHandlerName); - ATLASSERT(*szDllPath); - if (!*szHandlerName) - { - return AtlsHttpError(500, ISE_SUBERR_HANDLER_NOT_FOUND); - } - } - else - { - m_StencilCache.ReleaseStencil(hStencil); - } - - - return LoadRequestHandler(szDllPath, szHandlerName, pRequestInfo->pServerContext, - &pRequestInfo->hInstDll, &pRequestInfo->pHandler); - } - - HTTP_CODE LoadDllHandler(__in LPCSTR szFileName, __in AtlServerRequest *pRequestInfo) - { - ATLASSERT(szFileName); - ATLENSURE(pRequestInfo); - - _ATLTRY - { - HTTP_CODE hcErr = HTTP_SUCCESS; - CHAR szHandler[ATL_MAX_HANDLER_NAME_LEN+1] = { 'D', 'e', 'f', 'a', 'u', 'l', 't', '\0' }; - LPCSTR szQueryString = pRequestInfo->pServerContext->GetQueryString(); - if (szQueryString != NULL) - { - LPCSTR szHdlr = strstr(szQueryString, "Handler="); - if (szHdlr != NULL) - { - if ((szHdlr == szQueryString) || - ((szHdlr > szQueryString) && (*(szHdlr-1) == '&'))) - { - int nCnt = 0; - LPSTR pszHandler = szHandler; - szHdlr += sizeof("Handler=")-1; - while (*szHdlr && *szHdlr != '&') - { - if (nCnt < ATL_MAX_HANDLER_NAME_LEN) - { - *pszHandler++ = *szHdlr++; - nCnt++; - } - else - { - hcErr = AtlsHttpError(500, ISE_SUBERR_HANDLER_NOT_FOUND); - break; - } - } - if (hcErr == HTTP_SUCCESS) - { - *pszHandler = '\0'; - } - } - } - } - - if (hcErr == HTTP_SUCCESS) - { - CHAR szFile[MAX_PATH+ATL_MAX_HANDLER_NAME_LEN+1]; - if (SafeStringCopy(szFile, szFileName)) - { - hcErr = LoadRequestHandler(szFile, szHandler, pRequestInfo->pServerContext, &pRequestInfo->hInstDll, &pRequestInfo->pHandler); - } - else - { - hcErr = AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - } - - return hcErr; - } - _ATLCATCHALL() - { - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - } - -#pragma warning(push) -#pragma warning(disable: 6014) - virtual __success(return) __checkReturn BOOL GetCacheServerContext(__in AtlServerRequest *pRequestInfo, __in IFileCache *pCache, __deref_out_opt IHttpServerContext **pCacheCtx) - { - ATLENSURE(pCacheCtx); - *pCacheCtx = NULL; - - CComObjectNoLock *pCacheServerContext = NULL; - ATLTRY(pCacheServerContext = new CComObjectNoLock); - if (!pCacheServerContext) - return FALSE; - - if (!pCacheServerContext->Initialize(pRequestInfo->pServerContext, pCache)) - { - delete pCacheServerContext; - return FALSE; - } - - pCacheServerContext->QueryInterface(__uuidof(IHttpServerContext), (void **) pCacheCtx); - - if (*pCacheCtx) - return TRUE; - - delete pCacheServerContext; - return FALSE; - } -#pragma warning(pop) - - virtual BOOL TransmitFromCache(__in AtlServerRequest* pRequestInfo, __out BOOL *pbAllowCaching) - { - ATLENSURE(pRequestInfo); - ATLENSURE(pbAllowCaching); - - *pbAllowCaching = TRUE; - - _ATLTRY - { - if (strcmp(pRequestInfo->pServerContext->GetRequestMethod(), "GET")) - return FALSE; - - char szUrl[ATL_URL_MAX_URL_LENGTH + 1]; - LPCSTR szPathInfo = pRequestInfo->pServerContext->GetPathInfo(); - LPCSTR szQueryString = pRequestInfo->pServerContext->GetQueryString(); - - int nSize = 0; - LPSTR szTo = szUrl; - ATLENSURE(szPathInfo!=NULL); - while (*szPathInfo && nSize < ATL_URL_MAX_URL_LENGTH) - { - *szTo++ = *szPathInfo++; - nSize++; - } - if (nSize >= ATL_URL_MAX_URL_LENGTH) - { - return FALSE; - } - *szTo++ = '?'; - nSize++; - ATLENSURE(szQueryString!=NULL); - while (*szQueryString && nSize < ATL_URL_MAX_URL_LENGTH) - { - *szTo++ = *szQueryString++; - nSize++; - } - if (nSize >= ATL_URL_MAX_URL_LENGTH) - { - return FALSE; - } - *szTo = '\0'; - - HCACHEITEM hEntry; - - if (S_OK == m_PageCache.LookupFile(szUrl, &hEntry)) - { - LPSTR szFileName; - CPageCachePeer::PeerInfo *pInfo; - m_PageCache.GetFile(hEntry, &szFileName, (void **)&pInfo); - ATLENSURE(pInfo); - CAtlFile file; - HRESULT hr = E_FAIL; - - CA2CTEX strFile(szFileName); - hr = file.Create(strFile, - GENERIC_READ, - FILE_SHARE_READ, - OPEN_EXISTING, - FILE_FLAG_SEQUENTIAL_SCAN | FILE_FLAG_OVERLAPPED); - - if (FAILED(hr) || GetFileType(file) != FILE_TYPE_DISK) - { - m_PageCache.ReleaseFile(hEntry); - *pbAllowCaching = FALSE; - return FALSE; - } - - pRequestInfo->pServerContext->SendResponseHeader( - pInfo->strHeader, pInfo->strStatus, FALSE); - HANDLE hFile = file.Detach(); - BOOL bRet = FALSE; - - pRequestInfo->dwRequestState = ATLSRV_STATE_CACHE_DONE; - pRequestInfo->hFile = hFile; - pRequestInfo->hEntry = hEntry; - pRequestInfo->pFileCache = &m_PageCache; - - bRet = pRequestInfo->pServerContext->TransmitFile( - hFile, // The file to transmit - AsyncCallback, pRequestInfo, // The async callback and context - pInfo->strStatus, // HTTP status code - 0, // Send entire file - 0, // Start at the beginning of the file - NULL, 0, // Head and length - NULL, 0, // Tail and length - HSE_IO_ASYNC | HSE_IO_DISCONNECT_AFTER_SEND | HSE_IO_NODELAY // Send asynchronously - ); - - if (!bRet) - { - m_PageCache.ReleaseFile(hEntry); - CloseHandle(hFile); - *pbAllowCaching = FALSE; - return FALSE; - } - return TRUE; - } - } - _ATLCATCHALL() - { - } - - return FALSE; - } - -#if defined(_DEBUG) || defined(ATLS_ENABLE_DEBUGGING) - - BOOL m_bDebug; - // F5 debugging support for VS7 - BOOL ProcessDebug(__inout AtlServerRequest *pRequestInfo) -{ - ATLENSURE(pRequestInfo); - static GUID clsidDebugger[] = { - {0x70F65411, 0xFE8C, 0x4248, {0xBC,0xFF,0x70,0x1C,0x8B,0x2F,0x45,0x29}}, // debugger clsid - {0x62A78AC2, 0x7D9A, 0x4377, {0xB9,0x7E,0x69,0x65,0x91,0x9F,0xDD,0x02}}, // reserved - {0xCC23651F, 0x4574, 0x438F, {0xB4,0xAA,0xBC,0xB2,0x8B,0x6B,0x3E,0xCF}}, // reserved - {0xDBFDB1D0, 0x04A4, 0x4315, {0xB1,0x5C,0xF8,0x74,0xF6,0xB6,0xE9,0x0B}}, // reserved - {0xA4FCB474, 0x2687, 0x4924, {0xB0,0xAD,0x7C,0xAF,0x33,0x1D,0xB8,0x26}}, // reserved - {0xBEB261F6, 0xD5F0, 0x43BA, {0xBA,0xF4,0x8B,0x79,0x78,0x5F,0xFF,0xAF}}, // reserved - {0x8E2F5E28, 0xD4E2, 0x44C0, {0xAA,0x02,0xF8,0xC5,0xBE,0xB7,0x0C,0xAC}}, // reserved - {0x08100915, 0x0F41, 0x4CCF, {0x95,0x64,0xEB,0xAA,0x5D,0x49,0x44,0x6C}} // reserved - }; - _ATLTRY - { - if (!_stricmp(pRequestInfo->pServerContext->GetRequestMethod(), "debug")) - { - // Debugger must be able to validate the client we are impersonating - // on an NT Domain so the client needs to use either NTLM or Negotiate. - DWORD dwAuthTypeSize = 64; - char szAuthType[64] = { 0 }; - - if ( !pRequestInfo->pServerContext->GetServerVariable("AUTH_TYPE", szAuthType, &dwAuthTypeSize) ) - { - // error retrieving authentication type - RequestComplete(pRequestInfo, 501, 0); - return FALSE; - } - - // if it's empty or not NTLM or negotiate we fail. - if ( !( *szAuthType != '\0 ' && - ( !_stricmp(szAuthType, "NTLM") || - !_stricmp(szAuthType, "Negotiate")) - ) ) - { - // wrong authorization type or not authorized - RequestComplete(pRequestInfo, 401, 0); - return FALSE; - } - - DWORD dwHeadersLen = 0; - CStringA strHeaders; - pRequestInfo->pServerContext->GetServerVariable("ALL_HTTP", NULL, &dwHeadersLen); - BOOL bRet = pRequestInfo->pServerContext->GetServerVariable("ALL_HTTP", strHeaders.GetBuffer(dwHeadersLen), &dwHeadersLen); - if (!bRet) - { - RequestComplete(pRequestInfo, 501, 0); - return FALSE; - } - strHeaders.ReleaseBuffer(dwHeadersLen - 1); - LPCSTR szCur = strHeaders; - - while(*szCur) - { - if (!strncmp(szCur, "HTTP_COMMAND:", 13)) - { - szCur += 13; - break; - } - - szCur = strchr(szCur, '\n'); - if (!szCur) - { - RequestComplete(pRequestInfo, 501, 0); - return FALSE; - } - - szCur++; - } - - - if (!_strnicmp(szCur, "start-debug", sizeof("start-debug")-sizeof('\0'))) - { - CCritSecLock Lock(m_critSec.m_sec); - if (m_bDebug) - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_ALREADY_DEBUGGING); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_ALREADY_DEBUGGING); // Already being debugged by another process - return FALSE; - } - CHttpRequest HttpRequest; - HttpRequest.Initialize(pRequestInfo->pServerContext); - HttpRequest.InitFromPost(); - LPCSTR szString; - szString = HttpRequest.FormVars.Lookup("DebugSessionID"); - if (!szString || !*szString) - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_INVALID_SESSION); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_INVALID_SESSION); - return FALSE; - } - CA2W szSessionID(szString); - if (!szSessionID) - { - HandleError(pRequestInfo->pServerContext, 500, ISE_SUBERR_OUTOFMEM); - RequestComplete(pRequestInfo, 500, ISE_SUBERR_OUTOFMEM); - return FALSE; - } - DWORD dwPid = GetCurrentProcessId(); - LPWSTR szPoint = szSessionID; - while (szPoint && *szPoint && wcsncmp(szPoint, L"autoattachclsid=", 16)) - { - szPoint = wcschr(szPoint, ';'); - if (szPoint) - szPoint++; - } - - if (!szPoint || !*szPoint) - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_BAD_ID); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_BAD_ID); - return FALSE; - } - - szPoint += (sizeof("autoattachclsid=") - 1); - WCHAR szClsid[39]; - szClsid[38] = '\0'; - Checked::wcsncpy_s(szClsid, _countof(szClsid), szPoint, _TRUNCATE); - if (szClsid[38] != '\0') - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_BAD_ID); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_BAD_ID); - return FALSE; - } - szClsid[38] = '\0'; - - CLSID clsidDebugAutoAttach = CLSID_NULL; - HRESULT hr = CLSIDFromString(szClsid, &clsidDebugAutoAttach); - - if (hr != S_OK) - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_BAD_ID); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_BAD_ID); - return FALSE; - } - - size_t i=0, - nArrSize = sizeof(clsidDebugger)/sizeof(GUID); - for (i=0; i= nArrSize) - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_BAD_ID); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_BAD_ID); - return FALSE; - } - - CComPtr spDebugAutoAttach; - hr = CoCreateInstance(clsidDebugAutoAttach, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, __uuidof(IDebugAutoAttach), (void**)&spDebugAutoAttach); - if (FAILED(hr)) - { - if (hr == E_ACCESSDENIED) - RequestComplete(pRequestInfo, 401, 0); - else - { - HandleError(pRequestInfo->pServerContext, 204, DBG_SUBERR_COCREATE); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_COCREATE); - } - return FALSE; - } - hr = spDebugAutoAttach->AutoAttach(GUID_NULL, dwPid, AUTOATTACH_PROGRAM_WIN32, 0, szSessionID); - if (FAILED(hr)) - { - char szRetBuf[256]; - int nLen = sprintf_s(szRetBuf, _countof(szRetBuf), "204 HRESULT=0x%.08X;ErrorString=Unable to attach to worker process", hr); - if (nLen > 0) - { - DWORD dwLen = nLen; - pRequestInfo->pServerContext->SendResponseHeader(NULL, szRetBuf, FALSE); - pRequestInfo->pServerContext->WriteClient(szRetBuf, &dwLen); - RequestComplete(pRequestInfo, 204, DBG_SUBERR_ATTACH); - } - return FALSE; - } - m_bDebug = TRUE; - HandleError(pRequestInfo->pServerContext, 200, SUBERR_NONE); - RequestComplete(pRequestInfo, 200, SUBERR_NONE); - return FALSE; - } - else if (!_strnicmp(szCur, "stop-debug", sizeof("stop-debug")-sizeof('\0'))) - { - m_bDebug = FALSE; - HandleError(pRequestInfo->pServerContext, 200, SUBERR_NONE); - RequestComplete(pRequestInfo, 200, SUBERR_NONE); - return FALSE; - } - else - { - RequestComplete(pRequestInfo, 501, SUBERR_NONE); // Not Implemented - return FALSE; - } - } - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } -#endif // defined(_DEBUG) || defined(ATLS_ENABLE_DEBUGGING) - - BOOL DispatchStencilCall(__inout AtlServerRequest *pRequestInfo) - { - ATLENSURE(pRequestInfo!=NULL); - CSetThreadToken sec; - - m_reqStats.OnRequestDequeued(); - - if (!sec.Initialize(pRequestInfo)) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_IMPERSONATIONFAILED); - return FALSE; - } - -#if defined(_DEBUG) || defined(ATLS_ENABLE_DEBUGGING) - if (!ProcessDebug(pRequestInfo)) - return TRUE; -#endif // defined(ATLS_ENABLE_DEBUGGING) - - if (pRequestInfo->m_hMutex) - { - // synchronize in case the previous async_noflush call isn't finished - // setting up state for the next call. - DWORD dwStatus = WaitForSingleObject(pRequestInfo->m_hMutex, ATLS_ASYNC_MUTEX_TIMEOUT); - if (dwStatus != WAIT_OBJECT_0 && dwStatus != WAIT_ABANDONED) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_UNEXPECTED); - return FALSE; - } - } - -#ifdef _DEBUG - bool bAsyncAllowed = false; -#endif - HTTP_CODE hcErr = HTTP_SUCCESS; - if (pRequestInfo->dwRequestState == ATLSRV_STATE_BEGIN) - { - BOOL bAllowCaching = TRUE; - if (TransmitFromCache(pRequestInfo, &bAllowCaching)) // Page is in the cache, send it and bail - { // Async Callback will handle freeing pRequestInfo - return TRUE; - } - - // get the srf filename - LPCSTR szFileName = pRequestInfo->pServerContext->GetScriptPathTranslated(); - - if (!szFileName) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_UNEXPECTED); - return FALSE; - } - - LPCSTR szDot = szFileName + strlen(szFileName) - 1; - - // load a handler - if (AsciiStricmp(szDot - ATLS_EXTENSION_LEN, c_AtlSRFExtension) == 0) - { - pRequestInfo->dwRequestType = ATLSRV_REQUEST_STENCIL; - hcErr = LoadDispatchFile(szFileName, pRequestInfo); - } - else if (AsciiStricmp(szDot - ATLS_DLL_EXTENSION_LEN, c_AtlDLLExtension) == 0) - { - pRequestInfo->dwRequestType = ATLSRV_REQUEST_DLL; - hcErr = LoadDllHandler(szFileName, pRequestInfo); - } - else - { - hcErr = HTTP_FAIL; - } - - if (hcErr) - { - RequestComplete(pRequestInfo, HTTP_ERROR_CODE(hcErr), HTTP_SUBERROR_CODE(hcErr)); - return TRUE; - } - - pRequestInfo->pfnHandleRequest = &IRequestHandler::HandleRequest; - - // initialize the handler - DWORD dwStatus = 0; - - hcErr = pRequestInfo->pHandler->GetFlags(&dwStatus); - if (hcErr) - { - RequestComplete(pRequestInfo, HTTP_ERROR_CODE(hcErr), HTTP_SUBERROR_CODE(hcErr)); - return FALSE; - } - - if (bAllowCaching && ((dwStatus & ATLSRV_INIT_USECACHE) != 0) && - !strcmp(pRequestInfo->pServerContext->GetRequestMethod(), "GET")) - { - CComPtr spCacheCtx; - if (!GetCacheServerContext(pRequestInfo, &m_PageCache, &spCacheCtx) || - !spCacheCtx) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_OUTOFMEM); - return FALSE; - } - - pRequestInfo->pServerContext->Release(); - pRequestInfo->pServerContext = spCacheCtx.Detach(); - } - - if (dwStatus & (ATLSRV_INIT_USEASYNC | ATLSRV_INIT_USEASYNC_EX)) - { -#ifdef _DEBUG - bAsyncAllowed = true; -#endif - if (!pRequestInfo->pServerContext->RequestIOCompletion(AsyncCallback, (DWORD *)pRequestInfo)) - { - RequestComplete(pRequestInfo, 500, SUBERR_NONE); - return FALSE; - } - } - - if (dwStatus & ATLSRV_INIT_USEASYNC_EX) - { - pRequestInfo->m_hMutex = CreateMutex(NULL, FALSE, NULL); - if (pRequestInfo->m_hMutex == NULL) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_SYSOBJFAIL); - return FALSE; - } - - DWORD dwMutexStatus = WaitForSingleObject(pRequestInfo->m_hMutex, 10000); - if (dwMutexStatus != WAIT_OBJECT_0 && dwMutexStatus != WAIT_ABANDONED) - { - RequestComplete(pRequestInfo, 500, ISE_SUBERR_UNEXPECTED); - return FALSE; - } - } - hcErr = pRequestInfo->pHandler->InitializeHandler(pRequestInfo, static_cast(this)); - } -#ifdef _DEBUG - else // pRequestInfo->dwRequestState != ATLSRV_STATE_BEGIN - { - bAsyncAllowed = true; - } -#endif - - ATLENSURE(pRequestInfo->pfnHandleRequest != NULL); - - if (hcErr == HTTP_SUCCESS) - hcErr = (pRequestInfo->pHandler->*pRequestInfo->pfnHandleRequest)(pRequestInfo, static_cast(this)); - - if (hcErr == HTTP_SUCCESS_NO_CACHE) - { - CComPtr spControl; - HRESULT hr = pRequestInfo->pServerContext->QueryInterface(__uuidof(IPageCacheControl), reinterpret_cast(&spControl)); - if (hr == S_OK) - spControl->Cache(FALSE); - } - -#ifdef _DEBUG - // must use ATLSRV_INIT_USEASYNC to use ASYNC returns - if (IsAsyncStatus(hcErr)) - ATLASSERT(bAsyncAllowed); - - // must use ATLSRV_INIT_USEASYNC_EX to use NOFLUSH returns - if (IsAsyncNoFlushStatus(hcErr)) - ATLASSERT(pRequestInfo->m_hMutex); -#endif - - // save hMutex in case pRequestInfo is deleted by AsyncCallback after - // we call StartAsyncFlush but before we check to see if we need to - // call ReleaseMutex - HANDLE hMutex = pRequestInfo->m_hMutex; - - if (IsAsyncStatus(hcErr)) - { - if (IsAsyncDoneStatus(hcErr)) - pRequestInfo->dwRequestState = ATLSRV_STATE_DONE; - else - pRequestInfo->dwRequestState = ATLSRV_STATE_CONTINUE; - - if (IsAsyncFlushStatus(hcErr) && !StartAsyncFlush(pRequestInfo)) - { - RequestComplete(pRequestInfo, 500, SUBERR_NONE); - pRequestInfo = NULL; - } - } - else - { - RequestComplete(pRequestInfo, HTTP_ERROR_CODE(hcErr), HTTP_SUBERROR_CODE(hcErr)); - pRequestInfo = NULL; - } - - if (hMutex) - ReleaseMutex(hMutex); - - return TRUE; - } - - BOOL StartAsyncFlush(__in AtlServerRequest *pRequestInfo) - { - ATLENSURE(pRequestInfo); - if (pRequestInfo->pszBuffer == NULL || pRequestInfo->dwBufferLen == 0) - { - ATLASSERT(FALSE); - return FALSE; - } - - ATLENSURE(pRequestInfo->pServerContext); - BOOL bRet = TRUE; - _ATLTRY - { - bRet = pRequestInfo->pServerContext->AsyncWriteClient( - LPVOID(pRequestInfo->pszBuffer), - &pRequestInfo->dwBufferLen); - } - _ATLCATCHALL() - { - bRet = FALSE; - } - - return bRet; - } - - long GetTotalRequests() - { - return m_reqStats.GetTotalRequests(); - } - - long GetFailedRequests() - { - return m_reqStats.GetFailedRequests(); - } - - long GetAvgResponseTime() - { - return m_reqStats.GetAvgResponseTime(); - } - - long GetCurrWaiting() - { - return m_reqStats.GetCurrWaiting(); - } - - long GetMaxWaiting() - { - return m_reqStats.GetMaxWaiting(); - } - - long GetActiveThreads() - { - return m_reqStats.GetActiveThreads(); - } - - __success(SUCCEEDED(return)) __checkReturn HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, __deref_out void **ppv) - { - if (!ppv) - return E_POINTER; - if (InlineIsEqualGUID(riid, __uuidof(IRequestStats))) - { - *ppv = static_cast(this); - AddRef(); - return S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IServiceProvider))) - { - *ppv = static_cast(this); - AddRef(); - return S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IIsapiExtension))) - { - *ppv = static_cast(this); - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } - - virtual __checkReturn HRESULT STDMETHODCALLTYPE QueryService( - __in REFGUID guidService, - __in REFIID riid, - __deref_out void **ppvObject) - { - if (!ppvObject) - return E_POINTER; - - if (InlineIsEqualGUID(guidService, __uuidof(IDllCache))) - return m_DllCache.QueryInterface(riid, ppvObject); - else if (InlineIsEqualGUID(guidService, __uuidof(IStencilCache))) - return m_StencilCache.QueryInterface(riid, ppvObject); - else if (InlineIsEqualGUID(guidService, __uuidof(IThreadPoolConfig))) - return m_ThreadPool.QueryInterface(riid, ppvObject); - else if (InlineIsEqualGUID(guidService, __uuidof(IAtlMemMgr))) - { - *ppvObject = static_cast(&m_heap); - return S_OK; - } -#ifndef ATL_NO_SOAP - else if (InlineIsEqualGUID(guidService, __uuidof(ISAXXMLReader))) - { - CIsapiWorker *p = GetThreadWorker(); - ATLENSURE( p != NULL ); - return p->m_spReader->QueryInterface(riid, ppvObject); - } -#endif - - // otherwise look it up in the servicemap - return GetService(guidService, riid, ppvObject); - } - - virtual HRESULT AddService(REFGUID guidService, REFIID riid, IUnknown *punkService, HINSTANCE hInstance) - { - if (!punkService) - return E_INVALIDARG; - - if (!m_DllCache.AddRefModule(hInstance)) - return E_FAIL; - - ServiceNode srvNode; - srvNode.hInst = hInstance; - srvNode.punk = punkService; - Checked::memcpy_s(&srvNode.guidService, sizeof(GUID), &guidService, sizeof(guidService)); - Checked::memcpy_s(&srvNode.riid, sizeof(IID), &riid, sizeof(riid)); - - CComCritSecLock lock(m_critSec, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - { - return hr; - } - - // if the service is already there, return S_FALSE - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex >= 0) - return S_FALSE; - - if (!m_serviceMap.Add(srvNode)) - return E_OUTOFMEMORY; - - punkService->AddRef(); - return S_OK; - } - - virtual HRESULT RemoveService(__in REFGUID guidService, __in REFIID riid) - { - ServiceNode srvNode; - Checked::memcpy_s(&srvNode.guidService, sizeof(GUID), &guidService, sizeof(guidService)); - Checked::memcpy_s(&srvNode.riid, sizeof(IID), &riid, sizeof(riid)); - - CComCritSecLock lock(m_critSec, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - { - return hr; - } - - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex < 0) - return S_FALSE; - - ATLASSUME(m_serviceMap[nIndex].punk != NULL); - m_serviceMap[nIndex].punk->Release(); - - HINSTANCE hInstRemove = m_serviceMap[nIndex].hInst; - - m_serviceMap.RemoveAt(nIndex); - - if (!m_DllCache.ReleaseModule(hInstRemove)) - return S_FALSE; - - return S_OK; - } - - __success(SUCCEEDED(return)) __checkReturn HRESULT GetService(__in REFGUID guidService, __in REFIID riid, __deref_out void **ppvObject) throw() - { - if (!ppvObject) - return E_POINTER; - - *ppvObject = NULL; - if (!m_serviceMap.GetSize()) - return E_NOINTERFACE; - - ServiceNode srvNode; - Checked::memcpy_s(&srvNode.guidService, sizeof(GUID), &guidService, sizeof(guidService)); - Checked::memcpy_s(&srvNode.riid, sizeof(IID), &riid, sizeof(riid)); - - CComCritSecLock lock(m_critSec, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - { - return hr; - } - - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex < 0) - return E_NOINTERFACE; - - ATLASSUME(m_serviceMap[nIndex].punk != NULL); - return m_serviceMap[nIndex].punk->QueryInterface(riid, ppvObject); - } - - HTTP_CODE LoadRequestHandler(__in LPCSTR szDllPath, __in LPCSTR szHandlerName, __in IHttpServerContext *pServerContext, - __out HINSTANCE *phInstance, __deref_out IRequestHandler **ppHandler) - { - return _AtlLoadRequestHandler(szDllPath, szHandlerName, pServerContext, - phInstance, ppHandler, this, static_cast(&m_DllCache)); - } // LoadRequestHandler - -}; // class CIsapiExtension - - -//=========================================================================================== -// IMPORTANT NOTE TO USERS: -// DO NOT ASSUME *ANYTHING* ABOUT THE STRUCTURE OF THESE MAPS/ENTRIES/FUNCTIONS--THEY CAN -// AND *WILL* CHANGE IN THE FUTURE. CORRECT USAGE MANDATES THAT YOU USE THE MACROS PROVIDED. -// ABSOLUTELY NO GUARANTEES ABOUT BACKWARD COMPATABILITY ARE MADE FOR MANUALLY DEFINED -// HANDLERS OR FUNCTIONS. -//=========================================================================================== - -typedef BOOL (*CREATEHANDLERFUNC)(IIsapiExtension *pExtension, IUnknown **ppOut); -typedef BOOL (*INITHANDLERFUNC)(IHttpServerContext*, IIsapiExtension*); -typedef void (*UNINITHANDLERFUNC)(); - -struct _HANDLER_ENTRY -{ - LPCSTR szName; - CREATEHANDLERFUNC pfnCreate; - INITHANDLERFUNC pfnInit; - UNINITHANDLERFUNC pfnUninit; -}; -// definitions of data segments and _HANDLER_ENTRY delimiters -#pragma section("ATLS$A", read, shared) -#pragma section("ATLS$Z", read, shared) -#pragma section("ATLS$C", read, shared) -extern "C" -{ -__declspec(selectany) __declspec(allocate("ATLS$A")) ATL::_HANDLER_ENTRY * __phdlrA = NULL; -__declspec(selectany) __declspec(allocate("ATLS$Z")) ATL::_HANDLER_ENTRY * __phdlrZ = NULL; -} - -#if !defined(_M_IA64) -#pragma comment(linker, "/merge:ATLS=.rdata") -#endif - -#ifndef HANDLER_ENTRY_PRAGMA - -#if defined(_M_IX86) -#define HANDLER_ENTRY_PRAGMA(class, line) __pragma(comment(linker, "/include:___phdlrEntry_" #class "_" #line)); -#elif defined(_M_IA64) -#define HANDLER_ENTRY_PRAGMA(class, line) __pragma(comment(linker, "/include:__phdlrEntry_" #class "_" #line)); -#elif defined(_M_AMD64) -#define HANDLER_ENTRY_PRAGMA(class, line) __pragma(comment(linker, "/include:__phdlrEntry_" #class "_" #line)); -#else -#error Unknown Platform. define HANDLER_ENTRY_PRAGMA -#endif - -#endif // HANDLER_ENTRY_PRAGMA - -// DECLARE_REQUEST_HANDLER macro -#define __DECLARE_REQUEST_HANDLER_INTERNAL(handlerName, className, classQName, lineNum) \ -__declspec(selectany) ATL::_HANDLER_ENTRY __hdlrEntry_ ## className ## _ ## lineNum = { handlerName, classQName::CreateRequestHandler, classQName::InitRequestHandlerClass, classQName::UninitRequestHandlerClass }; \ -extern "C" __declspec(allocate("ATLS$C")) __declspec(selectany) \ -ATL::_HANDLER_ENTRY * const __phdlrEntry_ ## className ## _ ## lineNum = &__hdlrEntry_ ## className ## _ ## lineNum; \ -HANDLER_ENTRY_PRAGMA(className, lineNum) \ -__if_not_exists(GetAtlHandlerByName) \ -{ \ -extern "C" ATL_NOINLINE inline BOOL __declspec(dllexport) __stdcall GetAtlHandlerByName(LPCSTR szHandlerName, IIsapiExtension *pExtension, IUnknown **ppHandler) throw() \ -{ \ - *ppHandler = NULL; \ - ATL::_HANDLER_ENTRY **pEntry = &__phdlrA; \ - while (pEntry != &__phdlrZ) \ - { \ - if (*pEntry && (*pEntry)->szName) \ - { \ - if (strcmp((*pEntry)->szName, szHandlerName)==0) \ - { \ - return (*(*pEntry)->pfnCreate)(pExtension, ppHandler); \ - } \ - } \ - pEntry++; \ - } \ - return FALSE; \ -} \ -extern "C" ATL_NOINLINE inline BOOL __declspec(dllexport) __stdcall InitializeAtlHandlers(IHttpServerContext *pContext, IIsapiExtension *pExt) throw() \ -{ \ - ATL::_HANDLER_ENTRY **pEntry = &__phdlrA; \ - BOOL bRet = TRUE; \ - while (pEntry != &__phdlrZ) \ - { \ - if (*pEntry && (*pEntry)->szName && (*pEntry)->pfnInit) \ - { \ - bRet = (*(*pEntry)->pfnInit)(pContext, pExt); \ - if (!bRet) \ - break; \ - } \ - pEntry++; \ - } \ - if (!bRet) \ - { \ - if (pEntry == &__phdlrA) \ - return FALSE; \ - do \ - { \ - pEntry--; \ - if(*pEntry) \ - (*(*pEntry)->pfnUninit)(); \ - } \ - while (pEntry != &__phdlrA); \ - } \ - return bRet; \ -} \ -extern "C" ATL_NOINLINE inline void __declspec(dllexport) __stdcall UninitializeAtlHandlers() throw() \ -{\ - ATL::_HANDLER_ENTRY **pEntry = &__phdlrA; \ - while (pEntry != &__phdlrZ) \ - { \ - if (*pEntry && (*pEntry)->szName && (*pEntry)->pfnUninit) \ - { \ - (*(*pEntry)->pfnUninit)(); \ - } \ - pEntry++; \ - } \ -} \ -} - -#define __DECLARE_REQUEST_HANDLER(handlerName, className, classQName, lineNum) __DECLARE_REQUEST_HANDLER_INTERNAL(handlerName, className, classQName, lineNum) -#define DECLARE_REQUEST_HANDLER(handlerName, className, classQName) __DECLARE_REQUEST_HANDLER(handlerName, className, classQName, __COUNTER__) - -#define BEGIN_HANDLER_MAP() -#define HANDLER_ENTRY(handlerName, className) DECLARE_REQUEST_HANDLER(handlerName, className, className) -#define HANDLER_ENTRY_EX(handlerName, className, classQName) DECLARE_REQUEST_HANDLER(handlerName, className, classQName) -#define END_HANDLER_MAP() - -#define __HANDLER_ENTRY_SDL_INTERNAL(handlerString, handlerClass, handlerQClass, sdlClassName, lineNum)\ -_ATLSOAP_DECLARE_WSDL_SRF() \ -extern __declspec(selectany) const char const s_szClassName##sdlClassName##lineNum[]=handlerString;\ -typedef ATL::CSDLGenerator sdlClassName; \ -HANDLER_ENTRY_EX(handlerString, handlerClass, handlerQClass)\ -HANDLER_ENTRY(#sdlClassName, sdlClassName) - -#define __HANDLER_ENTRY_SDL(handlerString, handlerClass, handlerQClass, sdlClassName, lineNum) __HANDLER_ENTRY_SDL_INTERNAL(handlerString, handlerClass, handlerQClass, sdlClassName, lineNum) -#define HANDLER_ENTRY_SDL(handlerString, handlerClass, handlerQClass, sdlClassName) __HANDLER_ENTRY_SDL(handlerString, handlerClass, handlerQClass, sdlClassName, __COUNTER__) -// -// Use this class to check the authorization level of a client who is making -// a request to this application. This class checks for the stronger authentication -// levels (NTLM and Negotiate). You can call it directly from an implementation -// of HandleRequest to check authorization before handling a request. -#define MAX_AUTH_TYPE 50 -#define MAX_NAME_LEN 255 - -template -class CVerifyAuth -{ -public: - HTTP_CODE IsAuthorized(__in AtlServerRequest *pInfo, __in_opt const SID* psidAuthGroup) - { - ATLENSURE(pInfo); - ATLENSURE(pInfo->pServerContext); - ATLASSERT(psidAuthGroup); - ATLASSERT(::IsValidSid((PSID) psidAuthGroup)); - - HTTP_CODE hcErr = HTTP_UNAUTHORIZED; - char szAuthType[MAX_AUTH_TYPE]; - DWORD dwSize = MAX_AUTH_TYPE; - _ATLTRY - { - if (pInfo->pServerContext->GetServerVariable("AUTH_TYPE", - szAuthType, &dwSize)) - { - if (szAuthType[0] && (!_stricmp(szAuthType, "NTLM") - || !_stricmp(szAuthType, "Negotiate"))) - { - // if we were passed a group name - // we check to see that the logged on user is part - // of that group, else we just return success. - if (psidAuthGroup) - { - T* pT = static_cast(this); - if (pT->CheckAccount(pInfo->pServerContext, psidAuthGroup)) - hcErr = HTTP_SUCCESS; - else - hcErr = pT->HandleError(pInfo); - } - else - hcErr = HTTP_SUCCESS; - } - } - } - _ATLCATCHALL() - { - hcErr = HTTP_FAIL; - } - - return hcErr; - } - - virtual bool CheckAccount(IHttpServerContext *pContext, const SID *psidAuthGroup) throw() - { - (pContext); // unused - (psidAuthGroup); // unused - return false; - } - - HTTP_CODE HandleError(AtlServerRequest *pRequestInfo) throw() - { - pRequestInfo; // unused - return HTTP_FAIL; - } - - __checkReturn bool CheckAuthAccount(__in IHttpServerContext *pContext, __in const SID* psidAuthGroup) throw() - { - ATLASSERT(pContext); - ATLASSERT(psidAuthGroup); - if (!pContext || !psidAuthGroup) - return false; - - HANDLE hToken = INVALID_HANDLE_VALUE; - bool bIsMember; - _ATLTRY - { - if (!pContext->GetImpersonationToken(&hToken) || - hToken == INVALID_HANDLE_VALUE) - return false; - - CAccessToken tok; - tok.Attach(hToken); - bool bRet = tok.CheckTokenMembership(CSid(psidAuthGroup), &bIsMember); - tok.Detach(); - - if (!bRet) - return false; - } - _ATLCATCHALL() - { - bIsMember = false; - } - - return bIsMember; - } -}; - -// Checks that the user that is logging on is in the required group -class CDefaultAuth : - public CVerifyAuth -{ -public: - virtual bool CheckAccount(__in IHttpServerContext *pContext, __in const SID* psidAuthGroup) throw() - { - return CheckAuthAccount(pContext, psidAuthGroup); - } - - HTTP_CODE HandleError(__in AtlServerRequest *pRequestInfo) throw() - { - ATLASSERT(pRequestInfo); // should always be valid - if(!pRequestInfo) - { - return HTTP_FAIL; - } - - _ATLTRY - { - CHttpResponse response(pRequestInfo->pServerContext); - response.Write(GetErrorResponse()); - response.Flush(); - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - - return HTTP_SUCCESS_NO_PROCESS; - } - - virtual LPCSTR GetErrorResponse() - { - static const char *szResponse = "" - "

NOT AUTHORIZED

" - ""; - return szResponse; - } - -}; - -} // namespace ATL -#pragma pack(pop) - -#pragma warning(pop) - -#endif // __ATLISAPI_H__ diff --git a/ATL90/include/atlmime.h b/ATL90/include/atlmime.h deleted file mode 100644 index 06d4fd2..0000000 --- a/ATL90/include/atlmime.h +++ /dev/null @@ -1,2406 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLMIME_H__ -#define __ATLMIME_H__ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible - -#ifndef _CPPUNWIND -#pragma warning (push) -#pragma warning(disable: 4702) // unreachable code -#endif // _CPPUNWIND - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -#ifndef ATLMIME_SEPARATOR -#define ATLMIME_SEPARATOR "\r\n\r\n--" -#endif//ATLMIME_SEPARATOR - -#ifndef ATLMIME_VERSION -#define ATLMIME_VERSION "MIME-Version: 1.0" -#endif//ATLMIME_VERSION - -#ifndef ATLMIME_EMAIL -#define ATLMIME_EMAIL "email" -#endif//ATLMIME_EMAIL - -extern __declspec(selectany) const DWORD ATL_MIME_BOUNDARYLEN = 32; -extern __declspec(selectany) const DWORD ATL_MIME_DATE_LEN = 64; - -// Called when message is sent - sets the "Date:" field -inline size_t SetRfc822Time(__out_ecount_part_z_opt(dwLen, return) LPSTR szDate, __in size_t dwLen) throw() -{ - // Max buffer size required(including NULL) - 38 - const size_t s_dwMaxBufferLen = 38; - if (szDate == NULL) - { - return s_dwMaxBufferLen; - } - - if (dwLen < 38) - { - return 0; - } - static const LPCSTR s_months[12] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - - static const LPCSTR s_days[7] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; - - SYSTEMTIME st; - DWORD dwTimeZoneId=TIME_ZONE_ID_UNKNOWN; - CHAR cDiff; - LONG ltzBias=0; - LONG ltzHour; - LONG ltzMinute; - TIME_ZONE_INFORMATION tzi; - - GetLocalTime(&st); - - // Gets TIME_ZONE_INFORMATION - memset(&tzi, 0, sizeof(tzi)); - dwTimeZoneId = GetTimeZoneInformation(&tzi); - switch (dwTimeZoneId) - { - case TIME_ZONE_ID_STANDARD: - ltzBias = tzi.Bias + tzi.StandardBias; - break; - - case TIME_ZONE_ID_DAYLIGHT: - ltzBias = tzi.Bias + tzi.DaylightBias; - break; - - case TIME_ZONE_ID_UNKNOWN: - default: - ltzBias = tzi.Bias; - break; - } - - // Set Hour Minutes and time zone dif - ltzHour = ltzBias / 60; - ltzMinute = ltzBias % 60; - cDiff = (ltzHour < 0) ? '+' : '-'; - - int nDay = (st.wDayOfWeek > 6) ? 0 : st.wDayOfWeek; - int nMonth = st.wMonth = (WORD)((st.wMonth < 1 || st.wMonth > 12) ? 0 : st.wMonth - 1); - - - // Constructs RFC 822 format: "ddd, dd mmm yyyy hh:mm:ss +/- hhmm\0" - sprintf_s(szDate, dwLen, "Date: %3s, %d %3s %4d %02d:%02d:%02d %c%02d%02d", - s_days[nDay], // "ddd" - st.wDay, // "dd" - s_months[nMonth], // "mmm" - st.wYear, // "yyyy" - st.wHour, // "hh" - st.wMinute, // "mm" - st.wSecond, // "ss" - cDiff, // "+" / "-" - abs (ltzHour), // "hh" - abs (ltzMinute)); // "mm" - return s_dwMaxBufferLen; -} - -inline DWORD GetContentTypeFromFileName(LPCTSTR szFileName, CSimpleString& strContentType) throw() -{ - if (szFileName == NULL) - { - return ERROR_INVALID_DATA; - } - - DWORD dwErr = ERROR_PATH_NOT_FOUND; - _ATLTRY - { - // get the file extension - TCHAR szExt[_MAX_EXT]; - Checked::tsplitpath_s(szFileName, NULL, 0, NULL, 0, NULL, 0, szExt, _countof(szExt)); - if (*szExt) - { - // Query the content type from the registry - CRegKey rkContentType; - dwErr = rkContentType.Open(HKEY_CLASSES_ROOT, szExt, KEY_READ); - if (dwErr == ERROR_SUCCESS) - { - ULONG nChars=0; - dwErr = rkContentType.QueryStringValue(_T("Content Type"), NULL, &nChars); - if (dwErr == ERROR_SUCCESS) - { - LPTSTR szBuf = strContentType.GetBuffer(nChars); - dwErr = rkContentType.QueryStringValue(_T("Content Type"), szBuf, &nChars); - strContentType.ReleaseBuffer(nChars); - } - } - } - - if (dwErr != ERROR_SUCCESS) - { - // default to application/octet-stream - strContentType.SetString(_T("application/octet-stream"), sizeof("application/octet-stream")-1); - } - } - _ATLCATCHALL() - { - dwErr = ERROR_OUTOFMEMORY; - } - - return dwErr; -} - -// CMimeBodyPart is an abstract base class for the body parts -// CMimeAttachment, CMimeText, CMimeHeader. -class CMimeBodyPart -{ -public: - - virtual ~CMimeBodyPart() = 0 {} - - // WriteData - pure virtual method to dump the data for a body part. - virtual BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary, DWORD dwFlags = 0) = 0; - - // GetContentType - pure virtual method to get the content of a body part - virtual LPCSTR GetContentType() = 0; - - // GetCharset - virtual method to get the character set of a body part - // (defaults to ATLSMTP_DEFAULT_CSET). - virtual LPCSTR GetCharset() - { - return ATLSMTP_DEFAULT_CSET; - } - - virtual CMimeBodyPart* Copy() = 0; - -protected: - - // MakeMimeHeader - pure virutal method to create a MIME header for a - // body part. - virtual BOOL MakeMimeHeader(CStringA& header, LPCSTR szBoundary) = 0; -}; // class CMimeBodyPart - - -// This enum is used with the X-Priority part of the message header -enum ATL_MIME_PRIORITY -{ - ATL_MIME_HIGH_PRIORITY = 1, - ATL_MIME_NORMAL_PRIORITY = 3, - ATL_MIME_LOW_PRIORITY = 5, - ATL_MIME_PRIORITY_ERROR = 0 -}; - - -// CMimeHeader describes the basic RFC 822 message header. -// It also serves as the base class for the CMimeMessage object. -class CMimeHeader : public CMimeBodyPart -{ -protected: - - // Pointer to MLANG's IMultiLanguage interface. - // This is used in doing conversion from code pages - // to MIME-compatible character sets. - CComPtr m_spMultiLanguage; - - //Basic Header Parts - CStringA m_strFrom; - CStringA m_strTo; - CStringA m_strCc; - CStringA m_strBcc; - CStringA m_strSubject; - - //Extended Header Parts - ATL_MIME_PRIORITY m_nPriority; - CStringA m_XHeader; - - //Display Names - CStringA m_strSenderName; - - //MIME Character Sets - char m_szSubjectCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - char m_szSenderCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - - //Recipient and CC charsets are encoded in the Add methods - -public: - - CMimeHeader() throw() - :m_nPriority(ATL_MIME_NORMAL_PRIORITY) - { - m_szSubjectCharset[0] = '\0'; - m_szSenderCharset[0] = '\0'; - } - - ~CMimeHeader() throw() - { - } - - // Initialize MLang for multilanguage support - inline BOOL Initialize(IMultiLanguage* pMultiLanguage = NULL) throw() - { - if (pMultiLanguage != NULL) - { - m_spMultiLanguage = pMultiLanguage; - } - else - { - HRESULT hr = m_spMultiLanguage.CoCreateInstance(__uuidof(CMultiLanguage), NULL, CLSCTX_INPROC_SERVER); - if (hr != S_OK) - return FALSE; - } - return TRUE; - } - - // Get the content type - virtual inline LPCSTR GetContentType() throw() - { - return "text/plain"; - } - - // Get the character set - virtual inline LPCSTR GetCharset() throw() - { - return "iso-8859-1"; - } - - virtual ATL_NOINLINE CMimeBodyPart* Copy() throw( ... ) - { - CAutoPtr pNewHeader; - ATLTRY(pNewHeader.Attach(new CMimeHeader)); - if (pNewHeader) - *pNewHeader = *this; - - return pNewHeader.Detach(); - } - - const CMimeHeader& operator=(const CMimeHeader& that) throw( ... ) - { - if (this != &that) - { - m_spMultiLanguage = that.m_spMultiLanguage; - m_strFrom = that.m_strFrom; - m_strTo = that.m_strTo; - m_strCc = that.m_strCc; - m_strSubject = that.m_strSubject; - - m_nPriority = that.m_nPriority; - m_XHeader = that.m_XHeader; - - m_strSenderName = that.m_strSenderName; - - Checked::strcpy_s(m_szSubjectCharset, ATL_MAX_ENC_CHARSET_LENGTH, that.m_szSubjectCharset); - Checked::strcpy_s(m_szSenderCharset, ATL_MAX_ENC_CHARSET_LENGTH, that.m_szSenderCharset); - } - - return *this; - } - - // Set the priority of the message - inline BOOL SetPriority(ATL_MIME_PRIORITY nPriority) throw() - { - if (nPriority < 0) - return FALSE; - m_nPriority = nPriority; - return TRUE; - } - - // Get the priority of the message - inline ATL_MIME_PRIORITY GetPriority() throw() - { - return m_nPriority; - } - - // Set the display (friendly) name for the header - inline BOOL SetSenderName(LPCTSTR szName, UINT uiCodePage = 0) throw() - { - if (szName == NULL) - return FALSE; - - CHeapPtr szNamePtr; - UINT nLen(0); - - BOOL bRet = AtlMimeConvertString(m_spMultiLanguage, uiCodePage, szName, &szNamePtr, &nLen); - if (bRet) - { - _ATLTRY - { - m_strSenderName.Empty(); - m_strSenderName.Append(szNamePtr, (int) nLen); - } - _ATLCATCHALL() - { - return FALSE; - } - bRet = AtlMimeCharsetFromCodePage(m_szSenderCharset, uiCodePage, m_spMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH); - } - - return bRet; - } - - // Get the display (friendly) name for the sender - inline LPCSTR GetSenderName() throw() - { - return m_strSenderName; - } - - // Append a user defined header (should not contain CRLF) - inline BOOL AppendUserDefinedHeader(LPCTSTR szHeaderName, LPCTSTR szHeader, UINT uiCodePage = 0) throw() - { - if ((szHeader == NULL) || (szHeaderName == NULL)) - return FALSE; - - _ATLTRY - { - CHeapPtr szName; - UINT nLen(0); - - BOOL bRet = AtlMimeConvertString(m_spMultiLanguage, uiCodePage, szHeader, &szName, &nLen); - if (bRet) - { - // get the charset - char szCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - bRet = AtlMimeCharsetFromCodePage(szCharset, uiCodePage, m_spMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH); - - if (bRet) - { - CStringA str; - str.Append(szName, (int)nLen); - - // encode the string - CHeapPtr szBuf; - DWORD dwReqLen = QEncodeGetRequiredLength(str.GetLength(), - ATL_MAX_ENC_CHARSET_LENGTH); - - if (szBuf.Allocate(dwReqLen) == false) - { - return FALSE; - } - - DWORD dwLength(0); - BOOL bEncoded = FALSE; - if (!GetEncodedString(str, szCharset, szBuf, dwReqLen, dwLength, bEncoded)) - { - return FALSE; - } - - // add to m_XHeader - m_XHeader += CT2CA(szHeaderName); - m_XHeader.Append(": ", 2); - m_XHeader.Append(szBuf, dwLength); - m_XHeader.Append("\r\n", 2); - } - } - - return bRet; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Add a recipient ("To:" line) - inline BOOL AddRecipient(LPCTSTR szAddress, LPCTSTR szName = NULL, UINT uiCodePage = 0) throw() - { - return AddRecipientHelper(m_strTo, szAddress, szName, uiCodePage); - } - - // Get the recipients string ("To:" line) - inline LPCSTR GetRecipients() throw() - { - return m_strTo; - } - - // Clear all recipients ("To:" line) - inline BOOL ClearRecipients() throw() - { - m_strTo.Empty(); - return TRUE; - } - - // Add a recipient ("CC:" line) - inline BOOL AddCc(LPCTSTR szAddress, LPCTSTR szName = NULL, UINT uiCodePage = 0) throw() - { - return AddRecipientHelper(m_strCc, szAddress, szName, uiCodePage); - } - - // Get the recipients string ("CC:" line) - inline LPCSTR GetCc() throw() - { - return m_strCc; - } - - // Clear the recipients string ("CC:" line) - inline BOOL ClearCc() throw() - { - m_strCc.Empty(); - return TRUE; - } - - // Add a Bcc recipient (not output as part of message) - inline BOOL AddBcc(LPCTSTR szAddress) throw() - { - if (szAddress == NULL) - { - return FALSE; - } - - _ATLTRY - { - CStringA str = m_strBcc; - - if (m_strBcc.GetLength() > 0) - str.Append(",", 1); - - str += CT2CA(szAddress); - - m_strBcc = str; - - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Get the recipients string (Bcc part) - inline LPCSTR GetBcc() throw() - { - return m_strBcc; - } - - // Clear the recipients string (Bcc part) - inline BOOL ClearBcc() throw() - { - m_strBcc.Empty(); - return TRUE; - } - - - inline DWORD GetRequiredRecipientsStringLength() throw() - { - DWORD dwRet = m_strTo.GetLength(); - if (m_strCc.GetLength()) - { - dwRet += dwRet ? 1 : 0; - dwRet += m_strCc.GetLength(); - } - if (m_strBcc.GetLength()) - { - dwRet += dwRet ? 1 : 0; - dwRet += m_strBcc.GetLength(); - } - dwRet++; - return dwRet; - } - - // returns the recipients string to be (addresses only, in comma separated format) - ATL_NOINLINE BOOL GetRecipientsString(__out_ecount_part_z(*pdwLen, *pdwLen) LPSTR szRecip, __inout LPDWORD pdwLen) throw() - { - if ( (szRecip == NULL) || (pdwLen == NULL) ) - { - return FALSE; - } - - if ( *pdwLen < GetRequiredRecipientsStringLength()) - { - *pdwLen = GetRequiredRecipientsStringLength(); - return FALSE; - } - - DWORD dwMaxLen = *pdwLen; - *pdwLen = 0; - - DWORD dwLen = 0; - DWORD dwTotalLen = 0; - if (m_strTo.GetLength() > 0) - { - dwLen = *pdwLen - dwTotalLen; - if (AtlMimeMakeRecipientsString(m_strTo, szRecip, &dwLen) != TRUE) - { - return FALSE; - } - szRecip+= dwLen; - dwTotalLen = dwLen; - } - - if (m_strCc.GetLength() > 0) - { - if (dwTotalLen) - { - *szRecip++ = ','; - dwTotalLen++; - } - dwLen = *pdwLen - dwTotalLen; - if (AtlMimeMakeRecipientsString(m_strCc, szRecip, &dwLen) != TRUE) - { - return FALSE; - } - szRecip+= dwLen; - dwTotalLen+= dwLen; - } - - if (m_strBcc.GetLength() > 0) - { - dwLen = m_strBcc.GetLength(); - if (dwTotalLen) - { - *szRecip++ = ','; - dwTotalLen++; - } - dwLen = *pdwLen - dwTotalLen; - Checked::memcpy_s(szRecip, dwMaxLen-dwTotalLen, m_strBcc, dwLen); - szRecip+= dwLen; - dwTotalLen+= dwLen; - } - - *szRecip = '\0'; - *pdwLen = dwTotalLen; - - return TRUE; - } - - - // Get the sender - inline LPCSTR GetSender() throw() - { - return m_strFrom; - } - - // Set the sender - inline BOOL SetSender(LPCTSTR szSender) throw() - { - if (szSender == NULL) - return FALSE; - - _ATLTRY - { - m_strFrom = CT2CA(szSender); - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Set the subject - inline BOOL SetSubject(LPCTSTR szSubject, UINT uiCodePage = 0) throw() - { - if (szSubject == NULL) - return FALSE; - - _ATLTRY - { - CHeapPtr szName; - UINT nLen(0); - - BOOL bRet = AtlMimeConvertString(m_spMultiLanguage, uiCodePage, szSubject, &szName, &nLen); - if (bRet) - { - m_strSubject.Empty(); - m_strSubject.Append(szName, (int)nLen); - bRet = AtlMimeCharsetFromCodePage(m_szSubjectCharset, uiCodePage, m_spMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH); - } - - return bRet; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Get the subject - inline LPCSTR GetSubject() throw() - { - return (LPCSTR)m_strSubject; - } - - // Dump the header to hFile - virtual inline BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR /*szBoundary*/, DWORD dwFlags = 0) throw() - { - if (pOverlapped == NULL) - { - return FALSE; - } - - int nMaxSendLen = GetRequiredBufferSize(ATLSMTP_MAX_LINE_LENGTH-4); - CHeapPtr spSendBuffer; - if (!spSendBuffer.Allocate(nMaxSendLen)) - return FALSE; - - // choose QEncode here, because the max QEncodeGetRequiredLength will always - // return a value greater than BEncodeGetRequiredLength - int nBufLen = __max(QEncodeGetRequiredLength(m_strSubject.GetLength(), - ATL_MAX_ENC_CHARSET_LENGTH), - QEncodeGetRequiredLength(m_strSenderName.GetLength(), - ATL_MAX_ENC_CHARSET_LENGTH)+m_strFrom.GetLength()+2); - - CHeapPtr spBuf; - if (!spBuf.Allocate(nBufLen)) - return FALSE; - - int nMaxLen = nBufLen; - DWORD dwOffset = 0; - - char szDate[ATL_MIME_DATE_LEN]; - - SetRfc822Time(szDate, ATL_MIME_DATE_LEN); - char *pSendBuffer = spSendBuffer; - - DWORD dwLength = (DWORD) strlen(szDate); - - if(dwLength > ATLSMTP_MAX_LINE_LENGTH -2 -dwOffset ) - return FALSE; - - Checked::memcpy_s(pSendBuffer+dwOffset, nMaxSendLen-dwOffset, szDate, dwLength); - dwOffset += dwLength; - *(pSendBuffer+dwOffset++) = '\r'; - *(pSendBuffer+dwOffset++) = '\n'; - - int dwHeaderPartLength = 0; - *spBuf = '\0'; - - // Get the sender name - BOOL bRet = TRUE; - BOOL bEncoded = FALSE; - if (m_strSenderName.GetLength() > 0) - { - bRet = GetEncodedString(m_strSenderName, m_szSenderCharset, spBuf, nBufLen, dwLength, bEncoded); - dwHeaderPartLength += dwLength; - } - - // Get the sender email address - if (bRet && m_strFrom.GetLength() > 0) - { - - if (dwHeaderPartLength != 0) - { - if(dwHeaderPartLength + 1 > nBufLen) - return FALSE; - - *(spBuf+dwHeaderPartLength++) = ' '; - } - - if(dwHeaderPartLength + m_strFrom.GetLength() + 2 > nBufLen) - return FALSE; - - *(spBuf+dwHeaderPartLength++) = '<'; - if (dwHeaderPartLength < 0 || dwHeaderPartLength > nMaxLen) - { - return FALSE; - } - Checked::memcpy_s(spBuf+dwHeaderPartLength, nMaxLen-dwHeaderPartLength, (LPCSTR)m_strFrom, m_strFrom.GetLength()); - dwHeaderPartLength+= m_strFrom.GetLength(); - *(spBuf+dwHeaderPartLength++) = '>'; - } - - // Output the "From: " line - if (bRet && dwHeaderPartLength != 0) - { - const char szFrom[] = "From: "; - if(sizeof(szFrom)/sizeof(szFrom[0])-1 > ATLSMTP_MAX_LINE_LENGTH -2 -dwOffset ) - return FALSE; - if (dwOffset > static_cast(nMaxSendLen)) - { - return FALSE; - } - Checked::memcpy_s(pSendBuffer+dwOffset, nMaxSendLen-dwOffset, szFrom, _countof(szFrom)-1); - dwOffset+= (sizeof(szFrom)/sizeof(szFrom[0])-1) ; - DWORD dwWritten = ATLSMTP_MAX_LINE_LENGTH - 2 - dwOffset; - bRet = FormatField((LPBYTE)(char*)spBuf, dwHeaderPartLength, (LPBYTE)(pSendBuffer+dwOffset), &dwWritten, dwFlags); - dwOffset += dwWritten; - *(pSendBuffer+dwOffset++) = '\r'; - *(pSendBuffer+dwOffset++) = '\n'; - } - - // Output the subject - if (bRet && m_strSubject.GetLength() > 0) - { - dwLength = 0; - bRet = GetEncodedString(m_strSubject, m_szSubjectCharset, spBuf, nBufLen, dwLength, bEncoded); - if (bRet && dwLength != 0) - { - const char szSubject[] = "Subject: "; - if(sizeof(szSubject)/sizeof(szSubject[0])-1 > ATLSMTP_MAX_LINE_LENGTH -2 -dwOffset ) - return FALSE; - if (dwOffset > static_cast(nMaxSendLen)) - { - return FALSE; - } - Checked::memcpy_s(pSendBuffer+dwOffset, nMaxSendLen-dwOffset, szSubject, _countof(szSubject)-1); - dwOffset+= (sizeof(szSubject)/sizeof(szSubject[0])-1); - DWORD dwWritten = ATLSMTP_MAX_LINE_LENGTH - 2 - dwOffset; - bRet = FormatField((LPBYTE)(char*)spBuf, dwLength, (LPBYTE)(pSendBuffer+dwOffset), &dwWritten, dwFlags); - dwOffset += dwWritten; - *(pSendBuffer+dwOffset++) = '\r'; - *(pSendBuffer+dwOffset++) = '\n'; - } - } - - // Output the "To:" line - if (bRet && m_strTo.GetLength() > 0) - { - const char szTo[] = "To: "; - if(sizeof(szTo)/sizeof(szTo[0])-1 > ATLSMTP_MAX_LINE_LENGTH -2 -dwOffset ) - return FALSE; - if (dwOffset > static_cast(nMaxSendLen)) - { - return FALSE; - } - Checked::memcpy_s(pSendBuffer+dwOffset, nMaxSendLen-dwOffset, szTo, _countof(szTo)-1); - dwOffset+= (sizeof(szTo)/sizeof(szTo[0]) -1); - DWORD dwWritten = ATLSMTP_MAX_LINE_LENGTH - 2 - dwOffset; - bRet = FormatRecipients((LPBYTE)((LPCSTR)m_strTo), m_strTo.GetLength(), (LPBYTE)(pSendBuffer+dwOffset), &dwWritten); - dwOffset+= dwWritten; - *(pSendBuffer+dwOffset++) = '\r'; - *(pSendBuffer+dwOffset++) = '\n'; - } - - // Output the "CC:" line - if (bRet && m_strCc.GetLength() > 0) - { - const char szCC[] = "CC: "; - if(sizeof(szCC)/sizeof(szCC[0])-1 > ATLSMTP_MAX_LINE_LENGTH -2 -dwOffset ) - return FALSE; - if (dwOffset > static_cast(nMaxSendLen)) - { - return FALSE; - } - Checked::memcpy_s(pSendBuffer+dwOffset, nMaxSendLen-dwOffset, szCC, _countof(szCC)-1); - dwOffset+= (sizeof(szCC)/sizeof(szCC[0]) -1); - DWORD dwWritten = ATLSMTP_MAX_LINE_LENGTH - 2 - dwOffset; - bRet = FormatRecipients((LPBYTE)((LPCSTR)m_strCc), m_strCc.GetLength(), (LPBYTE)(pSendBuffer+dwOffset), &dwWritten); - dwOffset+= dwWritten; - *(pSendBuffer+dwOffset++) = '\r'; - *(pSendBuffer+dwOffset++) = '\n'; - } - - // Send the header - if (bRet && dwOffset) - bRet = AtlSmtpSendAndWait(hFile, pSendBuffer, dwOffset, pOverlapped); - - return bRet; - } - -protected: - - // Make the mime header - virtual inline BOOL MakeMimeHeader(CStringA& /*header*/, LPCSTR /*szBoundary*/) throw() - { - // The message header does not have its own MIME header - ATLASSERT(FALSE); - return TRUE; - } - - // Get an encoded string for a header field - inline BOOL GetEncodedString(__in CStringA& headerString, __in LPCSTR szCharset, __out_ecount_part_z(nBufLen, dwLength) LPSTR szBuf, __in int nBufLen, __out DWORD& dwLength, __out BOOL& bEncoded) throw() - { -// BOOL bEncoded = FALSE; - bEncoded = FALSE; - if (m_spMultiLanguage.p) - { - // only encode if there are 8bit characters - int nExtendedChars = GetExtendedChars(headerString, headerString.GetLength()); - if (nExtendedChars) - { - // choose smallest encoding - if (((nExtendedChars*100)/headerString.GetLength()) < 17) - { - int nEncCnt = 0; - if (!QEncode((LPBYTE)((LPCSTR)headerString), headerString.GetLength(), szBuf, &nBufLen, szCharset, &nEncCnt)) - { - return FALSE; - } - - //if no unsafe characters were encountered, just output it - if (nEncCnt != 0) - { - bEncoded = TRUE; - } - } - else - { - if (!BEncode((LPBYTE)((LPCSTR)headerString), headerString.GetLength(), szBuf, &nBufLen, szCharset)) - { - return FALSE; - } - - bEncoded = TRUE; - } - } - } - - if (!bEncoded) - { - // there was no encoding - dwLength = (DWORD) headerString.GetLength(); - if(dwLength > DWORD(nBufLen)) - return FALSE; - Checked::memcpy_s(szBuf, nBufLen, headerString, dwLength); - } - else - { - dwLength = nBufLen; - } - return TRUE; - } - - - // Helper function for adding recipients - inline BOOL AddRecipientHelper(CStringA& str, LPCTSTR szAddress, LPCTSTR szName = NULL, UINT uiCodePage = 0) throw() - { - if ((szAddress == NULL) && (szName == NULL)) - { - return FALSE; - } - - _ATLTRY - { - if (szName) - { - CHeapPtr szNamePtr; - UINT nLen(0); - - BOOL bRet = AtlMimeConvertString(m_spMultiLanguage, uiCodePage, szName, &szNamePtr, &nLen); - if (bRet) - { - CStringA Name(szNamePtr, (int)nLen); - - char szCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - - if (!AtlMimeCharsetFromCodePage(szCharset, uiCodePage, m_spMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH)) - { - return FALSE; - } - - CFixedStringT strBuf; - - int nBufLen = QEncodeGetRequiredLength(Name.GetLength(), - ATL_MAX_ENC_CHARSET_LENGTH)+1; - - char * szBuf = strBuf.GetBuffer(nBufLen); - if (szBuf == NULL) - { - return FALSE; - } - - DWORD dwLength = 0; - BOOL bEncoded = FALSE; - if (!GetEncodedString(Name, szCharset, szBuf, nBufLen, dwLength, bEncoded)) - { - strBuf.ReleaseBuffer(); - return FALSE; - } - - strBuf.ReleaseBuffer(dwLength); - - // append comma if there are existing recipients - if (str.GetLength() != 0) - { - str.Append(", ", 2); - } - - if (bEncoded == FALSE) - { - // need to escape the string if no encoding - strBuf.Replace("\\", "\\\\"); - strBuf.Replace("\"", "\\\""); - - // wrap the unescaped name in quotes - str.Append("\"", 1); - } - str += strBuf; - if (bEncoded == FALSE) - { - // close quote - str.Append("\"", 1); - } - } - else - { - return bRet; - } - } - - if (szAddress) - { - if (szName) - { - str.Append(" ", 1); - } - else - { - // append comma if there are existing recipients - if (str.GetLength() != 0) - { - str.Append(", ", 2); - } - } - str.Append("<", 1); - str += CT2CA(szAddress); - str.Append(">", 1); - } - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Get the formatted header information - inline BOOL FormatField(LPBYTE pbSrcData, int nSrcLen, LPBYTE pbDest, - DWORD* pnBufLen, DWORD dwFlags = 0) throw() - { - if(pnBufLen == NULL) - return FALSE; - - int nRead = 0; - - // 9 is the length of the maximum field name : "Subject :" - // we set that here for simplicity - int nLineLen = 9; - DWORD nWritten = 0; - - //subtract 2 from these because it's easier for when we have - //to break lines with a CRLF (and tab if necessary) - int nMaxLineLength = ATLSMTP_MAX_LINE_LENGTH-3; - while (nRead < nSrcLen) - { - //if we're at the end of the line, break it - if (nLineLen == nMaxLineLength) - { - if( nWritten + 2 > *pnBufLen) - return FALSE; - - *pbDest++ = '\r'; - *pbDest++ = '\n'; - nWritten+= 2; - nLineLen = -1; - - if ((dwFlags & ATLSMTP_FORMAT_SMTP)) - { - if(nWritten + 1 > *pnBufLen) - return FALSE; - - *pbDest++ = '\t'; - nWritten++; - nLineLen++; - } - } - - //if we hit a CRLF, reset nLineLen - if (*pbSrcData == '\n' && nRead > 0 && *(pbSrcData-1) == '\r') - { - nLineLen = -1; - } - - if(nWritten + 1 > *pnBufLen) - return FALSE; - - *pbDest++ = *pbSrcData++; - nRead++; - nWritten++; - nLineLen++; - } - - *pnBufLen = (DWORD)nWritten; - - return TRUE; - } - - - // Get the formatted recipient information - inline BOOL FormatRecipients(LPBYTE pbSrcData, int nSrcLen, LPBYTE pbDest, - DWORD* pnBufLen) throw() - { - - if(pnBufLen == NULL) - return FALSE; - - int nRead = 0; - DWORD nWritten = 0; - - while (nRead < nSrcLen) - { - if (*pbSrcData == ',') - { - if(nWritten + 4 > *pnBufLen) - return FALSE; - - *pbDest++ = *pbSrcData++; - nRead++; - if (nRead+1 <= nSrcLen && *pbSrcData == ' ') - { - pbSrcData++; - nRead++; - } - *pbDest++ = '\r'; - *pbDest++ = '\n'; - *pbDest++ = '\t'; - nWritten+= 4; - - continue; - } - - if(nWritten + 1 > *pnBufLen) - return FALSE; - - *pbDest++ = *pbSrcData++; - nRead++; - nWritten++; - } - - *pnBufLen = nWritten; - - return TRUE; - } - - // Get the required buffer size for the header - inline int GetRequiredBufferSize(int nMaxLineLength) throw() - { - const static DWORD DATELINE = 27; - const static DWORD FROMLINE = 10; - const static DWORD TOLINE = 6; - const static DWORD CCLINE = 6; - const static DWORD SUBJECTLINE = 11; - - //data lengths (QEncoding potentially takes up more space than BEncoding, - //so default to it) - int nRequiredLength = QEncodeGetRequiredLength(m_strSenderName.GetLength(), ATL_MAX_ENC_CHARSET_LENGTH) - +QEncodeGetRequiredLength(m_strSubject.GetLength(), ATL_MAX_ENC_CHARSET_LENGTH); - nRequiredLength += m_strFrom.GetLength()+m_strTo.GetLength()+m_strCc.GetLength(); - - //Add space for date - nRequiredLength += DATELINE; - - //Add space for From: line - nRequiredLength += FROMLINE; - - //Add space for To: line - nRequiredLength += TOLINE; - - //Add space for Cc: line - nRequiredLength += CCLINE; - - //Add space for Subject: line - nRequiredLength += SUBJECTLINE; - - //Add space for line breaks and tabs - nRequiredLength += 3*(nRequiredLength/nMaxLineLength); - - //Trailing CRLF - nRequiredLength += 2; - - return nRequiredLength; - } - -}; // class CMimeHeader - - -// CMimeAttachment is an abstract base class for MIME message attachments. -// It serves as a base class for CMimeFileAttachment and CMimeRawAttachment -class CMimeAttachment : public CMimeBodyPart -{ -protected: - - // the encoding scheme (ATLSMTP_BASE64_ENCODE, ATLSMTP_UUENCODE, ATLSMTP_QP_ENCODE) - int m_nEncodingScheme; - - // the content type of the attachment - CStringA m_ContentType; - - // the character set - char m_szCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - - // the encode string ("base64", "quoted-printable", "uuencode") - char *m_pszEncodeString; - - // the display name of the attachment - TCHAR m_szDisplayName[_MAX_FNAME]; - -public: - CMimeAttachment() throw() - :m_nEncodingScheme(ATLSMTP_BASE64_ENCODE), m_pszEncodeString(NULL) - { - m_szCharset[0] = 0; - m_szDisplayName[0] = 0; - } - - virtual ~CMimeAttachment() throw() - { - } - - // CMimeFileAttachment and CMimeRawAttachment have to handle their own dumping - virtual inline BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary, DWORD dwFlags = 0) = 0; - - // Set the encoding scheme of the attachment - inline BOOL SetEncodingScheme(int nScheme) throw() - { - if (nScheme != ATLSMTP_BASE64_ENCODE && nScheme != ATLSMTP_UUENCODE && nScheme != ATLSMTP_QP_ENCODE) - { - return FALSE; - } - - m_nEncodingScheme = nScheme; - return TRUE; - } - - // Set the Content-Type of the attachment - inline BOOL SetContentType(LPCTSTR szContent) throw() - { - _ATLTRY - { - m_ContentType = CT2CA(szContent); - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Get the content type of the attachment - virtual inline LPCSTR GetContentType() throw() - { - return m_ContentType; - } - - // Get the character set of the attachment - virtual inline LPCSTR GetCharset() throw() - { - return m_szCharset; - } - - virtual ATL_NOINLINE CMimeBodyPart* Copy() = 0; - - const CMimeAttachment& operator=(const CMimeAttachment& that) throw( ... ) - { - if (this != &that) - { - m_nEncodingScheme = that.m_nEncodingScheme; - m_ContentType = that.m_ContentType; - Checked::strcpy_s(m_szCharset, ATL_MAX_ENC_CHARSET_LENGTH, that.m_szCharset); - m_pszEncodeString = that.m_pszEncodeString; - Checked::tcscpy_s(m_szDisplayName, _countof(m_szDisplayName), that.m_szDisplayName); - } - - return *this; - } - -protected: - - // Make the MIME header for the attachment - virtual inline BOOL MakeMimeHeader(CStringA& header, LPCSTR szBoundary) throw() - { - // if no display name is specified, default to "rawdata" - return MakeMimeHeader(header, szBoundary, _T("rawdata")); - } - - // Make the MIME header with the specified filename - virtual inline BOOL MakeMimeHeader(CStringA& header, LPCSTR szBoundary, LPCTSTR szFileName) - { - ATLENSURE(szBoundary != NULL); - ATLASSERT(szFileName != NULL); - ATLASSUME(m_pszEncodeString != NULL); - - char szBegin[256]; - if (*szBoundary) - { - // this is not the only body part - Checked::memcpy_s(szBegin, 256, ATLMIME_SEPARATOR, sizeof(ATLMIME_SEPARATOR)); - Checked::memcpy_s(szBegin+6, 250, szBoundary, ATL_MIME_BOUNDARYLEN); - *(szBegin+(ATL_MIME_BOUNDARYLEN+6)) = '\0'; - } - else - { - // this is the only body part, so output the MIME header - Checked::memcpy_s(szBegin, 256, ATLMIME_VERSION, sizeof(ATLMIME_VERSION)); - } - - // Get file name with the path stripped out - TCHAR szFile[MAX_PATH+1]; - TCHAR szExt[_MAX_EXT+1]; - Checked::tsplitpath_s(szFileName, NULL, 0, NULL, 0, szFile, _countof(szFile), szExt, _countof(szExt)); - Checked::tcscat_s(szFile, _countof(szFile), szExt); - - _ATLTRY - { - CT2CAEX szFileNameA(szFile); - - CStringA szDisplayName(szFile); - if (m_szDisplayName[0] != '\0') - { - szDisplayName = CT2CAEX<_MAX_FNAME+1>(m_szDisplayName); - } - - header.Format("%s\r\nContent-Type: %s;\r\n\tcharset=\"%s\"\r\n\tname=\"%s\"\r\n" - "Content-Transfer-Encoding: %s\r\nContent-Disposition: attachment;\r\n\tfilename=\"%s\"\r\n\r\n", - szBegin, (LPCSTR) m_ContentType, m_szCharset, (LPCSTR) szDisplayName, m_pszEncodeString, (LPCSTR) szFileNameA); - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Get encoding information - inline BOOL GetEncodingInformation(int* pnRequiredLength, int* pnLineLength) - { - ATLENSURE(pnRequiredLength != NULL); - ATLENSURE(pnLineLength != NULL); - - switch(m_nEncodingScheme) - { - case ATLSMTP_BASE64_ENCODE: - m_pszEncodeString = "base64"; - *pnLineLength = ATLSMTP_MAX_BASE64_LINE_LENGTH; - *pnRequiredLength = Base64EncodeGetRequiredLength(ATLSMTP_MAX_BASE64_LINE_LENGTH); - break; - case ATLSMTP_UUENCODE: - m_pszEncodeString ="uuencode"; - *pnLineLength = ATLSMTP_MAX_UUENCODE_LINE_LENGTH; - *pnRequiredLength = UUEncodeGetRequiredLength(ATLSMTP_MAX_UUENCODE_LINE_LENGTH); - break; - case ATLSMTP_QP_ENCODE: - m_pszEncodeString = "quoted-printable"; - *pnLineLength = ATLSMTP_MAX_QP_LINE_LENGTH; - *pnRequiredLength = QPEncodeGetRequiredLength(ATLSMTP_MAX_QP_LINE_LENGTH); - break; - default: - return FALSE; - } - return TRUE; - } - -}; // class CMimeAttachment - - -// CMimeFileAttachment represents a MIME file attachment body part -class CMimeFileAttachment : public CMimeAttachment -{ - -protected: - // The filename - TCHAR m_szFileName[MAX_PATH+1]; - -public: - CMimeFileAttachment() throw() - { - m_szFileName[0] = 0; - } - - virtual ATL_NOINLINE CMimeBodyPart* Copy() throw( ... ) - { - CAutoPtr pNewAttachment; - ATLTRY(pNewAttachment.Attach(new CMimeFileAttachment)); - if (pNewAttachment) - *pNewAttachment = *this; - - return pNewAttachment.Detach(); - } - - const CMimeFileAttachment& operator=(const CMimeFileAttachment& that) throw( ... ) - { - if (this != &that) - { - CMimeAttachment::operator=(that); - Checked::tcscpy_s(m_szFileName, _countof(m_szFileName), that.m_szFileName); - } - - return *this; - } - - - // Initialize the file attachment - // szFileName - the actual file name - // szDisplayName - the display name for the file (optional) - // pMultiLanguage - the IMulitLanguage pointer for codepage to charset conversion (optional) - // uiCodePage - the code page (optional) - inline BOOL Initialize(LPCTSTR szFileName, LPCTSTR szDisplayName = NULL, IMultiLanguage* pMultiLanguage = NULL, UINT uiCodePage = 0) throw() - { - if (!AtlMimeCharsetFromCodePage(m_szCharset, uiCodePage, pMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH)) - return FALSE; - - if( _tcslen(szFileName) > MAX_PATH ) - { - return FALSE; - } - Checked::tcscpy_s(m_szFileName, _countof(m_szFileName), szFileName); - - if (szDisplayName) - { - // use the user-specified display name - size_t nLen = _tcslen(szDisplayName)+1; - if (nLen <= _countof(m_szDisplayName)) - { - Checked::tcscpy_s(m_szDisplayName, _countof(m_szDisplayName), szDisplayName); - } - else - { - Checked::tcsncpy_s(m_szDisplayName, _countof(m_szDisplayName), szDisplayName, _countof(m_szDisplayName) - 4); - Checked::tcscpy_s(m_szDisplayName + _countof(m_szDisplayName) - 4, 4, _T("...")); - } - } - else - { - // otherwise there is no display name - *m_szDisplayName = '\0'; - } - return TRUE; - } - - // Dump the data for the file attachment - virtual inline BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary, DWORD dwFlags = 0) throw() - { - if ((pOverlapped == NULL) || (szBoundary == NULL)) - { - return FALSE; - } - - int nLineLength = 0; - int nRequiredLength = 0; - - if (!GetEncodingInformation(&nRequiredLength, &nLineLength)) - return FALSE; - - //Try to open the file that is being attached - CAtlFile readFile; - if (FAILED(readFile.Create(m_szFileName, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING))) - return FALSE; - - //Make the mime header - CStringA header; - if (!MakeMimeHeader(header, szBoundary, m_szFileName)) - { - return FALSE; - } - - //Try to send the mime header - if (!AtlSmtpSendAndWait(hFile, ((LPCSTR)header), header.GetLength(), pOverlapped)) - { - return FALSE; - } - - int nGetLines = ATLSMTP_GET_LINES; - - nRequiredLength *= nGetLines; - - //dwToGet is the total number of characters to attempt to get - DWORD dwToGet = (DWORD)nGetLines*nLineLength; - - //allocate the data array - CHeapPtr spData; - if (!spData.Allocate(dwToGet+1)) - return FALSE; - -// if double buffering is defined, create two buffers -#ifdef ATLSMTP_DOUBLE_BUFFERED - CHeapPtr buffer1; - if (!buffer1.Allocate(nRequiredLength+3)) - return FALSE; - - CHeapPtr buffer2; - if (!buffer2.Allocate(nRequiredLength+3)) - return FALSE; - - char* currBuffer = buffer1; - char* prevBuffer = NULL; - int nCurrBuffer = 0; - DWORD dwPrevLength = 0; -#else - CHeapPtr currBuffer; - if (!currBuffer.Allocate(nRequiredLength+3)) - return FALSE; - -#endif // ATLSMTP_DOUBLE_BUFFERED - - int nEncodedLength = nRequiredLength; - BOOL bRet = FALSE; - DWORD dwRead = 0; - DWORD dwTotalRead = 0; - DWORD dwCurrRead = 0; - - do - { - do - { - //Read a chunk of data from the file increment buffer offsets and amount to read - //based on what's already been read in this iteration of the loop - HRESULT hr = readFile.Read(((LPBYTE)spData)+dwCurrRead, dwToGet-dwCurrRead, dwRead); - if (FAILED(hr)) - { - if (hr != AtlHresultFromWin32(ERROR_MORE_DATA)) - { - return FALSE; - } - } - dwCurrRead += dwRead; - - } while (dwRead != 0 && dwCurrRead < dwToGet); - - //reset nEncodedLength - nEncodedLength = nRequiredLength; - switch (m_nEncodingScheme) - { - case ATLSMTP_BASE64_ENCODE: - //if we are at the end of input (dwCurrRead < dwToGet), output the trailing padding if necessary - //(ATL_FLAG_NONE) - bRet = Base64Encode(spData, dwCurrRead, currBuffer, &nEncodedLength, - (dwCurrRead < dwToGet ? ATL_BASE64_FLAG_NONE: ATL_BASE64_FLAG_NOPAD)); - //Base64Encoding needs explicit CRLF added - if (dwCurrRead < dwToGet) - { - currBuffer[nEncodedLength++] = '\r'; - currBuffer[nEncodedLength++] = '\n'; - } - break; - case ATLSMTP_UUENCODE: - //if we are at the beginning of the input, output the header (ATL_UUENCODE_HEADER) - //if we are the end of input (dwCurrRead < dwToGet), output the 'end' - //we are encoding for purposes of sending mail, so stuff dots (ATL_UUENCODE_DOT) - bRet = UUEncode(spData, dwCurrRead, currBuffer, &nEncodedLength, m_szFileName, - (dwTotalRead > 0 ? 0 : ATLSMTP_UUENCODE_HEADER) | - (dwCurrRead < dwToGet ? ATLSMTP_UUENCODE_END : 0) | - ((dwFlags & ATLSMTP_FORMAT_SMTP) ? ATLSMTP_UUENCODE_DOT : 0)); - break; - case ATLSMTP_QP_ENCODE: - //we are encoding for purposes of sending mail, so stuff dots - bRet = QPEncode(spData, dwCurrRead, currBuffer, &nEncodedLength, - ((dwFlags & ATLSMTP_FORMAT_SMTP) ? ATLSMTP_QPENCODE_DOT : 0) | - (dwCurrRead < dwToGet ? 0 : ATLSMTP_QPENCODE_TRAILING_SOFT)); - break; - } - //try to send the encoded data -#ifdef ATLSMTP_DOUBLE_BUFFERED - if (bRet) - { - bRet = AtlSmtpSendOverlapped(hFile, currBuffer, nEncodedLength, - prevBuffer, dwPrevLength, pOverlapped); - } - - //swap the buffers - dwPrevLength = nEncodedLength; - prevBuffer = currBuffer; - currBuffer = (nCurrBuffer == 0 ? buffer2 : buffer1); - nCurrBuffer = (nCurrBuffer == 0 ? 1 : 0); -#else - if (bRet) - { - bRet = AtlSmtpSendAndWait(hFile, currBuffer, nEncodedLength, pOverlapped); - } -#endif // ATLSMTP_DOUBLE_BUFFERED - - dwTotalRead += dwCurrRead; - if (dwRead != 0) - dwCurrRead = 0; - - nEncodedLength = nRequiredLength; - - } while (dwRead != 0 && bRet); - - //ensure that the last Send sent all the data -#ifdef ATLSMTP_DOUBLE_BUFFERED - DWORD dwWritten = 0, dwErr = 0; - if (!GetOverlappedResult(hFile, pOverlapped, &dwWritten, TRUE)) - { - if ((dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - { - bRet = FALSE; - } - else if (dwWritten < dwPrevLength) - { - bRet = AtlSmtpSendAndWait(hFile, prevBuffer+dwWritten, - dwPrevLength-dwWritten, pOverlapped); - } - } -#endif // ATLSMTP_DOUBLE_BUFFERED - - //for uuencoding, if the last chunk read was of size dwToGet, but it was also the end of the file, - //the "end" keyword will not get encoded, so a check is necessary - if (m_nEncodingScheme == ATLSMTP_UUENCODE && dwCurrRead == dwToGet) - { - bRet = UUEncode(spData, 0, currBuffer, &nEncodedLength, m_szFileName, - (dwFlags & ATLSMTP_FORMAT_SMTP ? ATLSMTP_UUENCODE_DOT : 0) | - ATLSMTP_UUENCODE_END); - if (bRet) - { - bRet = AtlSmtpSendAndWait(hFile, currBuffer, nEncodedLength, pOverlapped); - } - } - - return bRet; - } -}; // class CMimeFileAttachment - -// CMimeRawAttachment represents a file attachment MIME body part. -// The data provided is not a file, but a blob of raw data. -class CMimeRawAttachment : public CMimeAttachment -{ -protected: - - //the raw data - void* m_pvRaw; - - //the length - DWORD m_dwLength; - - //whether or not we own it - bool m_bShared; - -public: - CMimeRawAttachment() throw() - :m_dwLength(0), m_bShared(false), m_pvRaw(NULL) - { - } - - ~CMimeRawAttachment() throw() - { - //If we own the raw data, free it - if (!m_bShared && m_pvRaw) - free(m_pvRaw); - } - - virtual ATL_NOINLINE CMimeBodyPart* Copy() throw( ... ) - { - CAutoPtr pNewAttachment; - ATLTRY(pNewAttachment.Attach(new CMimeRawAttachment)); - if (pNewAttachment) - *pNewAttachment = *this; - - return pNewAttachment.Detach(); - } - - const CMimeRawAttachment& operator=(const CMimeRawAttachment& that) throw( ... ) - { - if (this != &that) - { - CMimeAttachment::operator=(that); - if (!m_bShared && m_pvRaw) - free(m_pvRaw); - - m_bShared = that.m_bShared; - m_dwLength = that.m_dwLength; - - if (m_bShared) - { - m_pvRaw = that.m_pvRaw; - } - else - { - m_pvRaw = malloc(m_dwLength); - if (m_pvRaw) - { - Checked::memcpy_s(m_pvRaw, m_dwLength, that.m_pvRaw, m_dwLength); - } - } - } - - return *this; - } - - // Initialize the attachment - // pData - the data - // nDataLength - the size of pData in BYTEs - // bCopyData - flag specifying whether CMimeRawAttachment should make a copy of the data (optional) - // pMultiLanguage - the IMultiLanguage pointer for codepage to character set conversion (optional) - // uiCodePage - the codepage (optional) - inline BOOL Initialize(void* pData, DWORD nDataLength, BOOL bCopyData = TRUE, LPCTSTR szDisplayName = NULL, - IMultiLanguage* pMultiLanguage = NULL, UINT uiCodePage = 0) throw() - { - // if we're already attached to some data, and it's not shared, free it - if (m_pvRaw && !m_bShared) - free(m_pvRaw); - m_pvRaw = NULL; - - m_dwLength = nDataLength; - if (bCopyData) - { - m_pvRaw = calloc(sizeof(BYTE),m_dwLength); - if (!m_pvRaw) - { - return FALSE; - } - Checked::memcpy_s(m_pvRaw, m_dwLength, pData, m_dwLength); - m_bShared = false; - } - else - { - m_pvRaw = pData; - m_bShared = true; - } - - if (!AtlMimeCharsetFromCodePage(m_szCharset, uiCodePage, pMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH)) - return FALSE; - - if (szDisplayName) - { - // use the user-specified display name - Checked::tcscpy_s(m_szDisplayName, _countof(m_szDisplayName), szDisplayName); - m_szDisplayName[_countof(m_szDisplayName)-1] = 0; - } - else - { - // no display name - *m_szDisplayName = '\0'; - } - return TRUE; - } - - // Output the data--similar to CFileAttachment::WriteData - // See CFileAttachment::WriteData for comments - virtual inline BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary, DWORD dwFlags = 0) throw() - { - if ((pOverlapped == NULL) || (szBoundary == NULL)) - { - return FALSE; - } - - if (!m_pvRaw) - return FALSE; - - int nLineLength = 0, nRequiredLength = 0; - if (!GetEncodingInformation(&nRequiredLength, &nLineLength)) - return FALSE; - - CStringA header; - - if (!MakeMimeHeader(header, szBoundary)) - { - return FALSE; - } - - if (!AtlSmtpSendAndWait(hFile, ((LPCSTR)header), header.GetLength(), pOverlapped)) - { - return FALSE; - } - - int nGetLines = ATLSMTP_GET_LINES; - DWORD dwCurrChunk = 0; - nRequiredLength *= nGetLines; - DWORD dwToGet = (DWORD)nGetLines*nLineLength; - int nDestLen = nRequiredLength; - BOOL bRet = FALSE; - DWORD dwRead = 0; -#ifdef ATLSMTP_DOUBLE_BUFFERED - CHeapPtr buffer1; - if (!buffer1.Allocate(nRequiredLength+3)) - return FALSE; - - CHeapPtr buffer2; - if (!buffer2.Allocate(nRequiredLength+3)) - return FALSE; - - char* currBuffer = buffer1; - char* prevBuffer = NULL; - int nCurrBuffer = 0; - DWORD dwPrevLength = 0; -#else - CHeapPtr currBuffer; - if (!currBuffer.Allocate(nRequiredLength+3)) - return FALSE; -#endif // ATLSMTP_DOUBLE_BUFFERED - - do - { - if ((m_dwLength-dwRead) <= dwToGet) - dwCurrChunk = m_dwLength-dwRead; - else - dwCurrChunk = dwToGet; - switch(m_nEncodingScheme) - { - case ATLSMTP_BASE64_ENCODE: - bRet = Base64Encode(((LPBYTE)(m_pvRaw))+dwRead, dwCurrChunk, currBuffer, &nDestLen, - (dwRead < m_dwLength) ? ATL_BASE64_FLAG_NONE : ATL_BASE64_FLAG_NOPAD); - if (dwRead+dwCurrChunk == m_dwLength) - { - currBuffer[nDestLen++] = '\r'; - currBuffer[nDestLen++] = '\n'; - } - break; - case ATLSMTP_UUENCODE: - bRet = UUEncode(((LPBYTE)(m_pvRaw))+dwRead, dwCurrChunk, currBuffer, &nDestLen, _T("rawdata"), - (dwRead > 0 ? 0 : ATLSMTP_UUENCODE_HEADER) | - (dwRead+dwCurrChunk == m_dwLength ? ATLSMTP_UUENCODE_END : 0) | - ((dwFlags & ATLSMTP_FORMAT_SMTP) ? ATLSMTP_UUENCODE_DOT : 0)); - break; - case ATLSMTP_QP_ENCODE: - bRet = QPEncode(((LPBYTE)(m_pvRaw))+dwRead, dwCurrChunk, currBuffer, &nDestLen, - ((dwFlags & ATLSMTP_FORMAT_SMTP) ? ATLSMTP_QPENCODE_DOT : 0) | - (dwRead+dwCurrChunk == m_dwLength ? 0 : ATLSMTP_QPENCODE_TRAILING_SOFT)); - break; - } - if (!bRet) - break; -#ifdef ATLSMTP_DOUBLE_BUFFERED - bRet = AtlSmtpSendOverlapped(hFile, currBuffer, nDestLen, prevBuffer, dwPrevLength, pOverlapped); - dwPrevLength = (DWORD)nDestLen; - prevBuffer = currBuffer; - currBuffer = (nCurrBuffer == 0 ? buffer2 : buffer1); - nCurrBuffer = (nCurrBuffer == 0 ? 1 : 0); -#else - bRet = AtlSmtpSendAndWait(hFile, currBuffer, nDestLen, pOverlapped); -#endif // ATLSMTP_DOUBLE_BUFFERED - - nDestLen = nRequiredLength; - dwRead += dwCurrChunk; - } while (bRet && (dwRead < m_dwLength)); - - //ensure all data is sent from prevBuffer -#ifdef ATLSMTP_DOUBLE_BUFFERED - DWORD dwWritten = 0, dwErr = 0; - if (!GetOverlappedResult(hFile, pOverlapped, &dwWritten, TRUE)) - { - if ((dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - bRet = FALSE; - else if (dwWritten < dwPrevLength) - bRet = AtlSmtpSendAndWait(hFile, prevBuffer+dwWritten, dwPrevLength-dwWritten, pOverlapped); - } -#endif // ATLSMTP_DOUBLE_BUFFERED - - return bRet; - } -}; // class CMimeRawAttachment - - -// CMimeText - represents a text body part in MIME body -class CMimeText : public CMimeBodyPart -{ -protected: - - // the text - CHeapPtr m_szText; - - // the character set - char m_szCharset[ATL_MAX_ENC_CHARSET_LENGTH]; - - // the text length - int m_nTextLen; - -public: - CMimeText() throw() - :m_nTextLen(0) - { - Checked::strcpy_s(m_szCharset, ATL_MAX_ENC_CHARSET_LENGTH, ATLSMTP_DEFAULT_CSET); - } - - virtual ~CMimeText() throw() - { - } - - // Get the content type - virtual inline LPCSTR GetContentType() throw() - { - return "text/plain"; - } - - // Get the character set - virtual inline LPCSTR GetCharset() throw() - { - return m_szCharset; - } - - virtual ATL_NOINLINE CMimeBodyPart* Copy() throw( ... ) - { - CAutoPtr pNewText; - ATLTRY(pNewText.Attach(new CMimeText)); - if (pNewText) - *pNewText = *this; - - return pNewText.Detach(); - } - - const CMimeText& operator=(const CMimeText& that) throw( ... ) - { - if (this != &that) - { - m_nTextLen = that.m_nTextLen; - Checked::strcpy_s(m_szCharset, ATL_MAX_ENC_CHARSET_LENGTH, that.m_szCharset); - m_szText.Free(); - if (m_szText.AllocateBytes(m_nTextLen) != false) - { - Checked::memcpy_s((char *)m_szText, m_nTextLen, (char *)that.m_szText, m_nTextLen); - } - } - - return *this; - } - - // Initialize the body part - // szText - the text (required) - // nTextLen - the text length in bytes (optional--if not specified a _tcslen will be done) - // pMultiLanguage - the IMultiLanguagte pointer for converting codepages to MIME character sets (optional) - // uiCodePage - the codepage - inline BOOL Initialize(LPCTSTR szText, int nTextLen = -1, IMultiLanguage* pMultiLanguage = NULL, UINT uiCodePage = 0) throw() - { - BOOL bRet = TRUE; - - // if IMultiLanguage is there, respect the codepage - if (pMultiLanguage) - { - CHeapPtr szTextPtr; - UINT nLen(0); - - bRet = AtlMimeConvertString(pMultiLanguage, uiCodePage, szText, &szTextPtr, &nLen); - if (bRet) - { - m_szText.Free(); - m_szText.Attach(szTextPtr.Detach()); - m_nTextLen = nLen; - } - } - else // no multilanguage support - { - if (nTextLen < 0) - { - nTextLen = (int) _tcslen(szText); - nTextLen*= sizeof(TCHAR); - } - - m_szText.Free(); - if (m_szText.AllocateBytes(nTextLen) != false) - { - Checked::memcpy_s((char *)m_szText, nTextLen, szText, nTextLen); - m_nTextLen = nTextLen; - } - } - - if (bRet) - { - bRet = AtlMimeCharsetFromCodePage(m_szCharset, uiCodePage, pMultiLanguage, ATL_MAX_ENC_CHARSET_LENGTH); - } - - return bRet; - } - - // Dump the data to hFile - virtual inline BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary, DWORD dwFlags = 0) throw() - { - if ((pOverlapped == NULL) || (szBoundary == NULL)) - { - return FALSE; - } - - CStringA strHeader; - char sendBuffer[ATLSMTP_READBUFFER_SIZE]; - LPSTR pSendBuffer = sendBuffer; - LPSTR szText = m_szText; - - if (!MakeMimeHeader(strHeader, szBoundary)) - { - return FALSE; - } - - //copy the header into the sendbuffer - int nWritten = strHeader.GetLength(); - if(nWritten > ATLSMTP_READBUFFER_SIZE) - return FALSE; - - Checked::memcpy_s(pSendBuffer, ATLSMTP_READBUFFER_SIZE, (LPCSTR)strHeader, nWritten); - pSendBuffer+= nWritten; - int nRead = 0; - int nLineLen = 0; - - //subtract 2 from these because it's easier for when we have - //to break lines with a CRLF - int nMaxLineLength = ATLSMTP_MAX_LINE_LENGTH-2; - int nMaxBufferSize = ATLSMTP_READBUFFER_SIZE-2; - while (nRead <= m_nTextLen) - { - //if the buffer is full or we've reached the end of the text, - //send it - if (nWritten >= nMaxBufferSize || nRead == m_nTextLen) - { - if (!AtlSmtpSendAndWait(hFile, sendBuffer, nWritten, pOverlapped)) - return FALSE; - nWritten = 0; - pSendBuffer = sendBuffer; - if (nRead == m_nTextLen) - { - break; // job done, no need to run the code below - } - } - - //if we're at the end of the line, break it - if (nLineLen == nMaxLineLength) - { - if(nWritten + 2 > ATLSMTP_READBUFFER_SIZE) - return FALSE; - *pSendBuffer++ = '\r'; - *pSendBuffer++ = '\n'; - nWritten+= 2; - nLineLen = -1; - continue; - } - - //stuff dots at the start of the line - if (nLineLen == 0 && (dwFlags & ATLSMTP_FORMAT_SMTP) && *szText == '.') - { - if(nWritten + 1 > ATLSMTP_READBUFFER_SIZE) - return FALSE; - *pSendBuffer++ = '.'; - nWritten++; - nLineLen++; - continue; - } - - //if we hit a CRLF, reset nLineLen - if (*szText == '\n' && nRead > 0 && *(szText-1) == '\r') - nLineLen = -1; - - if(nWritten + 1 > ATLSMTP_READBUFFER_SIZE) - return FALSE; - *pSendBuffer++ = (*szText++); - nRead++; - nWritten++; - nLineLen++; - } - - return TRUE; - } - -protected: - - // Make the MIME header - virtual inline BOOL MakeMimeHeader(CStringA& header, LPCSTR szBoundary) throw() - { - char szBegin[256]; - if (*szBoundary) - { - // this is not the only body part - Checked::memcpy_s(szBegin, sizeof(szBegin), ATLMIME_SEPARATOR, sizeof(ATLMIME_SEPARATOR)); - Checked::memcpy_s(szBegin+6, sizeof(szBegin)-6, szBoundary, ATL_MIME_BOUNDARYLEN); - *(szBegin+(ATL_MIME_BOUNDARYLEN+6)) = '\0'; - } - else - { - // this is the only body part, so output the full MIME header - Checked::memcpy_s(szBegin, sizeof(szBegin), ATLMIME_VERSION, sizeof(ATLMIME_VERSION)); - } - - _ATLTRY - { - header.Format("%s\r\nContent-Type: text/plain;\r\n\tcharset=\"%s\"\r\nContent-Transfer-Encoding: 8bit\r\n\r\n", - szBegin, m_szCharset); - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } -}; // class CMimeText - - -// CMimeMessage - the MIME message class. Represents a full MIME message -class CMimeMessage : public CMimeHeader -{ -protected: - - // The list of the MIME body parts - CAutoPtrList m_BodyParts; - - // The display name of the message - char m_szDisplayName[MAX_PATH+1]; - -public: - CMimeMessage(IMultiLanguage *pMultiLanguage = NULL) throw() - { - Initialize(pMultiLanguage); - Checked::memcpy_s(m_szDisplayName, MAX_PATH+1, ATLMIME_EMAIL, sizeof(ATLMIME_EMAIL)); - } - - virtual ~CMimeMessage() throw() - { - RemoveParts(); - } - - void RemoveParts() throw() - { - m_BodyParts.RemoveAll(); - } - - - virtual ATL_NOINLINE CMimeBodyPart* Copy() throw( ... ) - { - CAutoPtr pNewMessage; - ATLTRY(pNewMessage.Attach(new CMimeMessage)); - if (pNewMessage) - *pNewMessage = *this; - - return pNewMessage.Detach(); - } - - - const CMimeMessage& operator=(const CMimeMessage& that) throw( ... ) - { - if (this != &that) - { - CMimeHeader::operator=(that); - Checked::strcpy_s(m_szDisplayName, MAX_PATH+1, that.m_szDisplayName); - - RemoveParts(); - POSITION pos = that.m_BodyParts.GetHeadPosition(); - while (pos != NULL) - { - CAutoPtr pCopy(that.m_BodyParts.GetNext(pos)->Copy()); - if (pCopy) - { - m_BodyParts.AddTail(pCopy); - } - } - } - - return *this; - } - - // Set the display name of the message - inline BOOL SetDisplayName(LPCTSTR szDisplayName) throw() - { - if (szDisplayName == NULL) - { - return FALSE; - } - - _ATLTRY - { - CT2CA szDisplayNameA(szDisplayName); - if (szDisplayNameA == NULL || strlen(szDisplayNameA) > MAX_PATH) - return FALSE; - Checked::strcpy_s(m_szDisplayName, MAX_PATH+1, szDisplayNameA); - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Add some text to the message at position nPos in the body parts list - // szText - the text - // nTextLen - the size of the text in bytes (optional - if not specified a _tcslen will be done) - // nPos - the position in the message at which to insert the text (optional) - // uiCodePage - the codepage (optional) - inline BOOL AddText(LPCTSTR szText, int nTextLen = -1, int nPos = 1, UINT uiCodePage = 0) throw() - { - if (szText == NULL) - return FALSE; - - if (nPos < 1) - { - nPos = 1; - } - - CAutoPtr spNewText; - CMimeText *pNewText = NULL; - ATLTRY(spNewText.Attach(pNewText = new CMimeText())); - if (!spNewText || !pNewText) - return FALSE; - - BOOL bRet = pNewText->Initialize(szText, nTextLen, m_spMultiLanguage, uiCodePage); - if (bRet) - { - _ATLTRY - { - POSITION currPos = m_BodyParts.FindIndex(nPos-1); - - if (!currPos) - { - if (!m_BodyParts.AddTail(spNewText)) - bRet = FALSE; - } - else - { - if (!m_BodyParts.InsertBefore(currPos, spNewText)) - bRet = FALSE; - } - - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - - return bRet; - } - - // Dump the data - virtual BOOL WriteData(HANDLE hFile, LPOVERLAPPED pOverlapped, LPCSTR szBoundary=NULL, DWORD dwFlags = 0) throw() - { - if (pOverlapped == NULL) - { - return FALSE; - } - - // Make the MIME boundary for this message - char szBoundaryBuf[ATL_MIME_BOUNDARYLEN+1]; - if(MakeBoundary(szBoundaryBuf,ATL_MIME_BOUNDARYLEN+1) == FALSE) - return FALSE; - - // if the passed boundary is valid, this is an attached message - if (szBoundary && *szBoundary != '\0') - { - _ATLTRY - { - // output the MIME header for a message attachment - CStringA strHeader; - strHeader.Format("\r\n\r\n--%s\r\nContent-Type: message/rfc822\r\n\tname=\"%s\"\r\nContent-Transfer-Encoding: 8bit\r\n" - "Content-Disposition: attachment;\r\n\tfilename=\"%s\"\r\n\r\n", - szBoundary, m_szDisplayName, m_szDisplayName); - - if (!AtlSmtpSendAndWait(hFile, ((LPCSTR)strHeader), strHeader.GetLength(), pOverlapped)) - { - return FALSE; - } - } - _ATLCATCHALL() - { - return FALSE; - } - } - - if (!CMimeHeader::WriteData(hFile, pOverlapped, szBoundaryBuf, dwFlags)) - return FALSE; - - // Create and output the header - CStringA strHeader; - - if (!MakeMimeHeader(strHeader, szBoundaryBuf)) - { - return FALSE; - } - - if (!AtlSmtpSendAndWait(hFile, ((LPCSTR)strHeader), strHeader.GetLength(), pOverlapped)) - { - return FALSE; - } - - CMimeBodyPart* pCurrPart; - POSITION currPos = m_BodyParts.GetHeadPosition(); - - //Dump the body parts - while (currPos != NULL) - { - pCurrPart = m_BodyParts.GetAt(currPos); - if (!pCurrPart->WriteData(hFile, pOverlapped, szBoundaryBuf, dwFlags)) - { - return FALSE; - } - m_BodyParts.GetNext(currPos); - } - - char szBuf[ATL_MIME_BOUNDARYLEN+(sizeof("\r\n\r\n--%s--\r\n"))]; - //output a trailing boundary - if (*szBoundaryBuf) - { - int nBufLen = sprintf_s(szBuf, ATL_MIME_BOUNDARYLEN+(sizeof("\r\n\r\n--%s--\r\n")), - "\r\n\r\n--%s--\r\n", szBoundaryBuf); - if ((nBufLen < 0) || (!AtlSmtpSendAndWait(hFile, szBuf, nBufLen, pOverlapped))) - { - return FALSE; - } - } - - return TRUE; - } - - // Attach a file. - // szFileName - the filename - // szDisplayName - the display name (optional) - // szContentType - the content type (optional - defaults to NULL -- lookup will be attempted, otherwise default to application/octet-stream) - // nEncodingScheme - the encoding scheme to use for the attachment (optional - defaults to base64 - // uiCodePage - the codepage (optional) - inline BOOL AttachFile(LPCTSTR szFileName, LPCTSTR szDisplayName = NULL, LPCTSTR szContentType = NULL, - int nEncodingScheme = ATLSMTP_BASE64_ENCODE, UINT uiCodepage = 0) - { - if (szFileName == NULL) - return FALSE; - - CAutoPtr spFileAttach; - CMimeFileAttachment* pFileAttach = NULL; - ATLTRY(spFileAttach.Attach(pFileAttach = new CMimeFileAttachment())); - if (!spFileAttach || !pFileAttach) - return FALSE; - - BOOL bRet = pFileAttach->Initialize(szFileName, szDisplayName, m_spMultiLanguage, uiCodepage); - - if (bRet) - bRet = pFileAttach->SetEncodingScheme(nEncodingScheme); - - CString strContentType; - if (bRet && (szContentType == NULL)) - { - if (GetContentTypeFromFileName(szFileName, strContentType) != ERROR_OUTOFMEMORY) - { - szContentType = strContentType; - } - else - { - bRet = FALSE; - } - } - - _ATLTRY - { - if (bRet) - { - bRet = pFileAttach->SetContentType(szContentType); - if (bRet) - { - if (!m_BodyParts.AddTail(spFileAttach)) - { - bRet = FALSE; - } - } - } - } - _ATLCATCHALL() - { - bRet = FALSE; - } - - return bRet; - } - - // Attach some raw data - // pRawData - the data - // nDataLength - the size of the data in bytes - // nEncodingScheme - the encoding scheme to use for the attachment (optional - defaults to base64 - // uiCodePage - the codepage (optional) - inline BOOL AttachRaw(void* pRawData, DWORD dwDataLength, int nEncodingScheme = ATLSMTP_BASE64_ENCODE, BOOL bCopyData = TRUE, - LPCTSTR szDisplayName = NULL, LPCTSTR szContentType = _T("application/octet-stream"), UINT uiCodepage = 0) - { - if (!pRawData) - return FALSE; - - CAutoPtr spRawAttach; - CMimeRawAttachment* pRawAttach; - ATLTRY(spRawAttach.Attach(pRawAttach = new CMimeRawAttachment())); - if (!spRawAttach) - { - return FALSE; - } - - BOOL bRet = pRawAttach->Initialize(pRawData, dwDataLength, bCopyData, szDisplayName, m_spMultiLanguage, uiCodepage); - - if (bRet) - bRet = pRawAttach->SetEncodingScheme(nEncodingScheme); - if (bRet) - bRet = pRawAttach->SetContentType(szContentType); - - _ATLTRY - { - if (bRet) - if(!m_BodyParts.AddTail(spRawAttach)) - bRet = FALSE; - } - _ATLCATCHALL() - { - bRet = FALSE; - } - - return bRet; - } - - // Attach a CMimeMessage - // pMsg - pointer to the Msg object - inline BOOL AttachMessage(CMimeMessage* pMsg) throw( ... ) - { - if (!pMsg) - return FALSE; - - _ATLTRY - { - CAutoPtr spMsg(pMsg->Copy()); - if (!m_BodyParts.AddTail(spMsg)) - return FALSE; - } - _ATLCATCHALL() - { - return FALSE; - } - - return TRUE; - } - -protected: - // Make the MIME header - virtual inline BOOL MakeMimeHeader(CStringA& header, LPCSTR szBoundary) throw() - { - _ATLTRY - { - if (!*szBoundary) - { - header.Format("X-Priority: %d\r\n%s", m_nPriority, (LPCSTR) m_XHeader); - } - else if (m_BodyParts.GetCount() > 1) - { - header.Format("X-Priority: %d\r\n%sMIME-Version: 1.0\r\nContent-Type: multipart/mixed;\r\n\tboundary=\"%s\"\r\n", - m_nPriority, (LPCSTR) m_XHeader, szBoundary); - } - return TRUE; - } - _ATLCATCHALL() - { - return FALSE; - } - } - - // Make the MIME boundary - inline BOOL MakeBoundary(__out_ecount_z(nBufLen) LPSTR szBoundary, __in int nBufLen) - { - ATLENSURE(szBoundary != NULL); - - if(nBufLen < 1) - { - return FALSE; - } - - if (m_BodyParts.GetCount() < 2) - { - *szBoundary = '\0'; - } - else - { - int ret = sprintf_s(szBoundary, nBufLen, "------=_Next_Part_%.10u.%.3u", GetTickCount(), rand()%1000); - if (ret == -1 || ret >= nBufLen) - return FALSE; - } - return TRUE; - } - -}; // class CMimeMessage - -} // namespace ATL -#pragma pack(pop) - -#ifndef _CPPUNWIND -#pragma warning (pop) -#endif //_CPPUNWIND - -#pragma warning(pop) - -#endif // __ATLMIME_H__ diff --git a/ATL90/include/atlperf.h b/ATL90/include/atlperf.h deleted file mode 100644 index a1e8d9e..0000000 --- a/ATL90/include/atlperf.h +++ /dev/null @@ -1,663 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLPERF_H__ -#define __ATLPERF_H__ - -#pragma once - -#ifndef __cplusplus - #error ATL requires C++ compilation (use a .cpp suffix) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef _ATL_PERF_NOXML -#include -#include -#include - -/* xmldsodid and mshtmdid both have the same identifiers defined, with differing values. So we are renaming the XML ones since there are less identifiers dependent on those. */ -#ifdef DISPID_XOBJ_MIN -/* in case the HTM one was included first, we'll undef these first */ -#define _ATL_MSHTMDID_INCLUDED_ALREADY -#undef DISPID_XOBJ_MIN -#undef DISPID_XOBJ_MAX -#undef DISPID_XOBJ_BASE -#endif - -#include -#include - -/* re-undef the clashing names, and their direct dependents */ -#undef DISPID_XOBJ_MIN -#undef DISPID_XOBJ_MAX -#undef DISPID_XOBJ_BASE -#undef DISPID_XMLDSO -#undef DISPID_XMLELEMENTCOLLECTION - -/* re-def the clashing names, and their direct dependents, with un-clashed values */ -#define DISPID_XMLDSO_XOBJ_MIN 0x00010000 -#define DISPID_XMLDSO_XOBJ_MAX 0x0001FFFF -#define DISPID_XMLDSO_XOBJ_BASE DISPID_XMLDSO_XOBJ_MIN -#define DISPID_XMLDSO DISPID_XMLDSO_XOBJ_BASE -#define DISPID_XMLELEMENTCOLLECTION DISPID_XMLDSO_XOBJ_BASE -#ifdef _ATL_MSHTMDID_INCLUDED_ALREADY - -/* redef the clashing names to the HTM values */ -#define DISPID_XOBJ_MIN 0x80010000 -#define DISPID_XOBJ_MAX 0x8001FFFF -#define DISPID_XOBJ_BASE DISPID_XOBJ_MIN -#endif -#include -#endif - -#pragma warning(push) -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible - - -#pragma pack(push,_ATL_PACKING) -namespace ATL -{ - -const DWORD ATLPERF_SIZE_MASK = 0x00000300; -const DWORD ATLPERF_TYPE_MASK = 0x00000C00; -const DWORD ATLPERF_TEXT_MASK = 0x00010000; - -#ifndef ATLPERF_DEFAULT_MAXINSTNAMELENGTH -#define ATLPERF_DEFAULT_MAXINSTNAMELENGTH 64 -#endif - -// base class for user-defined perf objects -struct CPerfObject -{ - // implementation - - ULONG m_nAllocSize; - DWORD m_dwCategoryId; - DWORD m_dwInstance; - ULONG m_nRefCount; - ULONG m_nInstanceNameOffset; // byte offset from beginning of PerfObject to LPWSTR szInstanceName -}; - -class CPerfMon -{ -public: - virtual ~CPerfMon() throw(); - -#ifdef _ATL_PERF_REGISTER - // registration - HRESULT Register( - LPCTSTR szOpenFunc, - LPCTSTR szCollectFunc, - LPCTSTR szCloseFunc, - HINSTANCE hDllInstance = _AtlBaseModule.GetModuleInstance()) throw(); - HRESULT RegisterStrings( - LANGID wLanguage = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), - HINSTANCE hResInstance = _AtlBaseModule.GetResourceInstance()) throw(); - HRESULT RegisterAllStrings(HINSTANCE hResInstance = NULL) throw(); - HRESULT Unregister() throw(); -#endif - - HRESULT Initialize() throw(); - void UnInitialize() throw(); - HRESULT CreateInstance( - DWORD dwCategoryId, - DWORD dwInstance, - LPCWSTR szInstanceName, - CPerfObject** ppInstance) throw(); - HRESULT CreateInstanceByName( - DWORD dwCategoryId, - LPCWSTR szInstanceName, - CPerfObject** ppInstance) throw(); - - template - HRESULT CreateInstance( - DWORD dwInstance, - LPCWSTR szInstanceName, - T** ppInstance) throw() - { - // Ensure T derives from CPerfObject - static_cast(*ppInstance); - - return CreateInstance( - T::kCategoryId, - dwInstance, - szInstanceName, - reinterpret_cast(ppInstance) - ); - } - - template - HRESULT CreateInstanceByName( - LPCWSTR szInstanceName, - T** ppInstance) throw() - { - // Ensure T derives from CPerfObject - static_cast(*ppInstance); - - return CreateInstanceByName( - T::kCategoryId, - szInstanceName, - reinterpret_cast(ppInstance) - ); - } - - HRESULT ReleaseInstance(CPerfObject* pInstance) throw(); - HRESULT LockPerf(DWORD dwTimeout = INFINITE) throw(); - void UnlockPerf() throw(); - -#ifndef _ATL_PERF_NOXML - HRESULT PersistToXML(IStream *pStream, BOOL bFirst=TRUE, BOOL bLast=TRUE) throw(...); - HRESULT LoadFromXML(IStream *pStream) throw(...); -#endif - - // implementation - -public: - // PerfMon entry point helpers - DWORD Open(LPWSTR lpDeviceNames) throw(); - DWORD Collect(__in_z LPWSTR lpwszValue, __deref_inout_bcount(*pcbBytes) LPVOID* lppData, __inout LPDWORD lpcbBytes, __inout LPDWORD lpcObjectTypes) throw(); - DWORD Close() throw(); - - // map building routines - HRESULT AddCategoryDefinition( - DWORD dwCategoryId, - LPCTSTR szCategoryName, - LPCTSTR szHelpString, - DWORD dwDetailLevel, - INT nDefaultCounter, - BOOL bInstanceLess, - UINT nStructSize, - UINT nMaxInstanceNameLen = ATLPERF_DEFAULT_MAXINSTNAMELENGTH) throw(); - HRESULT AddCounterDefinition( - DWORD dwCounterId, - LPCTSTR szCounterName, - LPCTSTR szHelpString, - DWORD dwDetailLevel, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw(); - - // macro helpers - HRESULT RegisterCategory( - WORD wLanguage, - HINSTANCE hResInstance, - UINT* pSampleRes, - DWORD dwCategoryId, - UINT nNameString, - UINT nHelpString, - DWORD dwDetail, - BOOL bInstanceless, - UINT nStructSize, - UINT nMaxInstanceNameLen, - INT nDefaultCounter) throw(); - HRESULT RegisterCategory( - WORD wLanguage, - HINSTANCE hResInstance, - UINT* pSampleRes, - DWORD dwCategoryId, - LPCTSTR szNameString, - LPCTSTR szHelpString, - DWORD dwDetail, - BOOL bInstanceless, - UINT nStructSize, - UINT nMaxInstanceNameLen, - INT nDefaultCounter) throw(); - HRESULT RegisterCounter( - WORD wLanguage, - HINSTANCE hResInstance, - DWORD dwCounterId, - UINT nNameString, - UINT nHelpString, - DWORD dwDetail, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw(); - HRESULT RegisterCounter( - WORD wLanguage, - HINSTANCE hResInstance, - DWORD dwCounterId, - LPCTSTR szNameString, - LPCTSTR szHelpString, - DWORD dwDetail, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw(); - -protected: - void ClearMap() throw(); - - virtual LPCTSTR GetAppName() const throw() = 0; - virtual HRESULT CreateMap(WORD wLanguage, HINSTANCE hResInstance, UINT* pSampleRes = NULL) throw(); - virtual void OnBlockAlloc(CAtlFileMappingBase* /*pNewBlock*/) { } -#ifdef _ATL_PERF_REGISTER - static BOOL CALLBACK EnumResLangProc(HINSTANCE hModule, LPCTSTR szType, LPCTSTR szName, LANGID wIDLanguage, LPARAM lParam); -#endif - - // implementation helpers - struct CounterInfo - { - CounterInfo() : m_dwCounterId(0), m_dwDetailLevel(0), m_nNameId(0), - m_nHelpId(0), m_dwCounterType(0), m_nDefaultScale(0), - m_nMaxCounterSize(0), m_nDataOffset(0) - { - ZeroMemory (&m_cache, sizeof(m_cache)); - } - // implementation - - DWORD m_dwCounterId; - CString m_strName; - CString m_strHelp; - DWORD m_dwDetailLevel; - - // the ids that correspond to the name and help strings stored in the registry - UINT m_nNameId; - UINT m_nHelpId; - - // counter data - - DWORD m_dwCounterType; - LONG m_nDefaultScale; - - // the maximum size of the string counter data in characters, including the null terminator - // ignored if not a string counter - ULONG m_nMaxCounterSize; - - ULONG m_nDataOffset; - - // cached data to be copied into request - PERF_COUNTER_DEFINITION m_cache; - }; - - struct CategoryInfo - { - // implementation - - DWORD m_dwCategoryId; - CString m_strName; - CString m_strHelp; - DWORD m_dwDetailLevel; - - // the ids that correspond to the name and help strings stored in the registry - UINT m_nNameId; - UINT m_nHelpId; - - // category data - - LONG m_nDefaultCounter; - LONG m_nInstanceLess; // PERF_NO_INSTANCES if instanceless - - // the size of the struct not counting the name and string counters - ULONG m_nStructSize; - - // in characters including the null terminator - ULONG m_nMaxInstanceNameLen; - - ULONG m_nAllocSize; - - // cached data to be copied into request - PERF_OBJECT_TYPE m_cache; - ULONG m_nCounterBlockSize; - - // counters - UINT _GetNumCounters() throw(); - CounterInfo* _GetCounterInfo(UINT nIndex) throw(); - - CAtlArray m_counters; - }; - - LPBYTE _AllocData(LPBYTE& pData, ULONG nBytesAvail, ULONG* pnBytesUsed, size_t nBytesNeeded) throw(); - template T* _AllocStruct(LPBYTE& pData, ULONG nBytesAvail, ULONG* pnBytesUsed, T*) throw() - { - return reinterpret_cast(_AllocData(pData, nBytesAvail, pnBytesUsed, sizeof(T))); - } - - UINT _GetNumCategoriesAndCounters() throw(); - CategoryInfo* _GetCategoryInfo(UINT nIndex) throw(); - UINT _GetNumCategories() throw(); - CPerfObject* _GetFirstInstance(CAtlFileMappingBase* pBlock) throw(); - CPerfObject* _GetNextInstance(CPerfObject* pInstance) throw(); - CAtlFileMappingBase* _GetNextBlock(CAtlFileMappingBase* pBlock) throw(); - CAtlFileMappingBase* _OpenNextBlock(CAtlFileMappingBase* pPrev) throw(); - CAtlFileMappingBase* _AllocNewBlock(CAtlFileMappingBase* pPrev, BOOL* pbExisted = NULL) throw(); - HRESULT _OpenAllBlocks() throw(); - DWORD& _GetBlockId(CAtlFileMappingBase* pBlock) throw(...); - DWORD* _GetBlockId_NoThrow(CAtlFileMappingBase* pBlock) throw(); - CategoryInfo* _FindCategoryInfo(DWORD dwCategoryId) throw(); - CounterInfo* _FindCounterInfo(CategoryInfo* pCategoryInfo, DWORD dwCounterId) throw(); - CounterInfo* _FindCounterInfo(DWORD dwCategoryId, DWORD dwCounterId) throw(); - BOOL _WantCategoryType(__in_z LPWSTR lpwszValue, __in DWORD dwPerfId) throw(...); - void _FillCategoryType(CategoryInfo* pCategoryInfo) throw(); - void _FillCounterDef(CounterInfo* pCounterInfo, ULONG* pnCounterBlockSize) throw(); - HRESULT CPerfMon::_CollectInstance( - CategoryInfo* pCategoryInfo, - LPBYTE& pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed, - CPerfObject* pInstance, - PERF_OBJECT_TYPE* pObjectType, - PERF_COUNTER_DEFINITION* pCounterDefs - ) throw(); - HRESULT _CollectInstance( - CategoryInfo* pCategoryInfo, - LPBYTE& pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed, - PERF_OBJECT_TYPE* pObjectType, - PERF_COUNTER_DEFINITION* pCounterDefs - ) throw(); - HRESULT _CollectCategoryType( - CategoryInfo* pCategoryInfo, - LPBYTE pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed) throw(); - HRESULT _LoadMap(DWORD* pData) throw(); - HRESULT _SaveMap() throw(); - HRESULT _GetAttribute( - IXMLDOMNode *pNode, - LPCWSTR szAttrName, - BSTR *pbstrVal) throw(); - HRESULT CPerfMon::_CreateInstance( - DWORD dwCategoryId, - DWORD dwInstance, - LPCWSTR szInstanceName, - CPerfObject** ppInstance, - bool bByName) throw(); - -#ifdef _ATL_PERF_REGISTER - void _AppendStrings( - LPTSTR& pszNew, - CAtlArray& astrStrings, - ULONG iFirstIndex - ) throw(); - HRESULT _AppendRegStrings( - CRegKey& rkLang, - LPCTSTR szValue, - CAtlArray& astrStrings, - ULONG nNewStringSize, - ULONG iFirstIndex, - ULONG iLastIndex) throw(); - HRESULT _RemoveRegStrings( - CRegKey& rkLang, - LPCTSTR szValue, - ULONG iFirstIndex, - ULONG iLastIndex) throw(); - HRESULT _ReserveStringRange(DWORD& dwFirstCounter, DWORD& dwFirstHelp) throw(); - HRESULT _UnregisterStrings() throw(); - HRESULT _RegisterAllStrings(UINT nRes, HINSTANCE hResInstance) throw(); -#endif -private: - CAtlArray m_categories; - CAutoPtrArray m_aMem; - CMutex m_lock; - ULONG m_nAllocSize; - ULONG m_nHeaderSize; - ULONG m_nSchemaSize; - CSecurityDesc m_sd; -}; - -class CPerfLock -{ -public: - CPerfLock(CPerfMon* pPerfMon, DWORD dwTimeout = INFINITE) - { - ATLENSURE(pPerfMon != NULL); - m_pPerfMon = pPerfMon; - m_hrStatus = m_pPerfMon->LockPerf(dwTimeout); - } - - ~CPerfLock() throw() - { - if (SUCCEEDED(m_hrStatus)) - m_pPerfMon->UnlockPerf(); - } - - HRESULT GetStatus() const throw() - { - return m_hrStatus; - } - -private: - CPerfMon* m_pPerfMon; - HRESULT m_hrStatus; -}; - -//////////////////////////////////////////////////////////////////////// -// map macros - -// empty definition just for ease of use with code wizards, etc. -#define BEGIN_PERFREG_MAP() - -// empty definition just for ease of use with code wizards, etc. -#define END_PERFREG_MAP() - -#if !defined(_ATL_PERF_REGISTER) | defined(_ATL_PERF_NOEXPORT) -#define PERFREG_ENTRY(className) -#endif - -#ifdef _ATL_PERF_REGISTER -#define BEGIN_PERF_MAP(AppName) \ - private: \ - LPCTSTR GetAppName() const throw() { return AppName; } \ - HRESULT CreateMap(WORD wLanguage, HINSTANCE hResInstance, UINT* pSampleRes = NULL) throw() \ - { \ - if (pSampleRes) \ - *pSampleRes = 0; \ - ClearMap(); - -#define BEGIN_COUNTER_MAP(categoryclass) \ - public: \ - typedef categoryclass _PerfCounterClass; \ - static HRESULT CreateMap(CPerfMon* pPerf, WORD wLanguage, HINSTANCE hResInstance, UINT* pSampleRes) throw() \ - { \ - HRESULT hr = RegisterCategory(pPerf, wLanguage, hResInstance, pSampleRes); \ - if (FAILED(hr)) \ - return hr; - -#define DECLARE_PERF_CATEGORY_EX(dwCategoryId, namestring, helpstring, detail, instanceless, structsize, maxinstnamelen, defcounter) \ - static HRESULT RegisterCategory(CPerfMon* pPerf, WORD wLanguage, HINSTANCE hResInstance, UINT* pSampleRes) throw() \ - { \ - return pPerf->RegisterCategory(wLanguage, hResInstance, pSampleRes, dwCategoryId, namestring, helpstring, detail, instanceless, structsize, maxinstnamelen, defcounter); \ - } \ - /* NOTE: put a semicolon after your call to DECLARE_PERF_CATEGORY*(...) */ \ - /* this is needed for the code wizards to parse things properly */ \ - static const DWORD kCategoryId = dwCategoryId - -#define CHAIN_PERF_CATEGORY(categoryclass) \ - if (FAILED(categoryclass::CreateMap(this, wLanguage, hResInstance, pSampleRes))) \ - return E_FAIL; - -// CAssertValidField ensures that the member variable that's being passed to -// DEFINE_COUNTER[_EX] is the proper type. only 32-bit integral types can be used with -// PERF_SIZE_DWORD and only 64-bit integral types can be used with PERF_SIZE_LARGE -template< DWORD t_dwSize > -class CAssertValidField -{ -}; - -template<> -class CAssertValidField< PERF_SIZE_DWORD > -{ -public: - template< class C > static void AssertValidFieldType( ULONG C::* ) throw() { } - template< class C > static void AssertValidFieldType( LONG C::* ) throw() { } -}; - -template<> -class CAssertValidField< PERF_SIZE_LARGE > -{ -public: - template< class C > static void AssertValidFieldType( ULONGLONG C::* ) throw() { } - template< class C > static void AssertValidFieldType( LONGLONG C::* ) throw() { } -}; - -#define DEFINE_COUNTER_EX(member, dwCounterId, namestring, helpstring, detail, countertype, maxcountersize, defscale) \ - CAssertValidField< (countertype) & ATLPERF_SIZE_MASK >::AssertValidFieldType( &_PerfCounterClass::member ); \ - hr = pPerf->RegisterCounter(wLanguage, hResInstance, dwCounterId, namestring, helpstring, detail, countertype, maxcountersize, (ULONG) offsetof(_PerfCounterClass, member), defscale); \ - if (FAILED(hr)) \ - return hr; - -#define END_PERF_MAP() \ - return S_OK; \ - } - -#define END_COUNTER_MAP() \ - return S_OK; \ - } - -#else // _ATL_PERF_REGISTER - -#define BEGIN_PERF_MAP(AppName) \ - private: \ - LPCTSTR GetAppName() const throw() { return AppName; } - -#define BEGIN_COUNTER_MAP(objectclass) - -#define DECLARE_PERF_CATEGORY_EX(dwCategoryId, namestring, helpstring, detail, instanceless, structsize, maxinstnamelen, defcounter) \ - /* NOTE: put a semicolon after your call to DECLARE_PERF_CATEGORY*(...) */ \ - /* this is needed for the code wizards to parse things properly */ \ - static const DWORD kCategoryId = dwCategoryId - -#define CHAIN_PERF_CATEGORY(objectclass) -#define DEFINE_COUNTER_EX(member, dwCounterId, namestring, helpstring, detail, countertype, maxcountersize, defscale) - -#define END_PERF_MAP() -#define END_COUNTER_MAP() - -#endif // _ATL_PERF_REGISTER - -#define DECLARE_PERF_CATEGORY(objectclass, dwCategoryId, namestring, helpstring, defcounter) \ - DECLARE_PERF_CATEGORY_EX(dwCategoryId, namestring, helpstring, PERF_DETAIL_NOVICE, 0, sizeof(objectclass), ATLPERF_DEFAULT_MAXINSTNAMELENGTH, defcounter) -#define DECLARE_PERF_CATEGORY_NO_INSTANCES(objectclass, dwCategoryId, namestring, helpstring, defcounter) \ - DECLARE_PERF_CATEGORY_EX(dwCategoryId, namestring, helpstring, PERF_DETAIL_NOVICE, PERF_NO_INSTANCES, sizeof(objectclass), 0, defcounter) - -#define DEFINE_COUNTER(member, namestring, helpstring, countertype, defscale) \ - DEFINE_COUNTER_EX(member, 0, namestring, helpstring, PERF_DETAIL_NOVICE, countertype, 0, defscale) - -#pragma deprecated( DECLARE_PERF_OBJECT_EX ) -#pragma deprecated( DECLARE_PERF_OBJECT ) -#pragma deprecated( DECLARE_PERF_OBJECT_NO_INSTANCES ) -#pragma deprecated( CHAIN_PERF_OBJECT ) -#define DECLARE_PERF_OBJECT_EX DECLARE_PERF_CATEGORY_EX -#define DECLARE_PERF_OBJECT DECLARE_PERF_CATEGORY -#define DECLARE_PERF_OBJECT_NO_INSTANCES DECLARE_PERF_CATEGORY_NO_INSTANCES -#define CHAIN_PERF_OBJECT CHAIN_PERF_CATEGORY - -//////////////////////////////////////////////////////////////////////// -// automagic registration stuff - -#if defined(_ATL_PERF_REGISTER) & !defined(_ATL_PERF_NOEXPORT) - -// define _ATL_PERF_NOEXPORT if you don't want to use the PERFREG map and don't want these -// functions exported from your DLL - -// Perf register map stuff -// this is for ease of integration with the module attribute and for the -// perfmon wizard - -#pragma section("ATLP$A", read, shared) -#pragma section("ATLP$Z", read, shared) -#pragma section("ATLP$C", read, shared) -extern "C" -{ -__declspec(selectany) __declspec(allocate("ATLP$A")) CPerfMon * __pperfA = NULL; -__declspec(selectany) __declspec(allocate("ATLP$Z")) CPerfMon * __pperfZ = NULL; -} - -#if !defined(_M_IA64) -#pragma comment(linker, "/merge:ATLP=.rdata") -#endif - -#if defined(_M_IA64) || defined(_M_AMD64) - #define ATLPERF_FUNCID_OPEN "OpenPerfMon" - #define ATLPERF_FUNCID_COLLECT "CollectPerfMon" - #define ATLPERF_FUNCID_CLOSE "ClosePerfMon" -#elif defined(_M_IX86) - #define ATLPERF_FUNCID_OPEN "_OpenPerfMon@4" - #define ATLPERF_FUNCID_COLLECT "_CollectPerfMon@16" - #define ATLPERF_FUNCID_CLOSE "_ClosePerfMon@0" -#else -#if !defined(ATLPERF_FUNCID_OPEN) || !defined(ATLPERF_FUNCID_COLLECT) || !defined (ATLPERF_FUNCID_CLOSE) -#error "Unknown platform. Define ATLPERF_FUNCID_OPEN, ATLPERF_FUNCID_COLLECT, ATLPERF_FUNCID_CLOSE" -#endif -#endif - -HRESULT RegisterPerfMon(HINSTANCE hDllInstance = _AtlBaseModule.GetModuleInstance()) throw(); -HRESULT UnregisterPerfMon() throw(); - -extern "C" DWORD __declspec(dllexport) WINAPI OpenPerfMon(LPWSTR lpDeviceNames) throw(); -extern "C" DWORD __declspec(dllexport) WINAPI CollectPerfMon(LPWSTR lpwszValue, LPVOID* lppData, - LPDWORD lpcbBytes, LPDWORD lpcObjectTypes) throw(); -extern "C" DWORD __declspec(dllexport) WINAPI ClosePerfMon() throw(); - -// this class handles integrating the registration with CComModule -class _CAtlPerfSetFuncPtr -{ -public: - _CAtlPerfSetFuncPtr() - { - _pPerfRegFunc = RegisterPerfMon; - _pPerfUnRegFunc = UnregisterPerfMon; - } -}; - -extern "C" { __declspec(selectany) _CAtlPerfSetFuncPtr g_atlperfinit; } - -#if defined(_M_IX86) -#pragma comment(linker, "/INCLUDE:_g_atlperfinit") -#elif defined(_M_IA64) || defined(_M_AMD64) -#pragma comment(linker, "/INCLUDE:g_atlperfinit") -#else -#pragma message("Unknown platform. Make sure the linker includes g_atlperfinit") -#endif - -#ifndef PERF_ENTRY_PRAGMA - -#if defined(_M_IX86) -#define PERF_ENTRY_PRAGMA(class) __pragma(comment(linker, "/include:___pperf_" #class)); -#elif defined(_M_IA64) -#define PERF_ENTRY_PRAGMA(class) __pragma(comment(linker, "/include:__pperf_" #class)); -#elif defined(_M_AMD64) -#define PERF_ENTRY_PRAGMA(class) __pragma(comment(linker, "/include:__pperf_" #class)); -#else -#error Unknown Platform. define PERF_ENTRY_PRAGMA -#endif - -#endif // PERF_ENTRY_PRAGMA - -#define PERFREG_ENTRY(className) \ - __declspec(selectany) className __perf_##className; \ - extern "C" __declspec(allocate("ATLP$C")) __declspec(selectany) CPerfMon * const __pperf_##className = \ - static_cast(&__perf_##className); \ - PERF_ENTRY_PRAGMA(className) - -#endif // _ATL_PERF_NOEXPORT - -} // namespace ATL - - -#include - -#pragma pack(pop) -#pragma warning(pop) - -#endif // __ATLPERF_H__ diff --git a/ATL90/include/atlperf.inl b/ATL90/include/atlperf.inl deleted file mode 100644 index 398fd1b..0000000 --- a/ATL90/include/atlperf.inl +++ /dev/null @@ -1,2894 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLPERF_INL__ -#define __ATLPERF_INL__ - -#pragma once - -#ifndef __ATLPERF_H__ - #error atlperf.inl requires atlperf.h to be included first -#endif - -#pragma warning(push) - -#ifndef _CPPUNWIND -#pragma warning(disable: 4702) // unreachable code -#endif - -namespace ATL -{ - -extern __declspec(selectany) const TCHAR * const c_szAtlPerfCounter = _T("Counter"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfFirstCounter = _T("First Counter"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfLastCounter = _T("Last Counter"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfHelp = _T("Help"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfFirstHelp = _T("First Help"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfLastHelp = _T("Last Help"); - -extern __declspec(selectany) const WCHAR * const c_szAtlPerfGlobal = L"Global"; -extern __declspec(selectany) const TCHAR * const c_szAtlPerfLibrary = _T("Library"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfOpen = _T("Open"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfCollect = _T("Collect"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfClose = _T("Close"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfLanguages = _T("Languages"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfMap = _T("Map"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfPerformance = _T("Performance"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfServicesKey = _T("SYSTEM\\CurrentControlSet\\Services\\%s"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfPerformanceKey = _T("SYSTEM\\CurrentControlSet\\Services\\%s\\Performance"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfPerfLibKey = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"); -extern __declspec(selectany) const TCHAR * const c_szAtlPerfPerfLibLangKey = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib\\%3.3x"); - -inline CPerfMon::CounterInfo* CPerfMon::CategoryInfo::_GetCounterInfo(UINT nIndex) throw() -{ - ATLASSERT(nIndex < _GetNumCounters()); - return &m_counters[nIndex]; -} - -inline UINT CPerfMon::CategoryInfo::_GetNumCounters() throw() -{ - return (UINT) m_counters.GetCount(); -} - -inline CPerfMon::~CPerfMon() throw() -{ - UnInitialize(); -} - -inline HRESULT CPerfMon::CreateMap(LANGID language, HINSTANCE hResInstance, UINT* pSampleRes) throw() -{ - (language); // unused - (hResInstance); // unused - (pSampleRes); // unused - return S_OK; -} - -inline UINT CPerfMon::_GetNumCategoriesAndCounters() throw() -{ - UINT nResult = _GetNumCategories(); - for (UINT i=0; i<_GetNumCategories(); i++) - { - nResult += _GetCategoryInfo(i)->_GetNumCounters(); - } - - return nResult; -} - -inline CPerfMon::CategoryInfo* CPerfMon::_GetCategoryInfo(UINT nIndex) throw() -{ - ATLASSERT(nIndex < _GetNumCategories()); - return &m_categories[nIndex]; -} - -inline UINT CPerfMon::_GetNumCategories() throw() -{ - return (UINT) m_categories.GetCount(); -} - -inline CPerfObject* CPerfMon::_GetFirstInstance(CAtlFileMappingBase* pBlock) -{ - ATLENSURE(pBlock != NULL); - - // should never happen if Initialize succeeded - // are you checking return codes? - ATLASSERT(pBlock->GetData() != NULL); - - return reinterpret_cast(LPBYTE(pBlock->GetData()) + m_nHeaderSize); -} - -inline CPerfObject* CPerfMon::_GetNextInstance(CPerfObject* pInstance) -{ - ATLENSURE_RETURN_VAL(pInstance != NULL, NULL); - ATLENSURE_RETURN_VAL(pInstance->m_nAllocSize != (ULONG)-1, NULL); - ATLASSERT(pInstance->m_nAllocSize != (ULONG)0); - - return reinterpret_cast(LPBYTE(pInstance) + pInstance->m_nAllocSize); -} - -inline CAtlFileMappingBase* CPerfMon::_GetNextBlock(CAtlFileMappingBase* pBlock) throw() -{ - // calling _GetNextBlock(NULL) will return the first block - DWORD dwNextBlockIndex = 0; - DWORD* pDw= _GetBlockId_NoThrow(pBlock); - if (pDw) - { - dwNextBlockIndex = *pDw +1; - } - if (m_aMem.GetCount() == dwNextBlockIndex) - return NULL; - return m_aMem[dwNextBlockIndex]; -} - -inline CAtlFileMappingBase* CPerfMon::_OpenNextBlock(CAtlFileMappingBase* pPrev) throw() -{ - CAutoPtr spMem; - CAtlFileMappingBase* pMem = NULL; - ATLTRY(spMem.Attach(new CAtlFileMappingBase)); - if (spMem == NULL) - return NULL; - - // create a unique name for the shared mem segment based on the index - DWORD dwNextBlockIndex; - DWORD* pDw= _GetBlockId_NoThrow(pPrev); - if (pDw) - { - dwNextBlockIndex = *pDw +1; - } - else - { - // use the system allocation granularity (65536 currently. may be different in the future) - SYSTEM_INFO si; - GetSystemInfo(&si); - m_nAllocSize = si.dwAllocationGranularity; - - dwNextBlockIndex = 0; - } - - _ATLTRY - { - CString strName; - strName.Format(_T("Global\\ATLPERF_%s_%3.3d"), GetAppName(), dwNextBlockIndex); - - HRESULT hr = spMem->OpenMapping(strName, m_nAllocSize, 0, FILE_MAP_READ); - if (FAILED(hr)) - return NULL; - - pMem = spMem; - m_aMem.Add(spMem); - } - _ATLCATCHALL() - { - return NULL; - } - - return pMem; -} - -inline CAtlFileMappingBase* CPerfMon::_AllocNewBlock(CAtlFileMappingBase* pPrev, BOOL* pbExisted /* == NULL */) throw() -{ - CAtlFileMappingBase* pMem = NULL; - _ATLTRY - { - CSecurityAttributes sa; - sa.Set(m_sd); - - CAutoPtr spMem; - spMem.Attach(new CAtlFileMappingBase); - if (spMem == NULL) - { - return NULL; - } - - // create a unique name for the shared mem segment based on the index - DWORD dwNextBlockIndex; - if (pPrev != NULL) - { - dwNextBlockIndex = _GetBlockId(pPrev) +1; - } - else - { - // use the system allocation granularity (65536 currently. may be different in the future) - SYSTEM_INFO si; - GetSystemInfo(&si); - m_nAllocSize = si.dwAllocationGranularity; - - dwNextBlockIndex = 0; - } - - BOOL bExisted = FALSE; - CString strName; - strName.Format(_T("Global\\ATLPERF_%s_%3.3d"), GetAppName(), dwNextBlockIndex); - - HRESULT hr = spMem->MapSharedMem(m_nAllocSize, strName, &bExisted, &sa); - if (FAILED(hr)) - { - return NULL; - } - - if(!bExisted) - { - memset(spMem->GetData(), 0, m_nAllocSize); - // save the index of this block - // don't for first block since we don't know m_nSchemaSize yet - if (dwNextBlockIndex) - { - _GetBlockId(spMem) = dwNextBlockIndex; - } - } - else - { - CSid owner; - CDacl dacl; - - m_sd.GetOwner(&owner); - m_sd.GetDacl(&dacl); - - // prevent us from using an object someone else has opened - if (::SetSecurityInfo(spMem->GetHandle(), SE_KERNEL_OBJECT, - DACL_SECURITY_INFORMATION | OWNER_SECURITY_INFORMATION, - const_cast(owner.GetPSID()), - NULL, - const_cast(dacl.GetPACL()), - NULL) != ERROR_SUCCESS) - { - return NULL; - } - } - - if (pbExisted) - { - *pbExisted = bExisted; - } - - pMem = spMem; - m_aMem.Add(spMem); - - OnBlockAlloc(pMem); - } - _ATLCATCHALL() - { - return NULL; - } - - return pMem; -} - -inline HRESULT CPerfMon::_OpenAllBlocks() throw() -{ - HRESULT hr; - - // if we haven't opened any yet, initialize - if (m_aMem.GetCount() == 0) - { - CAtlFileMappingBase* pMem = _OpenNextBlock(NULL); - if (pMem == NULL) - return S_OK; - - hr = _LoadMap(LPDWORD(pMem->GetData())); - if (FAILED(hr)) - { - m_aMem.RemoveAll(); - return hr; - } - - m_nSchemaSize = *LPDWORD(pMem->GetData()); - m_nHeaderSize = m_nSchemaSize + sizeof(DWORD); - m_nHeaderSize = AtlAlignUp(m_nHeaderSize,16); - } - - // open any new blocks - CAtlFileMappingBase* pMem = m_aMem[m_aMem.GetCount()-1]; - while (pMem) - pMem = _OpenNextBlock(pMem); - - return S_OK; -} - -inline HRESULT CPerfMon::_LoadMap(DWORD* pData) throw() -{ - _ATLTRY - { - HRESULT hr; - - ClearMap(); - - DWORD dwDataSize = *pData++; // blob size - DWORD dwNumItems = *pData++; // number of items - - // see if we have name data - DWORD* pNameData = NULL; - if (dwDataSize > (2+dwNumItems*9) * sizeof(DWORD)) - pNameData = pData + dwNumItems*9; // blob size and item count already skipped. skip item data - - for (DWORD i=0; im_nNameId = dwNameId; - pCategoryInfo->m_nHelpId = dwHelpId; - } - else - { - DWORD dwCounterType = *pData++; - DWORD dwMaxCounterSize = *pData++; - DWORD dwDataOffset = *pData++; - DWORD dwDefaultScale = *pData++; - - hr = AddCounterDefinition( - dwPerfId, - strName, - NULL, - dwDetailLevel, - dwCounterType, - dwMaxCounterSize, - dwDataOffset, - dwDefaultScale); - if (FAILED(hr)) - { - ClearMap(); - return hr; - } - - DWORD dwNameId = *pData++; - DWORD dwHelpId = *pData++; - CategoryInfo* pCategoryInfo = _GetCategoryInfo(_GetNumCategories()-1); - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(pCategoryInfo->_GetNumCounters()-1); - pCounterInfo->m_nNameId = dwNameId; - pCounterInfo->m_nHelpId = dwHelpId; - } - } - - // fill in cache data - ULONG* pnCounterBlockSize = NULL; // pointer to the object's counter block size - for (DWORD i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - // align at 8 bytes per Q262335 - pCategoryInfo->m_nCounterBlockSize = (ULONG) AtlAlignUp(sizeof(PERF_COUNTER_BLOCK), 8); - pnCounterBlockSize = &pCategoryInfo->m_nCounterBlockSize; - _FillCategoryType(pCategoryInfo); - for (DWORD j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - _FillCounterDef(pCounterInfo, pnCounterBlockSize); - } - // align at 8 bytes per Q262335 - pCategoryInfo->m_nCounterBlockSize = (ULONG) AtlAlignUp(pCategoryInfo->m_nCounterBlockSize, 8); - } - - return S_OK; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } -} - -inline HRESULT CPerfMon::_SaveMap() throw() -{ - _ATLTRY - { - // figure out how much memory we need - size_t nSize = (2 + 9*_GetNumCategoriesAndCounters()) * sizeof(DWORD); - for (UINT i=0; i<_GetNumCategories(); i++) - { - // if any of the entries have names, they'd better all have names - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - if (!pCategoryInfo->m_strName.IsEmpty()) - { - nSize += sizeof(DWORD) + AtlAlignUp(sizeof(WCHAR) * pCategoryInfo->m_strName.GetLength(), sizeof(DWORD)); - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - nSize += sizeof(DWORD) + AtlAlignUp(sizeof(WCHAR) * pCounterInfo->m_strName.GetLength(), sizeof(DWORD)); - } - } - } - - CHeapPtr blob; - if (!blob.Allocate(nSize)) - return E_OUTOFMEMORY; - - // start with blob size and number of items in the blob - DWORD* pCurrent = reinterpret_cast(blob.m_pData); - memset(pCurrent, 0, nSize); - *pCurrent++ = (DWORD) nSize; // blob size - *pCurrent++ = _GetNumCategoriesAndCounters(); // number of items - size_t nSizeLast = nSize; - nSize -= 2 * sizeof(DWORD); - if(nSize > nSizeLast) return E_FAIL; - - for (UINT i=0; i<_GetNumCategories(); i++) - { - // add all the relevant runtime info to the blob for each item - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - - *pCurrent++ = TRUE; // is object - *pCurrent++ = pCategoryInfo->m_dwCategoryId; - *pCurrent++ = pCategoryInfo->m_dwDetailLevel; - *pCurrent++ = pCategoryInfo->m_nDefaultCounter; - *pCurrent++ = pCategoryInfo->m_nInstanceLess; - *pCurrent++ = pCategoryInfo->m_nStructSize; - *pCurrent++ = pCategoryInfo->m_nMaxInstanceNameLen; - *pCurrent++ = pCategoryInfo->m_nNameId; - *pCurrent++ = pCategoryInfo->m_nHelpId; - nSizeLast = nSize; - nSize -= 9 * sizeof(DWORD); - if(nSize > nSizeLast) return E_FAIL; - - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - - *pCurrent++ = FALSE; // is object - *pCurrent++ = pCounterInfo->m_dwCounterId; - *pCurrent++ = pCounterInfo->m_dwDetailLevel; - *pCurrent++ = pCounterInfo->m_dwCounterType; - *pCurrent++ = pCounterInfo->m_nMaxCounterSize; - *pCurrent++ = pCounterInfo->m_nDataOffset; - *pCurrent++ = pCounterInfo->m_nDefaultScale; - *pCurrent++ = pCounterInfo->m_nNameId; - *pCurrent++ = pCounterInfo->m_nHelpId; - nSizeLast = nSize; - nSize -= 9 * sizeof(DWORD); - if(nSize > nSizeLast) return E_FAIL; - } - } - - // add names to the blob - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - // copy the len of the string (in characters) then the wide-char version of the string - // pad the string to a dword boundary - int nLen = pCategoryInfo->m_strName.GetLength(); - *pCurrent++ = nLen; - nSizeLast = nSize; - nSize -= sizeof(DWORD); - if(nSize > nSizeLast) return E_FAIL; - - Checked::memcpy_s(pCurrent, nSize, CT2CW(pCategoryInfo->m_strName), sizeof(WCHAR)*nLen); - pCurrent += AtlAlignUp(sizeof(WCHAR) * nLen, sizeof(DWORD))/sizeof(DWORD); - nSizeLast = nSize; - nSize -= sizeof(WCHAR)*nLen; - if(nSize > nSizeLast) return E_FAIL; - - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - // copy the len of the string (in characters) then the wide-char version of the string - // pad the string to a dword boundary - int nCounterLen = pCounterInfo->m_strName.GetLength(); - *pCurrent++ = nCounterLen; - nSizeLast = nSize; - nSize -= sizeof(DWORD); - if(nSize > nSizeLast) return E_FAIL; - - Checked::memcpy_s(pCurrent, nSize, CT2CW(pCounterInfo->m_strName), sizeof(WCHAR)*nCounterLen); - pCurrent += AtlAlignUp(sizeof(WCHAR) * nCounterLen, sizeof(DWORD))/sizeof(DWORD); - nSizeLast = nSize; - nSize -= sizeof(WCHAR)*nCounterLen; - if(nSize > nSizeLast) return E_FAIL; - } - } - - CRegKey rkApp; - CString str; - DWORD dwErr; - - str.Format(c_szAtlPerfPerformanceKey, GetAppName()); - dwErr = rkApp.Open(HKEY_LOCAL_MACHINE, str); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - rkApp.SetBinaryValue(c_szAtlPerfMap, blob, *LPDWORD(blob.m_pData)); - - return S_OK; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } -} - -inline CPerfMon::CategoryInfo* CPerfMon::_FindCategoryInfo(DWORD dwCategoryId) throw() -{ - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - if (pCategoryInfo->m_dwCategoryId == dwCategoryId) - return pCategoryInfo; - } - - return NULL; -} - -inline CPerfMon::CounterInfo* CPerfMon::_FindCounterInfo(CategoryInfo* pCategoryInfo, DWORD dwCounterId) -{ - ATLENSURE_RETURN_VAL(pCategoryInfo != NULL, NULL); - - for (DWORD i=0; i_GetNumCounters(); i++) - { - CounterInfo* pCounter = pCategoryInfo->_GetCounterInfo(i); - if (pCounter->m_dwCounterId == dwCounterId) - return pCounter; - } - - return NULL; -} - -inline CPerfMon::CounterInfo* CPerfMon::_FindCounterInfo(DWORD dwCategoryId, DWORD dwCounterId) throw() -{ - CategoryInfo* pCategoryInfo = _FindCategoryInfo(dwCategoryId); - if (pCategoryInfo != NULL) - return _FindCounterInfo(pCategoryInfo, dwCounterId); - - return NULL; -} - -inline BOOL CPerfMon::_WantCategoryType(__in_z LPWSTR szValue, __in DWORD dwCategoryId) throw(...) -{ - ATLASSERT(szValue != NULL); - - if (lstrcmpiW(c_szAtlPerfGlobal, szValue) == 0) - return TRUE; - - CString strList(szValue); - int nStart = 0; - - CString strNum = strList.Tokenize(_T(" "), nStart); - while (!strNum.IsEmpty()) - { - if (_ttoi(strNum) == int(dwCategoryId)) - return TRUE; - - strNum = strList.Tokenize(_T(" "), nStart); - } - - return FALSE; -} - -inline LPBYTE CPerfMon::_AllocData(LPBYTE& pData, ULONG nBytesAvail, ULONG* pnBytesUsed, size_t nBytesNeeded) -{ - ATLENSURE_RETURN_VAL(pnBytesUsed != NULL, NULL); - ULONG newSize = *pnBytesUsed+static_cast(nBytesNeeded); - - if ((newSize < *pnBytesUsed) || (newSize < (ULONG) nBytesNeeded) || (nBytesAvail < newSize)) - return NULL; - - LPBYTE p = pData; - pData += nBytesNeeded; - *pnBytesUsed += (ULONG) nBytesNeeded; - - return p; -} - -inline DWORD& CPerfMon::_GetBlockId(CAtlFileMappingBase* pBlock) -{ - DWORD* pDw = _GetBlockId_NoThrow(pBlock); - ATLENSURE(pDw); - return *pDw; -} - -inline DWORD* CPerfMon::_GetBlockId_NoThrow(CAtlFileMappingBase* pBlock) -{ - if (pBlock == NULL) - return NULL; - - return LPDWORD(LPBYTE(pBlock->GetData()) + m_nSchemaSize); -} - -inline void CPerfMon::_FillCategoryType(CategoryInfo* pCategoryInfo) throw() -{ - PERF_OBJECT_TYPE& type = pCategoryInfo->m_cache; - type.DefinitionLength = sizeof(PERF_OBJECT_TYPE) + sizeof(PERF_COUNTER_DEFINITION) * pCategoryInfo->_GetNumCounters(); - type.TotalByteLength = type.DefinitionLength; // we will add the instance definitions/counter blocks as we go - type.HeaderLength = sizeof(PERF_OBJECT_TYPE); - type.ObjectNameTitleIndex = pCategoryInfo->m_nNameId; - type.ObjectNameTitle = NULL; - type.ObjectHelpTitleIndex = pCategoryInfo->m_nHelpId; - type.ObjectHelpTitle = NULL; - type.DetailLevel = pCategoryInfo->m_dwDetailLevel; - type.NumCounters = pCategoryInfo->_GetNumCounters(); - type.DefaultCounter = pCategoryInfo->m_nDefaultCounter; - if (pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES) - type.NumInstances = PERF_NO_INSTANCES; - else - type.NumInstances = 0; // this will be calculated as objects are processed - type.CodePage = 0; - type.PerfTime.QuadPart = 0; - QueryPerformanceFrequency (&(type.PerfFreq)); -} - -inline void CPerfMon::_FillCounterDef(CounterInfo* pCounterInfo, ULONG* pnCounterBlockSize) throw() -{ - PERF_COUNTER_DEFINITION& def = pCounterInfo->m_cache; - - def.ByteLength = sizeof(PERF_COUNTER_DEFINITION); - def.CounterNameTitleIndex = pCounterInfo->m_nNameId; - def.CounterNameTitle = NULL; - def.CounterHelpTitleIndex = pCounterInfo->m_nHelpId; - def.CounterHelpTitle = NULL; - def.DefaultScale = pCounterInfo->m_nDefaultScale; - def.DetailLevel = pCounterInfo->m_dwDetailLevel; - def.CounterType = pCounterInfo->m_dwCounterType; - DWORD dwAlignOfCounter=0; - switch (pCounterInfo->m_dwCounterType & ATLPERF_SIZE_MASK) - { - case PERF_SIZE_DWORD: - def.CounterSize = sizeof(DWORD); - dwAlignOfCounter = sizeof(DWORD); - break; - case PERF_SIZE_LARGE: - def.CounterSize = sizeof(__int64); - dwAlignOfCounter = sizeof(__int64); - break; - case PERF_SIZE_ZERO: - def.CounterSize = 0; - dwAlignOfCounter = 0; - break; - case PERF_SIZE_VARIABLE_LEN: - ATLASSERT((pCounterInfo->m_dwCounterType & ATLPERF_TYPE_MASK) == PERF_TYPE_TEXT); - if ((pCounterInfo->m_dwCounterType & ATLPERF_TEXT_MASK) == PERF_TEXT_UNICODE) - { - def.CounterSize = (DWORD) AtlAlignUp(pCounterInfo->m_nMaxCounterSize * sizeof(WCHAR), sizeof(DWORD)); - } - else - { - def.CounterSize = (DWORD) AtlAlignUp(pCounterInfo->m_nMaxCounterSize * sizeof(char), sizeof(DWORD)); - } - break; - } - *pnCounterBlockSize = AtlAlignUp(*pnCounterBlockSize, dwAlignOfCounter); - def.CounterOffset = *pnCounterBlockSize; - *pnCounterBlockSize += def.CounterSize; -} - -inline HRESULT CPerfMon::_CollectInstance( - CategoryInfo* pCategoryInfo, - LPBYTE& pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed, - CPerfObject* _pInstance, - PERF_OBJECT_TYPE* pObjectType, - PERF_COUNTER_DEFINITION* pCounterDefs - ) throw() -{ - DWORD dwInstance = _pInstance->m_dwInstance; - - // grab a snapshot of the object - USES_ATL_SAFE_ALLOCA; - CPerfObject* pInstance = (CPerfObject*) _ATL_SAFE_ALLOCA(_pInstance->m_nAllocSize, _ATL_SAFE_ALLOCA_DEF_THRESHOLD); - if (pInstance == NULL) - { - return E_OUTOFMEMORY; - } - Checked::memcpy_s(pInstance, _pInstance->m_nAllocSize, _pInstance, _pInstance->m_nAllocSize); - - // if it was changed or deleted between when we first saw it and when we copied - // it, then forget about whatever happens to be there for this collection period - if (pInstance->m_dwCategoryId != pCategoryInfo->m_dwCategoryId || - dwInstance != pInstance->m_dwInstance || - pInstance->m_nRefCount == 0) - return S_OK; - - // we have a copy of something that claims to be the object type we're expecting - // put it into the data blob - PERF_INSTANCE_DEFINITION* pInstanceDef = NULL; - - if (pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES) - pObjectType->NumInstances = PERF_NO_INSTANCES; - else - { - pObjectType->NumInstances++; - - // create an instance definition - pInstanceDef = _AllocStruct(pData, nBytesAvail, pnBytesUsed, (PERF_INSTANCE_DEFINITION*) NULL); - if (pInstanceDef == NULL) - return E_OUTOFMEMORY; - - pInstanceDef->ParentObjectTitleIndex = 0; - pInstanceDef->ParentObjectInstance = 0; - pInstanceDef->UniqueID = PERF_NO_UNIQUE_ID; - - // handle the instance name - LPCWSTR szInstNameSrc = LPCWSTR(LPBYTE(pInstance)+pInstance->m_nInstanceNameOffset); - pInstanceDef->NameLength = (ULONG)(wcslen(szInstNameSrc)+1)*sizeof(WCHAR); - // align at 8 bytes per Q262335 - ULONG nNameAlloc = (ULONG) AtlAlignUp(pInstanceDef->NameLength, 8); - LPWSTR szInstNameDest = (LPWSTR) _AllocData(pData, nBytesAvail, pnBytesUsed, nNameAlloc); - if (szInstNameDest == NULL) - return E_OUTOFMEMORY; - - Checked::memcpy_s(szInstNameDest, nNameAlloc, szInstNameSrc, pInstanceDef->NameLength); - pInstanceDef->NameOffset = ULONG(LPBYTE(szInstNameDest) - LPBYTE(pInstanceDef)); - - pInstanceDef->ByteLength = DWORD(sizeof(PERF_INSTANCE_DEFINITION) + nNameAlloc); - } - - // create the counter block + data - LPBYTE pCounterData = _AllocData(pData, nBytesAvail, pnBytesUsed, pCategoryInfo->m_nCounterBlockSize); - if (pCounterData == NULL) - return E_OUTOFMEMORY; - - // fill in the counter block header for the data - PERF_COUNTER_BLOCK* pCounterBlock = (PERF_COUNTER_BLOCK*) pCounterData; - pCounterBlock->ByteLength = pCategoryInfo->m_nCounterBlockSize; - - // fill in the data - for (ULONG i=0; iNumCounters; i++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(i); - PERF_COUNTER_DEFINITION& def = pCounterDefs[i]; - LPBYTE pSrc = LPBYTE(pInstance)+pCounterInfo->m_nDataOffset; - LPBYTE pDest = pCounterData+def.CounterOffset; - switch (pCounterInfo->m_dwCounterType & ATLPERF_SIZE_MASK) - { - case PERF_SIZE_DWORD: - *LPDWORD(pDest) = *LPDWORD(pSrc); - break; - case PERF_SIZE_LARGE: - *(ULONGLONG*)(pDest) = *(ULONGLONG*)(pSrc); - break; - case PERF_SIZE_VARIABLE_LEN: - if ((pCounterInfo->m_dwCounterType & ATLPERF_TEXT_MASK) == PERF_TEXT_UNICODE) - { - LPCWSTR szSrc = reinterpret_cast(pSrc); - LPWSTR szDest = reinterpret_cast(pDest); - size_t nLen = __min(wcslen(szSrc), pCounterInfo->m_nMaxCounterSize-1); - Checked::wcsncpy_s(szDest, pCounterInfo->m_nMaxCounterSize-1, szSrc, nLen); - szDest[nLen] = 0; - } - else - { - LPCSTR szSrc = reinterpret_cast(pSrc); - LPSTR szDest = reinterpret_cast(pDest); - size_t nLen = __min(strlen(szSrc), pCounterInfo->m_nMaxCounterSize-1); - Checked::strncpy_s(szDest, pCounterInfo->m_nMaxCounterSize-1, szSrc, nLen); - szDest[nLen] = 0; - } - break; - } - } - - if (pInstanceDef != NULL) - pObjectType->TotalByteLength += pInstanceDef->ByteLength; - pObjectType->TotalByteLength += pCounterBlock->ByteLength; - - return S_OK; -} - -inline HRESULT CPerfMon::_CollectInstance( - CategoryInfo* pCategoryInfo, - LPBYTE& pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed, - PERF_OBJECT_TYPE* pObjectType, - PERF_COUNTER_DEFINITION* pCounterDefs - ) throw() -{ - // specialization to collect an instanceless object with no instance data - ATLASSERT(pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES); - pObjectType->NumInstances = PERF_NO_INSTANCES; - - // create the counter block + data - LPBYTE pCounterData = _AllocData(pData, nBytesAvail, pnBytesUsed, pCategoryInfo->m_nCounterBlockSize); - if (pCounterData == NULL) - return E_OUTOFMEMORY; - - // fill in the counter block header for the data - PERF_COUNTER_BLOCK* pCounterBlock = (PERF_COUNTER_BLOCK*) pCounterData; - pCounterBlock->ByteLength = pCategoryInfo->m_nCounterBlockSize; - - // fill in the data - for (ULONG i=0; iNumCounters; i++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(i); - PERF_COUNTER_DEFINITION& def = pCounterDefs[i]; - LPBYTE pDest = pCounterData+def.CounterOffset; - switch (pCounterInfo->m_dwCounterType & ATLPERF_SIZE_MASK) - { - case PERF_SIZE_DWORD: - *LPDWORD(pDest) = 0; - break; - case PERF_SIZE_LARGE: - *PULONGLONG(pDest) = 0; - break; - case PERF_SIZE_VARIABLE_LEN: - if ((pCounterInfo->m_dwCounterType & ATLPERF_TEXT_MASK) == PERF_TEXT_UNICODE) - memset(pDest, 0, pCounterInfo->m_nMaxCounterSize*sizeof(WCHAR)); - else - memset(pDest, 0, pCounterInfo->m_nMaxCounterSize*sizeof(CHAR)); - break; - } - } - - pObjectType->TotalByteLength += pCounterBlock->ByteLength; - - return S_OK; -} - -inline HRESULT CPerfMon::_CollectCategoryType( - CategoryInfo* pCategoryInfo, - LPBYTE pData, - ULONG nBytesAvail, - ULONG* pnBytesUsed - ) throw() -{ - ATLENSURE_RETURN(pCategoryInfo != NULL); - ATLASSERT(pnBytesUsed != NULL); - - // write the object definition out - PERF_OBJECT_TYPE* pObjectType = _AllocStruct(pData, nBytesAvail, pnBytesUsed, (PERF_OBJECT_TYPE*) NULL); - if (pObjectType == NULL) - return E_OUTOFMEMORY; - - Checked::memcpy_s(pObjectType, sizeof(PERF_OBJECT_TYPE), &pCategoryInfo->m_cache, sizeof(PERF_OBJECT_TYPE)); - - // save a pointer to the first counter entry and counter definition. - // we'll need them when we create the PERF_COUNTER_BLOCK data - PERF_COUNTER_DEFINITION* pCounterDefs = reinterpret_cast(pData); - - // write the counter definitions out - for (DWORD i=0; i_GetNumCounters(); i++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(i); - - PERF_COUNTER_DEFINITION* pCounterDef = _AllocStruct(pData, nBytesAvail, pnBytesUsed, (PERF_COUNTER_DEFINITION*) NULL); - if (pCounterDef == NULL) - return E_OUTOFMEMORY; - - Checked::memcpy_s(pCounterDef, sizeof(PERF_COUNTER_DEFINITION), &pCounterInfo->m_cache, sizeof(PERF_COUNTER_DEFINITION)); - - // set PerfTime and PerfFreq for PERF_ELAPSED_TIME counter. - if(pCounterDef->CounterType == PERF_ELAPSED_TIME) - { - LARGE_INTEGER currTime; - if (FALSE != QueryPerformanceCounter(&currTime)) - pObjectType->PerfTime = currTime; - else - pObjectType->PerfTime.QuadPart = 0; - QueryPerformanceFrequency (&(pObjectType->PerfFreq)); - } - } - - // search for objects of the appropriate type and write out their instance/counter data - bool bGotInstance = false; - - CAtlFileMappingBase* pCurrentBlock = _GetNextBlock(NULL); - if (pCurrentBlock != NULL) - { - CPerfObject* pInstance = _GetFirstInstance(pCurrentBlock); - while (pInstance && pInstance->m_nAllocSize != 0) - { - if (pInstance->m_dwCategoryId == pCategoryInfo->m_dwCategoryId) - { - bGotInstance = true; - HRESULT hr = _CollectInstance(pCategoryInfo, pData, nBytesAvail, - pnBytesUsed, pInstance, pObjectType, pCounterDefs); - if (FAILED(hr)) - return hr; - } - - pInstance = _GetNextInstance(pInstance); - ATLENSURE_RETURN(pInstance!= NULL); - - if (pInstance->m_nAllocSize == (ULONG) -1) - { - pCurrentBlock = _GetNextBlock(pCurrentBlock); - if (pCurrentBlock == NULL) - pInstance = NULL; - else - pInstance = _GetFirstInstance(pCurrentBlock); - } - } - } - - if (pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES && !bGotInstance) - { - // we have an instanceless (singleton) object with no data. send zeroed data - HRESULT hr = _CollectInstance(pCategoryInfo, pData, nBytesAvail, - pnBytesUsed, pObjectType, pCounterDefs); - if (FAILED(hr)) - return hr; - } - - return S_OK; -} - -inline DWORD CPerfMon::Open(LPWSTR szDeviceNames) throw() -{ - (szDeviceNames); // unused - - return 0; -} - -inline DWORD CPerfMon::Collect( - __in_z LPWSTR szValue, - __deref_inout_bcount(*pcbBytes) LPVOID* ppData, - __inout LPDWORD pcbBytes, - __inout LPDWORD pcObjectTypes - ) throw() -{ - - - - - - _ATLTRY - { - if (FAILED(_OpenAllBlocks())) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - LPBYTE pData = LPBYTE(*ppData); - ULONG nBytesLeft = *pcbBytes; - *pcbBytes = 0; - - if (_GetNumCategories() == 0) - { - // nothing is providing data. we need to load the map directly - // from the registry in order to provide category/counter data - CRegKey rkApp; - DWORD dwErr; - CString strAppKey; - - strAppKey.Format(c_szAtlPerfPerformanceKey, GetAppName()); - - dwErr = rkApp.Open(HKEY_LOCAL_MACHINE, strAppKey, KEY_READ); - if (dwErr != ERROR_SUCCESS) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - ULONG nBytes = 0; - dwErr = rkApp.QueryBinaryValue(c_szAtlPerfMap, NULL, &nBytes); - if (dwErr != ERROR_SUCCESS) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - CHeapPtr buf; - if (!buf.Allocate((nBytes+3)/4)) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - dwErr = rkApp.QueryBinaryValue(c_szAtlPerfMap, buf, &nBytes); - if (dwErr != ERROR_SUCCESS) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - if (FAILED(_LoadMap(buf))) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - } - - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - if (_WantCategoryType(szValue, pCategoryInfo->m_nNameId)) - { - ULONG nBytesUsed = 0; - HRESULT hr = _CollectCategoryType(pCategoryInfo, pData, nBytesLeft, &nBytesUsed); - if (hr == E_OUTOFMEMORY) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_MORE_DATA; - } - else if (FAILED(hr)) - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } - - (*pcObjectTypes)++; - (*pcbBytes) += nBytesUsed; - nBytesLeft -= nBytesUsed; - pData += nBytesUsed; - } - } - - *ppData = pData; - return ERROR_SUCCESS; - } - _ATLCATCHALL() - { - *pcbBytes = 0; - *pcObjectTypes = 0; - return ERROR_SUCCESS; - } -} - -inline DWORD CPerfMon::Close() throw() -{ - UnInitialize(); - return ERROR_SUCCESS; -} - -#ifdef _ATL_PERF_REGISTER -#pragma warning (push) -#pragma warning(disable : 4996) - -inline void CPerfMon::_AppendStrings( - LPTSTR& pszNew, - CAtlArray& astrStrings, - ULONG iFirstIndex - ) throw() -{ - for (UINT iString = 0; iString < astrStrings.GetCount(); iString++) - { - INT nFormatChars = _stprintf(pszNew, _T("%d"), iFirstIndex+2*iString); - pszNew += nFormatChars + 1; - _tcscpy(pszNew, astrStrings[iString]); - pszNew += astrStrings[iString].GetLength() + 1; - } -} - -#pragma warning (pop) - -inline HRESULT CPerfMon::_AppendRegStrings( - CRegKey& rkLang, - LPCTSTR szValue, - CAtlArray& astrStrings, - ULONG nNewStringSize, - ULONG iFirstIndex, - ULONG iLastIndex - ) throw() -{ - _ATLTRY - { - // load the existing strings, add the new data, and resave the strings - ULONG nCharsOrig = 0; - ULONG nCharsNew; - DWORD dwErr; - - dwErr = rkLang.QueryMultiStringValue(szValue, NULL, &nCharsOrig); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - nCharsNew = nCharsOrig + nNewStringSize; - - CString strOrig; - dwErr = rkLang.QueryMultiStringValue(szValue, CStrBuf(strOrig, nCharsOrig, CStrBuf::SET_LENGTH), &nCharsOrig); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - LPCTSTR pszOrig = strOrig; - - CString strNew; - CStrBuf szNew(strNew, nCharsNew, CStrBuf::SET_LENGTH); - LPTSTR pszNew = szNew; - - bool bNewStringsAdded = false; - - while (*pszOrig != '\0') - { - ULONG iIndex = _ttoi(pszOrig); - int nLen = (int) _tcslen(pszOrig) + 1; // get the length of the index and null - nLen += (int) _tcslen(pszOrig+nLen) + 1; // add the length of the description and null - - if (!bNewStringsAdded && iIndex >= iFirstIndex) - { - LPTSTR pszOld =pszNew; - _AppendStrings(pszNew, astrStrings, iFirstIndex); - bNewStringsAdded = true; - ULONG nCharsNewLast = nCharsNew; - nCharsNew -= ULONG(pszNew-pszOld); - if(nCharsNew > nCharsNewLast) - { - return E_FAIL; - } - } - - if (iIndex < iFirstIndex || iIndex > iLastIndex) - { - Checked::memmove_s(pszNew, nCharsNew, pszOrig, nLen*sizeof(TCHAR)); - pszNew += nLen; - } - pszOrig += nLen; - } - if (!bNewStringsAdded) - _AppendStrings(pszNew, astrStrings, iFirstIndex); - - *pszNew++ = '\0'; // must have 2 null terminators at end of multi_sz - - dwErr = rkLang.SetMultiStringValue(szValue, strNew); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - return S_OK; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } -} - -inline HRESULT CPerfMon::_RemoveRegStrings( - CRegKey& rkLang, - LPCTSTR szValue, - ULONG iFirstIndex, - ULONG iLastIndex - ) throw() -{ - _ATLTRY - { - // load the existing strings, remove the data, and resave the strings - DWORD nChars = 0; - DWORD dwErr; - - dwErr = rkLang.QueryMultiStringValue(szValue, NULL, &nChars); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - CString str; - CStrBuf szBuf(str, nChars, CStrBuf::SET_LENGTH); - DWORD nMaxLen = nChars*sizeof(TCHAR); - - dwErr = rkLang.QueryMultiStringValue(szValue, szBuf, &nChars); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - LPCTSTR pszRead = szBuf; - LPTSTR pszWrite = szBuf; - while (*pszRead != '\0') - { - ULONG iIndex = _ttoi(pszRead); - int nLen = (int) _tcslen(pszRead) + 1; // get the length of the index and null - nLen += (int) _tcslen(pszRead+nLen) + 1; // add the length of the description and null - if (iIndex < iFirstIndex || iIndex > iLastIndex) - { - Checked::memmove_s(pszWrite, nMaxLen , pszRead, nLen*sizeof(TCHAR)); - UINT nMaxLenLast = nMaxLen; - nMaxLen -= nLen*sizeof(TCHAR); - if(nMaxLen > nMaxLenLast) return E_FAIL; - pszWrite += nLen; - } - pszRead += nLen; - } - *pszWrite++ = '\0'; // must have 2 null terminators at end of multi_sz - - dwErr = rkLang.SetMultiStringValue(szValue, szBuf); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - return S_OK; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } -} - -inline HRESULT CPerfMon::_ReserveStringRange(DWORD& dwFirstCounter, DWORD& dwFirstHelp) throw() -{ - CRegKey rkApp; - CString strAppKey; - DWORD dwErr; - - _ATLTRY - { - strAppKey.Format(c_szAtlPerfPerformanceKey, GetAppName()); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - DWORD nNumStrings = _GetNumCategoriesAndCounters(); - - dwErr = rkApp.Open(HKEY_LOCAL_MACHINE, strAppKey); - if (dwErr == ERROR_SUCCESS) - { - // see if we already have a sufficient range reserved - DWORD dwFirstAppCounter; - DWORD dwFirstAppHelp; - DWORD dwLastAppCounter; - DWORD dwLastAppHelp; - - if (rkApp.QueryDWORDValue(c_szAtlPerfFirstCounter, dwFirstAppCounter) == ERROR_SUCCESS && - rkApp.QueryDWORDValue(c_szAtlPerfFirstHelp, dwFirstAppHelp) == ERROR_SUCCESS && - rkApp.QueryDWORDValue(c_szAtlPerfLastCounter, dwLastAppCounter) == ERROR_SUCCESS && - rkApp.QueryDWORDValue(c_szAtlPerfLastHelp, dwLastAppHelp) == ERROR_SUCCESS && - dwLastAppCounter-dwFirstAppCounter+2 >= 2*nNumStrings && - dwLastAppHelp-dwFirstAppHelp+2 >= 2*nNumStrings) - { - dwFirstCounter = dwFirstAppCounter; - dwFirstHelp = dwFirstAppHelp; - return S_OK; - } - } - - CRegKey rkPerfLib; - - dwErr = rkPerfLib.Open(HKEY_LOCAL_MACHINE, c_szAtlPerfPerfLibKey); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - if (!rkApp) - { - dwErr = rkApp.Create(HKEY_LOCAL_MACHINE, strAppKey); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - } - - // figure out the counter range - DWORD dwLastCounter; - DWORD dwLastHelp; - - dwErr = rkPerfLib.QueryDWORDValue(c_szAtlPerfLastCounter, dwLastCounter); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkPerfLib.QueryDWORDValue(c_szAtlPerfLastHelp, dwLastHelp); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwFirstCounter = dwLastCounter + 2; - dwFirstHelp = dwLastHelp + 2; - dwLastCounter += 2*nNumStrings; - dwLastHelp += 2*nNumStrings; - - dwErr = rkPerfLib.SetDWORDValue(c_szAtlPerfLastCounter, dwLastCounter); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkPerfLib.SetDWORDValue(c_szAtlPerfLastHelp, dwLastHelp); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - // register the used counter range - dwErr = rkApp.SetDWORDValue(c_szAtlPerfFirstCounter, dwFirstCounter); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetDWORDValue(c_szAtlPerfLastCounter, dwLastCounter); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetDWORDValue(c_szAtlPerfFirstHelp, dwFirstHelp); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetDWORDValue(c_szAtlPerfLastHelp, dwLastHelp); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - return S_OK; -} - -inline HRESULT CPerfMon::Register( - LPCTSTR szOpenFunc, - LPCTSTR szCollectFunc, - LPCTSTR szCloseFunc, - HINSTANCE hDllInstance /* == _AtlBaseModule.GetModuleInstance() */ - ) throw() -{ - ATLASSERT(szOpenFunc != NULL); - ATLASSERT(szCollectFunc != NULL); - ATLASSERT(szCloseFunc != NULL); - - CString str; - DWORD dwErr; - HRESULT hr; - hr = CreateMap(LANGIDFROMLCID(GetThreadLocale()), hDllInstance); - if (FAILED(hr)){ - hr = CreateMap(LANGIDFROMLCID(1033), hDllInstance); - if (FAILED(hr)) - return hr; - } - - CString strAppKey; - _ATLTRY - { - strAppKey.Format(c_szAtlPerfPerformanceKey, GetAppName()); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - // if we're already registered, unregister so we can redo registration - _UnregisterStrings(); - - // reserve a range for our counter and help strings - DWORD dwFirstCounter = 0; - DWORD dwFirstHelp = 0; - hr = _ReserveStringRange(dwFirstCounter, dwFirstHelp); - if (FAILED(hr)) - return hr; - - DWORD dwCurrentName = dwFirstCounter; - DWORD dwCurrentHelp = dwFirstHelp; - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - - pCategoryInfo->m_nNameId = dwCurrentName; - dwCurrentName += 2; - pCategoryInfo->m_nHelpId = dwCurrentHelp; - dwCurrentHelp += 2; - - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - - pCounterInfo->m_nNameId = dwCurrentName; - dwCurrentName += 2; - pCounterInfo->m_nHelpId = dwCurrentHelp; - dwCurrentHelp += 2; - } - } - - // register the app entry points - CRegKey rkApp; - - dwErr = rkApp.Create(HKEY_LOCAL_MACHINE, strAppKey); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - _ATLTRY - { - DWORD dwFLen = GetModuleFileName(hDllInstance, CStrBuf(str, MAX_PATH), MAX_PATH); - if( dwFLen == 0 ) - return AtlHresultFromLastError(); - else if( dwFLen == MAX_PATH ) - return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - dwErr = rkApp.SetStringValue(c_szAtlPerfLibrary, str); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetStringValue(c_szAtlPerfOpen, szOpenFunc); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetStringValue(c_szAtlPerfCollect, szCollectFunc); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetStringValue(c_szAtlPerfClose, szCloseFunc); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - dwErr = rkApp.SetStringValue(c_szAtlPerfLanguages, _T("")); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - hr = _SaveMap(); - if (FAILED(hr)) - return hr; - - // if the dll is disabled, reenable it since we just reregistered it - rkApp.DeleteValue(_T("Disable Performance Counters")); - - return S_OK; -} - -inline HRESULT CPerfMon::RegisterStrings( - LANGID language /* = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL) */, - HINSTANCE hResInstance /* = _AtlBaseModule.GetResourceInstance() */ - ) throw() -{ - _ATLTRY - { - CString str; - DWORD dwErr; - HRESULT hr; - CRegKey rkLang; - CRegKey rkApp; - - LANGID wPrimaryLanguage = (LANGID) PRIMARYLANGID(language); - - if (language == MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)) - { - //First try current thread locale - language = LANGIDFROMLCID(GetThreadLocale()); - wPrimaryLanguage = (LANGID) PRIMARYLANGID(language); - } - str.Format(c_szAtlPerfPerfLibLangKey, wPrimaryLanguage); - dwErr = rkLang.Open(HKEY_LOCAL_MACHINE, str); - if (dwErr == ERROR_FILE_NOT_FOUND) - { - // failed using current thread, so try default system lcid - language = GetSystemDefaultLangID(); - wPrimaryLanguage = (LANGID) PRIMARYLANGID(language); - str.Format(c_szAtlPerfPerfLibLangKey, wPrimaryLanguage); - dwErr = rkLang.Open(HKEY_LOCAL_MACHINE, str); - } - if (dwErr == ERROR_FILE_NOT_FOUND) - return S_FALSE; // the language isn't installed on the system - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - hr = CreateMap(language, hResInstance); - if (FAILED(hr)) - return hr; - - // load list of language strings already registered - str.Format(c_szAtlPerfPerformanceKey, GetAppName()); - dwErr = rkApp.Open(HKEY_LOCAL_MACHINE, str); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - DWORD dwLangsLen = 0; - CString strLangs; - - dwErr = rkApp.QueryStringValue(c_szAtlPerfLanguages, NULL, &dwLangsLen); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - - ULONG nLangsBuffSize = dwLangsLen+4; - CStrBuf szLangs(strLangs, nLangsBuffSize, CStrBuf::SET_LENGTH); // reserve room for adding new language - dwErr = rkApp.QueryStringValue(c_szAtlPerfLanguages, szLangs, &dwLangsLen); - if (dwErr != ERROR_SUCCESS) - return AtlHresultFromWin32(dwErr); - dwLangsLen--; // don't count '\0' - - // see if this language has already been registered and if so, return - TCHAR szNewLang[5]; - _sntprintf_s(szNewLang, _countof(szNewLang), _countof(szNewLang)-1, _T("%3.3x "), wPrimaryLanguage); - if (strLangs.Find(szNewLang) != -1) - return S_OK; - - // load the strings we want to append and figure out how much extra space is needed for them - // (including up to 5-digit index values and 2 null separators) - CAtlArray astrCounters; - CAtlArray astrHelp; - ULONG nNewCounterSize = 0; - ULONG nNewHelpSize = 0; - - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - - astrCounters.Add(pCategoryInfo->m_strName); - astrHelp.Add(pCategoryInfo->m_strHelp); - - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo* pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - - astrCounters.Add(pCounterInfo->m_strName); - astrHelp.Add(pCounterInfo->m_strHelp); - } - } - - for (size_t i=0; i* pLangs = reinterpret_cast*>(lParam); - _ATLTRY - { - pLangs->Add(wIDLanguage); - } - _ATLCATCHALL() - { - return FALSE; - } - - return TRUE; -} - -inline HRESULT CPerfMon::RegisterAllStrings( - HINSTANCE hResInstance /* = NULL */ - ) throw() -{ - HRESULT hrReturn = S_FALSE; - HRESULT hr; - - UINT nRes; - hr = CreateMap(0, hResInstance, &nRes); - if (FAILED(hr)) - return hr; - - if (nRes == 0) - return RegisterStrings(0, hResInstance); - - if (hResInstance != NULL) - return _RegisterAllStrings(nRes, hResInstance); - - for (int i = 0; hResInstance = _AtlBaseModule.GetHInstanceAt(i), hResInstance != NULL; i++) - { - hr = _RegisterAllStrings(nRes, hResInstance); - if (FAILED(hr)) - return hr; - if (hr == S_OK) - hrReturn = S_OK; - } - - return hrReturn; -} - -inline HRESULT CPerfMon::_RegisterAllStrings( - UINT nRes, - HINSTANCE hResInstance - ) throw() -{ - HRESULT hrReturn = S_FALSE; - HRESULT hr; - - CAtlArray langs; - if (!EnumResourceLanguages(hResInstance, RT_STRING, MAKEINTRESOURCE((nRes>>4)+1), EnumResLangProc, reinterpret_cast(&langs))) - return AtlHresultFromLastError(); - - for (UINT i=0; i(self.GetPSID()), - NULL, - const_cast(dacl.GetPACL()), - NULL) != ERROR_SUCCESS) - return E_FAIL; - } - - // now set up the dacl for creating shared memory segments and store it - dacl.AddAllowedAce(Sids::Interactive(), GENERIC_READ); - m_sd.SetDacl(dacl); - - // create a shared memory area to share data between the app being measured and the client doing the measuring - { - CMutexLock lock(tempLock); - - BOOL bExisted = FALSE; - - CAtlFileMappingBase* pMem; - pMem = _AllocNewBlock(NULL, &bExisted); - if (pMem == NULL) - return E_OUTOFMEMORY; - - if (!bExisted) - { - // copy the map from the registry to the shared memory - CRegKey rkApp; - DWORD dwErr; - CString strAppKey; - - strAppKey.Format(c_szAtlPerfPerformanceKey, GetAppName()); - - dwErr = rkApp.Open(HKEY_LOCAL_MACHINE, strAppKey, KEY_READ); - if (dwErr != ERROR_SUCCESS) - { - m_aMem.RemoveAll(); - return AtlHresultFromWin32(dwErr); - } - - ULONG nBytes = m_nAllocSize; - dwErr = rkApp.QueryBinaryValue(c_szAtlPerfMap, pMem->GetData(), &nBytes); - if (dwErr != ERROR_SUCCESS) - { - m_aMem.RemoveAll(); - return AtlHresultFromWin32(dwErr); - } - } - - hr = _LoadMap(LPDWORD(pMem->GetData())); - if (FAILED(hr)) - { - m_aMem.RemoveAll(); - return hr; - } - - m_nSchemaSize = *LPDWORD(pMem->GetData()); - m_nHeaderSize = m_nSchemaSize + sizeof(DWORD); - m_nHeaderSize = AtlAlignUp(m_nHeaderSize,16); - } - - m_lock.Attach(tempLock.Detach()); - } - _ATLCATCHALL() - { - m_aMem.RemoveAll(); - return E_OUTOFMEMORY; - } - - return S_OK; -} - -inline void CPerfMon::UnInitialize() throw() -{ - if (m_lock.m_h != NULL) - m_lock.Close(); - m_aMem.RemoveAll(); - ClearMap(); -} - -inline HRESULT CPerfMon::_CreateInstance( - DWORD dwCategoryId, - DWORD dwInstance, - LPCWSTR szInstanceName, - CPerfObject** ppInstance, - bool bByName - ) throw() -{ - CPerfObject* pEmptyBlock = NULL; - - if (ppInstance == NULL) - return E_POINTER; - - CAtlFileMappingBase* pCurrentBlock = _GetNextBlock(NULL); - if (pCurrentBlock == NULL || pCurrentBlock->GetData() == NULL || m_lock.m_h == NULL) - return E_UNEXPECTED; // Initialize must succeed before calling CreateInstance - - *ppInstance = NULL; - - CategoryInfo* pCategoryInfo = _FindCategoryInfo(dwCategoryId); - if (pCategoryInfo == NULL) - return E_INVALIDARG; - if (szInstanceName == NULL && bByName) - return E_INVALIDARG; - if (pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES && - (dwInstance != 0 || szInstanceName != NULL)) - return E_INVALIDARG; - - CPerfLock lock(this); - if (FAILED(lock.GetStatus())) - return lock.GetStatus(); - - CPerfObject* pInstance = _GetFirstInstance(pCurrentBlock); - ULONG nMaxInstance = 0; - ULONG nUsedSpace = 0; - - // walk all of the existing objects trying to find one that matches the request - while (pInstance->m_nAllocSize != 0) - { - nUsedSpace += pInstance->m_nAllocSize; - - if (pInstance->m_dwCategoryId == dwCategoryId) - { - nMaxInstance = __max(nMaxInstance, pInstance->m_dwInstance); - - // check to see if we've found the one the caller wants - if (!bByName && pInstance->m_dwInstance == dwInstance && - (pCategoryInfo->m_nInstanceLess == PERF_NO_INSTANCES || dwInstance != 0)) - { - *ppInstance = pInstance; - pInstance->m_nRefCount++; - return S_OK; - } - if (bByName) - { - LPWSTR szInstName = (LPWSTR(LPBYTE(pInstance)+pInstance->m_nInstanceNameOffset)); - if (wcsncmp(szInstName, szInstanceName, pCategoryInfo->m_nMaxInstanceNameLen-1) == 0) - { - *ppInstance = pInstance; - pInstance->m_nRefCount++; - return S_OK; - } - } - } - - if (pInstance->m_nAllocSize == pCategoryInfo->m_nAllocSize && pInstance->m_nRefCount == 0) - pEmptyBlock = pInstance; - - pInstance = _GetNextInstance(pInstance); - ATLENSURE_RETURN(pInstance!= NULL); - - if (pInstance->m_nAllocSize == 0 && - m_nHeaderSize + nUsedSpace + pCategoryInfo->m_nAllocSize + sizeof(CPerfObject) > m_nAllocSize) - { - // we've reached the end of the block and have no room to allocate an object of this - // type. cap the block with a sentinel - pInstance->m_nAllocSize = (ULONG) -1; - } - - // check for an end-of-shared-mem sentinel - if (pInstance->m_nAllocSize == (ULONG) -1) - { - nUsedSpace = 0; - CAtlFileMappingBase* pNextBlock = _GetNextBlock(pCurrentBlock); - if (pNextBlock == NULL) - { - // we've reached the last block of shared mem. - // the instance hasn't been found, so either use a - // previously freed instance block (pEmptyBlock) or allocate a new - // shared mem block to hold the new instance - if (pEmptyBlock == NULL) - { - pNextBlock = _AllocNewBlock(pCurrentBlock); - if (pNextBlock == NULL) - return E_OUTOFMEMORY; - } - else - break; - } - pCurrentBlock = pNextBlock; - pInstance = _GetFirstInstance(pCurrentBlock); - } - } - - // allocate a new object - if (pEmptyBlock != NULL) - pInstance = pEmptyBlock; - else - pInstance->m_nAllocSize = pCategoryInfo->m_nAllocSize; - - if (dwInstance == 0 && pCategoryInfo->m_nInstanceLess != PERF_NO_INSTANCES) - pInstance->m_dwInstance = nMaxInstance + 1; - else - pInstance->m_dwInstance = dwInstance; - - pInstance->m_nRefCount = 1; - - // copy the instance name, truncate if necessary - if (pCategoryInfo->m_nInstanceLess != PERF_NO_INSTANCES) - { - ULONG nNameLen = (ULONG)__min(wcslen(szInstanceName), pCategoryInfo->m_nMaxInstanceNameLen-1); - ULONG nNameBytes = (nNameLen+1) * sizeof(WCHAR); - pInstance->m_nInstanceNameOffset = pInstance->m_nAllocSize-nNameBytes; - Checked::memcpy_s(LPBYTE(pInstance)+pInstance->m_nInstanceNameOffset, pInstance->m_nAllocSize-pInstance->m_nInstanceNameOffset, szInstanceName, nNameBytes); - LPWSTR(LPBYTE(pInstance)+pInstance->m_nInstanceNameOffset)[nNameLen] = 0; - } - - // copy the CategoryId last: it won't be collected until this is set - pInstance->m_dwCategoryId = pCategoryInfo->m_dwCategoryId; - - *ppInstance = pInstance; - - return S_OK; -} - -inline HRESULT CPerfMon::CreateInstance( - DWORD dwCategoryId, - DWORD dwInstance, - LPCWSTR szInstanceName, - CPerfObject** ppInstance - ) throw() -{ - return _CreateInstance(dwCategoryId, dwInstance, szInstanceName, ppInstance, false); -} - -inline HRESULT CPerfMon::CreateInstanceByName( - DWORD dwCategoryId, - LPCWSTR szInstanceName, - CPerfObject** ppInstance - ) throw() -{ - return _CreateInstance(dwCategoryId, 0, szInstanceName, ppInstance, true); -} - -inline HRESULT CPerfMon::ReleaseInstance(CPerfObject* pInstance) throw() -{ - ATLASSERT(pInstance != NULL); - if (pInstance == NULL) - return E_INVALIDARG; - - CPerfLock lock(this); - if (FAILED(lock.GetStatus())) - return lock.GetStatus(); - - if (--pInstance->m_nRefCount == 0) - { - pInstance->m_dwInstance = 0; - pInstance->m_dwCategoryId = 0; - } - - return S_OK; -} - -inline HRESULT CPerfMon::LockPerf(DWORD dwTimeout /* == INFINITE */) throw() -{ - if (m_lock.m_h == NULL) - return E_UNEXPECTED; - - DWORD dwRes = WaitForSingleObject(m_lock.m_h, dwTimeout); - if (dwRes == WAIT_ABANDONED || dwRes == WAIT_OBJECT_0) - return S_OK; - if (dwRes == WAIT_TIMEOUT) - return HRESULT_FROM_WIN32(ERROR_TIMEOUT); - return AtlHresultFromLastError(); -} - -inline void CPerfMon::UnlockPerf() throw() -{ - m_lock.Release(); -} - -// map building routines -inline HRESULT CPerfMon::AddCategoryDefinition( - DWORD dwCategoryId, - LPCTSTR szCategoryName, - LPCTSTR szHelpString, - DWORD dwDetailLevel, - INT nDefaultCounter, - BOOL bInstanceLess, - UINT nStructSize, - UINT nMaxInstanceNameLen) throw() -{ - // must have one and only one of these - ATLASSERT(!bInstanceLess ^ !nMaxInstanceNameLen); - - // get the things that can fail out of the way first - CString strName; - CString strHelp; - _ATLTRY - { - strName = szCategoryName; - strHelp = szHelpString; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - if (!m_categories.SetCount(m_categories.GetCount()+1)) - { - return E_OUTOFMEMORY; - } - - // category has been added, set the data - CategoryInfo* pCategoryInfo = _GetCategoryInfo(_GetNumCategories()-1); - - pCategoryInfo->m_dwCategoryId = dwCategoryId; - pCategoryInfo->m_dwDetailLevel = dwDetailLevel; - pCategoryInfo->m_nDefaultCounter = nDefaultCounter; - pCategoryInfo->m_nInstanceLess = bInstanceLess ? PERF_NO_INSTANCES : 0; - pCategoryInfo->m_nStructSize = nStructSize; - pCategoryInfo->m_nMaxInstanceNameLen = nMaxInstanceNameLen; - pCategoryInfo->m_nAllocSize = nStructSize + nMaxInstanceNameLen*sizeof(WCHAR); - pCategoryInfo->m_strName = strName; - pCategoryInfo->m_strHelp = strHelp; - pCategoryInfo->m_nNameId = 0; - pCategoryInfo->m_nHelpId = 0; - - return S_OK; -} - -inline HRESULT CPerfMon::AddCounterDefinition( - DWORD dwCounterId, - LPCTSTR szCounterName, - LPCTSTR szHelpString, - DWORD dwDetailLevel, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw() -{ - // must add category BEFORE adding counter! - ATLASSERT(_GetNumCategories() > 0); - - CounterInfo counter; - - counter.m_dwCounterId = dwCounterId; - _ATLTRY - { - counter.m_strName = szCounterName; - counter.m_strHelp = szHelpString; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - counter.m_dwDetailLevel = dwDetailLevel; - counter.m_dwCounterType = dwCounterType; - counter.m_nDefaultScale = nDefaultScale; - counter.m_nMaxCounterSize = nMaxCounterSize; - counter.m_nDataOffset = nOffset; - - counter.m_nNameId = 0; - counter.m_nHelpId = 0; - - // add the counter to the category - CategoryInfo* pCategoryInfo = _GetCategoryInfo(_GetNumCategories()-1); - _ATLTRY - { - pCategoryInfo->m_counters.Add(counter); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - if (counter.m_nMaxCounterSize > 0) - { - ATLASSERT(counter.m_dwCounterType & PERF_TYPE_TEXT); - pCategoryInfo->m_nAllocSize += counter.m_nMaxCounterSize * sizeof(WCHAR); - } - - return S_OK; -} - -inline HRESULT CPerfMon::RegisterCategory( - WORD wLanguage, - HINSTANCE hResInstance, - UINT* pSampleRes, - DWORD dwCategoryId, - UINT nNameString, - UINT nHelpString, - DWORD dwDetail, - BOOL bInstanceless, - UINT nStructSize, - UINT nMaxInstanceNameLen, - INT nDefaultCounter) throw() -{ - if (pSampleRes) - *pSampleRes = nNameString; - - CString strName; - CString strHelp; - - _ATLTRY - { - - if (!strName.LoadString(hResInstance, nNameString, wLanguage) || - !strHelp.LoadString(hResInstance, nHelpString, wLanguage)) - { - return E_FAIL; - } - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return RegisterCategory( - wLanguage, - hResInstance, - pSampleRes, - dwCategoryId, - strName, - strHelp, - dwDetail, - bInstanceless, - nStructSize, - nMaxInstanceNameLen, - nDefaultCounter); -} - -inline HRESULT CPerfMon::RegisterCategory( - WORD /* wLanguage */, - HINSTANCE /* hResInstance */, - UINT* /* pSampleRes */, - DWORD dwCategoryId, - LPCTSTR szNameString, - LPCTSTR szHelpString, - DWORD dwDetail, - BOOL bInstanceless, - UINT nStructSize, - UINT nMaxInstanceNameLen, - INT nDefaultCounter) throw() -{ - return AddCategoryDefinition( - dwCategoryId, - szNameString, - szHelpString, - dwDetail, - nDefaultCounter, - bInstanceless, - nStructSize, - nMaxInstanceNameLen); -} - -inline HRESULT CPerfMon::RegisterCounter( - WORD wLanguage, - HINSTANCE hResInstance, - DWORD dwCounterId, - UINT nNameString, - UINT nHelpString, - DWORD dwDetail, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw() -{ - CString strName; - CString strHelp; - - _ATLTRY - { - - if (!strName.LoadString(hResInstance, nNameString, wLanguage) || - !strHelp.LoadString(hResInstance, nHelpString, wLanguage)) - { - return E_FAIL; - } - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return RegisterCounter( - wLanguage, - hResInstance, - dwCounterId, - strName, - strHelp, - dwDetail, - dwCounterType, - nMaxCounterSize, - nOffset, - nDefaultScale); -} - -inline HRESULT CPerfMon::RegisterCounter( - WORD /* wLanguage */, - HINSTANCE /* hResInstance */, - DWORD dwCounterId, - LPCTSTR szNameString, - LPCTSTR szHelpString, - DWORD dwDetail, - DWORD dwCounterType, - ULONG nMaxCounterSize, - UINT nOffset, - INT nDefaultScale) throw() -{ - return AddCounterDefinition( - dwCounterId, - szNameString, - szHelpString, - dwDetail, - dwCounterType, - nMaxCounterSize, - nOffset, - nDefaultScale); -} - -inline void CPerfMon::ClearMap() throw() -{ - m_categories.RemoveAll(); -} - -#ifndef _ATL_PERF_NOXML - -ATL_NOINLINE inline HRESULT CPerfMon::PersistToXML(IStream *pStream, BOOL bFirst/*=TRUE*/, BOOL bLast/*=TRUE*/) throw(...) -{ - ATLASSERT(pStream != NULL); - if (pStream == NULL) - return E_INVALIDARG; - - CPerfLock lock(this); - if (FAILED(lock.GetStatus())) - return ERROR_SUCCESS; - - CStringA strXML; - HRESULT hr = S_OK; - ULONG nLen = 0; - - if (bFirst) - { - strXML = "\r\n\r\n"; - hr = pStream->Write(strXML, strXML.GetLength(), &nLen); - if (hr != S_OK) - return hr; - } - - strXML.Format("\t\r\n", CT2CA(GetAppName())); - hr = pStream->Write(strXML, strXML.GetLength(), &nLen); - - for (UINT i=0; i<_GetNumCategories(); i++) - { - CategoryInfo* pCategoryInfo = _GetCategoryInfo(i); - - CAtlFileMappingBase *pCurrentBlock = _GetNextBlock(NULL); - CPerfObject *pInstance = _GetFirstInstance(pCurrentBlock); - - strXML.Format("\t\t\r\n", - pCategoryInfo->m_dwCategoryId, pCategoryInfo->m_nNameId, pCategoryInfo->m_nHelpId); - - hr = pStream->Write(strXML, strXML.GetLength(), &nLen); - if (hr != S_OK) - return E_FAIL; - - while (pInstance && pInstance->m_nAllocSize) - { - if (pInstance->m_dwCategoryId == pCategoryInfo->m_dwCategoryId) - { - if (pCategoryInfo->m_nInstanceLess != PERF_NO_INSTANCES) - { - // handle the instance name - LPCWSTR wszInstNameSrc = LPCWSTR(LPBYTE(pInstance)+pInstance->m_nInstanceNameOffset); - int nInstLen = (int) wcslen(wszInstNameSrc); - - // convert to UTF8 - int nLength = AtlUnicodeToUTF8(wszInstNameSrc, nInstLen, NULL, 0); - CHeapPtr szUTF8; - if ((nLength < 0) || (nLength+1\r\n", szUTF8, pInstance->m_dwInstance); - hr = pStream->Write(strXML, strXML.GetLength(), &nLen); - if (hr != S_OK) - return hr; - } - - for (UINT j=0; j_GetNumCounters(); j++) - { - CounterInfo *pCounterInfo = pCategoryInfo->_GetCounterInfo(j); - switch (pCounterInfo->m_dwCounterType & ATLPERF_SIZE_MASK) - { - case PERF_SIZE_DWORD: - { - strXML.Format("\t\t\t\t\r\n", - *LPDWORD(LPBYTE(pInstance)+pCounterInfo->m_nDataOffset), - pCounterInfo->m_nDataOffset); - break; - } - case PERF_SIZE_LARGE: - { - strXML.Format("\t\t\t\t\r\n", - *PULONGLONG(LPBYTE(pInstance)+pCounterInfo->m_nDataOffset), - pCounterInfo->m_nDataOffset); - break; - } - case PERF_SIZE_VARIABLE_LEN: - { - CHeapPtr szUTF8; - LPBYTE pSrc = LPBYTE(pInstance)+pCounterInfo->m_nDataOffset; - if ((pCounterInfo->m_dwCounterType & ATLPERF_TEXT_MASK) == PERF_TEXT_UNICODE) - { - ULONG nTextLen = (ULONG)wcslen(LPCWSTR(pSrc)); - // convert to UTF8 - nLen = AtlUnicodeToUTF8(LPCWSTR(pSrc), nTextLen, NULL, 0); - if (!szUTF8.Allocate(nLen+1)) - return E_OUTOFMEMORY; - - nLen = AtlUnicodeToUTF8(LPCWSTR(pSrc), nTextLen, szUTF8, nLen); - szUTF8[nLen] = '\0'; - strXML.Format("\t\t\t\t\r\n", - szUTF8, - pCounterInfo->m_nDataOffset); - } - else - { - ULONG nTextLen = (ULONG)strlen(LPCSTR(pSrc)); - if (!szUTF8.Allocate(nTextLen+1)) - return E_OUTOFMEMORY; - Checked::strcpy_s(szUTF8, nTextLen+1, LPCSTR(pSrc)); - strXML.Format("\t\t\t\t\r\n", - szUTF8, - pCounterInfo->m_nDataOffset); - } - break; - } - default: - // error: - return E_FAIL; - } - hr = pStream->Write(strXML, strXML.GetLength(), &nLen); - if (hr != S_OK) - return hr; - } - - if (pCategoryInfo->m_nInstanceLess != PERF_NO_INSTANCES) - { - hr = pStream->Write("\t\t\t\r\n", sizeof("\t\t\t\r\n")-1, &nLen); - if (hr != S_OK) - return hr; - } - } - - pInstance = _GetNextInstance(pInstance); - ATLENSURE_RETURN(pInstance!= NULL); - - if (pInstance->m_nAllocSize == (ULONG)-1) - { - pCurrentBlock = _GetNextBlock(pCurrentBlock); - if (pCurrentBlock == NULL) - pInstance = NULL; - else - pInstance = _GetFirstInstance(pCurrentBlock); - } - } - - hr = pStream->Write("\t\t\r\n", sizeof("\t\t\r\n")-1, &nLen); - if (hr != S_OK) - return hr; - } - - hr = pStream->Write("\t\r\n", sizeof("\t\r\n")-1, &nLen); - if (hr != S_OK) - return hr; - - if (hr == S_OK && bLast) - hr = pStream->Write("", sizeof("")-1, &nLen); - - return hr; -} - -// This function is very lenient with inappropriate XML -ATL_NOINLINE inline HRESULT CPerfMon::LoadFromXML(IStream *pStream) throw(...) -{ - ATLASSERT(pStream != NULL); - if (pStream == NULL) - return E_INVALIDARG; - - // Get a lock - CPerfLock lock(this); - if (FAILED(lock.GetStatus())) - return ERROR_SUCCESS; - - CComPtr spdoc; - - // load the xml - HRESULT hr = CoCreateInstance(__uuidof(DOMDocument), NULL, CLSCTX_INPROC, __uuidof(IXMLDOMDocument), (void **) &spdoc); - if (FAILED(hr)) - { - return hr; - } - - spdoc->put_async(VARIANT_FALSE); - - CComPtr spSI; - hr = spdoc->QueryInterface(&spSI); - if (hr != S_OK) - return hr; - hr = spSI->Load(pStream); - if (hr != S_OK) - return hr; - - // validate that it is a perfPersist stream - CComPtr spRoot; - - hr = spdoc->get_documentElement(&spRoot); - if (hr != S_OK) - return hr; - - CComBSTR bstrName; - hr = spRoot->get_baseName(&bstrName); - if (wcscmp(bstrName, L"perfPersist")) - return S_FALSE; - - // find the appropriate perfmon node - CComPtr spChild; - hr = spRoot->get_firstChild(&spChild); - while (hr == S_OK) - { - bstrName.Empty(); - hr = spChild->get_baseName(&bstrName); - if (hr == S_OK) - { - if (!wcscmp(bstrName, L"perfmon")) - { - bstrName.Empty(); - hr = _GetAttribute(spChild, L"name", &bstrName); - if (hr == S_OK) - { - if (!_tcscmp(CW2CT(bstrName), GetAppName())) - break; - } - } - } - - CComPtr spNext; - hr = spChild->get_nextSibling(&spNext); - spChild.Attach(spNext.Detach()); - } - - // there is no perfmon node in the XML for the current CPerfMon class - if (hr != S_OK) - return S_FALSE; - - CComPtr spPerfRoot; - spPerfRoot.Attach(spChild.Detach()); - - // iterate over the objects in the perfmon subtree - // this is the loop that does the real work - hr = spPerfRoot->get_firstChild(&spChild); - while (hr == S_OK) - { - // see if it's a perfObject - bstrName.Empty(); - hr = spChild->get_baseName(&bstrName); - if (hr != S_OK || wcscmp(bstrName, L"perfObject")) - return S_FALSE; - - // get the perfid - bstrName.Empty(); - hr = _GetAttribute(spChild, L"perfid", &bstrName); - DWORD dwPerfId = _wtoi(bstrName); - - // iterate over children - CComPtr spInstChild; - hr = spChild->get_firstChild(&spInstChild); - while (hr == S_OK) - { - // see if it's a instance - bstrName.Empty(); - hr = spInstChild->get_baseName(&bstrName); - if (hr != S_OK || wcscmp(bstrName, L"instance")) - return S_FALSE; - - // get the instance name - bstrName.Empty(); - hr = _GetAttribute(spInstChild, L"name", &bstrName); - if (hr != S_OK) - return S_FALSE; - - // get the instance id - bstrName.Empty(); - hr = _GetAttribute(spChild, L"id", &bstrName); - if (hr != S_OK) - return S_FALSE; - DWORD dwInstance = _wtoi(bstrName); - - // create the instance - CPerfObject *pInstance = NULL; - hr = CreateInstance(dwPerfId, dwInstance++, bstrName, &pInstance); - if (hr != S_OK) - return S_FALSE; - - // iterate over the counters and set the data - CComPtr spCntrChild; - hr = spInstChild->get_firstChild(&spCntrChild); - while (hr == S_OK) - { - // get the base name - bstrName.Empty(); - hr = spCntrChild->get_baseName(&bstrName); - if (hr != S_OK || wcscmp(bstrName, L"counter")) - return S_FALSE; - - // get the type - bstrName.Empty(); - hr = _GetAttribute(spCntrChild, L"type", &bstrName); - if (hr != S_OK) - return S_FALSE; - - DWORD dwType; - if (!wcscmp(bstrName, L"perf_size_dword")) - dwType = PERF_SIZE_DWORD; - else if (!wcscmp(bstrName, L"perf_size_large")) - dwType = PERF_SIZE_LARGE; - else if (!wcscmp(bstrName, L"perf_size_variable_len_ansi")) - dwType = PERF_SIZE_VARIABLE_LEN; - else if (!wcscmp(bstrName, L"perf_size_variable_len_unicode")) - dwType = PERF_SIZE_VARIABLE_LEN | PERF_TEXT_UNICODE; - else - return S_FALSE; - - // get the value - bstrName.Empty(); - hr = _GetAttribute(spCntrChild, L"value", &bstrName); - if (hr != S_OK) - return S_FALSE; - - CComBSTR bstrOffset; - hr = _GetAttribute(spCntrChild, L"offset", &bstrOffset); - if (hr != S_OK) - return S_FALSE; - - WCHAR *pStop = NULL; - DWORD dwOffset = wcstoul(bstrOffset, &pStop, 10); - - if (dwType == PERF_SIZE_DWORD) // add it as a DWORD - { - DWORD dwVal = wcstoul(bstrName, &pStop, 10); - *LPDWORD(LPBYTE(pInstance)+dwOffset) = dwVal; - } - else if (dwType == PERF_SIZE_LARGE) // add it is a ULONGLONG - { - ULONGLONG qwVal = _wcstoui64(bstrName, &pStop, 10); - *PULONGLONG(LPBYTE(pInstance)+dwOffset) = qwVal; - } - else if (dwType == PERF_SIZE_VARIABLE_LEN) // add it as an ansi string - { - AtlW2AHelper(LPSTR(LPBYTE(pInstance)+dwOffset), bstrName, bstrName.Length(), ATL::_AtlGetConversionACP()); - } - else // add it as a unicode string - { - Checked::memcpy_s(LPBYTE(pInstance)+dwOffset, pInstance->m_nAllocSize-dwOffset, bstrName, bstrName.Length()*sizeof(WCHAR)); - } - - CComPtr spCntrNext; - hr = spCntrChild->get_nextSibling(&spCntrNext); - spCntrChild.Attach(spCntrNext.Detach()); - } - - CComPtr spInstNext; - hr = spInstChild->get_nextSibling(&spInstNext); - spInstChild.Attach(spInstNext.Detach()); - } - - CComPtr spNext; - hr = spChild->get_nextSibling(&spNext); - spChild.Attach(spNext.Detach()); - } - - return S_OK; -} - -// a little utility function to retrieve a named attribute from a node -ATL_NOINLINE inline HRESULT CPerfMon::_GetAttribute(IXMLDOMNode *pNode, LPCWSTR szAttrName, BSTR *pbstrVal) throw() -{ - ATLENSURE_RETURN(pNode != NULL); - ATLASSERT(szAttrName != NULL); - ATLENSURE_RETURN(pbstrVal != NULL); - - *pbstrVal = NULL; - CComPtr spAttrs; - - HRESULT hr = pNode->get_attributes(&spAttrs); - if (hr != S_OK) - return hr; - - CComPtr spAttr; - - hr = spAttrs->getNamedItem((BSTR) szAttrName, &spAttr); - if (hr != S_OK) - return hr; - - CComVariant varVal; - hr = spAttr->get_nodeValue(&varVal); - if (hr != S_OK) - return hr; - - hr = varVal.ChangeType(VT_BSTR); - if (hr != S_OK) - return hr; - - *pbstrVal = varVal.bstrVal; - varVal.vt = VT_EMPTY; - - return S_OK; -} - -#endif // _ATL_PERF_NOXML - -#if defined(_ATL_PERF_REGISTER) & !defined(_ATL_PERF_NOEXPORT) - -ATL_NOINLINE inline HRESULT RegisterPerfMon(HINSTANCE hDllInstance /* = _AtlBaseModule.GetModuleInstance() */) throw() -{ - CPerfMon **ppPerf = &__pperfA; - HRESULT hr = S_OK; - while (ppPerf != &__pperfZ) - { - if (*ppPerf != NULL) - { - hr = (*ppPerf)->Register(_T( ATLPERF_FUNCID_OPEN ), _T( ATLPERF_FUNCID_COLLECT ), _T( ATLPERF_FUNCID_CLOSE ), hDllInstance); - if (FAILED(hr)) - return hr; - hr = (*ppPerf)->RegisterAllStrings(hDllInstance); - if (FAILED(hr)) - return hr; - } - ppPerf++; - } - return S_OK; -} - -ATL_NOINLINE inline HRESULT UnregisterPerfMon() throw() -{ - CPerfMon **ppPerf = &__pperfA; - HRESULT hr = S_OK; - while (ppPerf != &__pperfZ) - { - if (*ppPerf != NULL) - { - hr = (*ppPerf)->Unregister(); - if (FAILED(hr)) - return hr; - } - ppPerf++; - } - return S_OK; -} - -extern "C" ATL_NOINLINE inline DWORD __declspec(dllexport) WINAPI OpenPerfMon(LPWSTR lpDeviceNames) throw() -{ - CPerfMon **ppPerf = &__pperfA; - DWORD dwErr = 0; - while (ppPerf != &__pperfZ) - { - if (*ppPerf != NULL) - { - dwErr = (*ppPerf)->Open(lpDeviceNames); - if (dwErr != 0) - return dwErr; - } - ppPerf++; - } - return 0; -} - -extern "C" ATL_NOINLINE inline DWORD __declspec(dllexport) WINAPI CollectPerfMon(LPWSTR lpwszValue, LPVOID* lppData, - LPDWORD lpcbBytes, LPDWORD lpcObjectTypes) throw() -{ - DWORD dwOrigBytes = *lpcbBytes; - DWORD dwBytesRemaining = *lpcbBytes; - CPerfMon **ppPerf = &__pperfA; - DWORD dwErr = 0; - while (ppPerf != &__pperfZ) - { - if (*ppPerf != NULL) - { - dwErr = (*ppPerf)->Collect(lpwszValue, lppData, lpcbBytes, lpcObjectTypes); - if (dwErr != 0) - return dwErr; - dwBytesRemaining -= *lpcbBytes; - *lpcbBytes = dwBytesRemaining; - } - ppPerf++; - } - *lpcbBytes = dwOrigBytes - dwBytesRemaining; - return 0; -} - -extern "C" ATL_NOINLINE inline DWORD __declspec(dllexport) WINAPI ClosePerfMon() throw() -{ - CPerfMon **ppPerf = &__pperfA; - while (ppPerf != &__pperfZ) - { - if (*ppPerf != NULL) - { - (*ppPerf)->Close(); - } - ppPerf++; - } - return 0; -} - -#endif // defined(_ATL_PERF_REGISTER) & !defined(_ATL_PERF_NOEXPORT) - -} // namespace ATL - -#pragma warning(pop) - -#endif // __ATLPERF_INL__ diff --git a/ATL90/include/atlrx.h b/ATL90/include/atlrx.h deleted file mode 100644 index 1f2b07a..0000000 --- a/ATL90/include/atlrx.h +++ /dev/null @@ -1,2013 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLRX_H__ -#define __ATLRX_H__ - -#pragma once - -#include -#include -#include - -#ifndef ATL_REGEXP_MIN_STACK -#define ATL_REGEXP_MIN_STACK 256 -#endif - -/* - Regular Expression Grammar - - R - top level grammar rule - RE - regular expression - AltE - Alternative expression - E - expression - SE - simple expression - - R -> RE - '^'RE (matches begining of string) - - RE -> AltE RE - AltE - - - AltE -> E - E '|' AltE - E -> SE (RepeatOp '?'?)? - SE -> Arg - Group - CharClass - '\'Abbrev (see below) - '\'EscapedChar (any character including reserved symbols) - '\'Digit+ (Arg back reference) - '!' (not) - '.' (any char) - '$' (end of input) - Symbol (any non-reserved character) - Arg -> '{'RE'}' - Group -> '('RE')' - CharClass -> '[' '^'? CharSet ']' - CharSet -> CharItem+ - CharItem -> Char('-'Char)? - RepeatOp -> '*' - '+' - '?' - Abbrev -> Abbreviation defined in CAtlRECharTraits - Abbrev Expansion Meaning - a ([a-zA-Z0-9]) alpha numeric - b ([ \\t]) white space (blank) - c ([a-zA-Z]) alpha - d ([0-9]) digit - h ([0-9a-fA-F]) hex digit - n (\r|(\r?\n)) newline - q (\"[^\"]*\")|(\'[^\']*\') quoted string - w ([a-zA-Z]+) simple word - z ([0-9]+) integer -*/ - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -//Convertion utility classes used to convert char* to RECHAR. -//Used by rx debugging printing. -template -class CAToREChar -{ -public: - CAToREChar(const char* psz) throw() - : m_psz(psz) - { - } - operator const RECHARTYPE*() const throw() { return m_psz; } - const char* m_psz; -}; - -template<> -class CAToREChar -{ -public: - CAToREChar(const char* psz) throw() - : m_a2w(psz) - { - } - operator const wchar_t*() const throw() { return (wchar_t*)m_a2w; } - -private: - CA2W m_a2w; -}; - -class CAtlRECharTraitsA -{ -public: - typedef char RECHARTYPE; - - static size_t GetBitFieldForRangeArrayIndex(const RECHARTYPE *sz) throw() - { -#ifndef ATL_NO_CHECK_BIT_FIELD - ATLASSERT(UseBitFieldForRange()); -#endif - return static_cast(static_cast(*sz)); - } - static RECHARTYPE *Next(const RECHARTYPE *sz) throw() - { - return (RECHARTYPE *) (sz+1); - } - - static int Strncmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return strncmp(szLeft, szRight, nCount); - } - - static int Strnicmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return _strnicmp(szLeft, szRight, nCount); - } - - _ATL_INSECURE_DEPRECATE("CAtlRECharTraitsA::Strlwr must be passed a buffer size.") - static RECHARTYPE *Strlwr(RECHARTYPE *sz) throw() - { - #pragma warning (push) - #pragma warning(disable : 4996) - return _strlwr(sz); - #pragma warning (pop) - } - - static RECHARTYPE *Strlwr(RECHARTYPE *sz, int nSize) throw() - { - Checked::strlwr_s(sz, nSize); - return sz; - } - - static long Strtol(const RECHARTYPE *sz, RECHARTYPE **szEnd, int nBase) throw() - { - return strtol(sz, szEnd, nBase); - } - - static int Isdigit(RECHARTYPE ch) throw() - { - return isdigit(static_cast(ch)); - } - - static const RECHARTYPE** GetAbbrevs() - { - static const RECHARTYPE *s_szAbbrevs[] = - { - "a([a-zA-Z0-9])", // alpha numeric - "b([ \\t])", // white space (blank) - "c([a-zA-Z])", // alpha - "d([0-9])", // digit - "h([0-9a-fA-F])", // hex digit - "n(\r|(\r?\n))", // newline - "q(\"[^\"]*\")|(\'[^\']*\')", // quoted string - "w([a-zA-Z]+)", // simple word - "z([0-9]+)", // integer - NULL - }; - - return s_szAbbrevs; - } - - static BOOL UseBitFieldForRange() throw() - { - return TRUE; - } - - static int ByteLen(const RECHARTYPE *sz) throw() - { - return int(strlen(sz)); - } -}; - -class CAtlRECharTraitsW -{ -public: - typedef WCHAR RECHARTYPE; - - static size_t GetBitFieldForRangeArrayIndex(const RECHARTYPE *sz) throw() - { -#ifndef ATL_NO_CHECK_BIT_FIELD - ATLASSERT(UseBitFieldForRange()); -#endif - return static_cast(*sz); - } - static RECHARTYPE *Next(const RECHARTYPE *sz) throw() - { - return (RECHARTYPE *) (sz+1); - } - - static int Strncmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return wcsncmp(szLeft, szRight, nCount); - } - - static int Strnicmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return _wcsnicmp(szLeft, szRight, nCount); - } - - _ATL_INSECURE_DEPRECATE("CAtlRECharTraitsW::Strlwr must be passed a buffer size.") - static RECHARTYPE *Strlwr(RECHARTYPE *sz) throw() - { - #pragma warning (push) - #pragma warning(disable : 4996) - return _wcslwr(sz); - #pragma warning (pop) - } - - static RECHARTYPE *Strlwr(RECHARTYPE *sz, int nSize) throw() - { - Checked::wcslwr_s(sz, nSize); - return sz; - } - - static long Strtol(const RECHARTYPE *sz, RECHARTYPE **szEnd, int nBase) throw() - { - return wcstol(sz, szEnd, nBase); - } - - static int Isdigit(RECHARTYPE ch) throw() - { - return iswdigit(ch); - } - - static const RECHARTYPE** GetAbbrevs() - { - static const RECHARTYPE *s_szAbbrevs[] = - { - L"a([a-zA-Z0-9])", // alpha numeric - L"b([ \\t])", // white space (blank) - L"c([a-zA-Z])", // alpha - L"d([0-9])", // digit - L"h([0-9a-fA-F])", // hex digit - L"n(\r|(\r?\n))", // newline - L"q(\"[^\"]*\")|(\'[^\']*\')", // quoted string - L"w([a-zA-Z]+)", // simple word - L"z([0-9]+)", // integer - NULL - }; - - return s_szAbbrevs; - } - - static BOOL UseBitFieldForRange() throw() - { - return FALSE; - } - - static int ByteLen(const RECHARTYPE *sz) throw() - { - return int(wcslen(sz)*sizeof(WCHAR)); - } -}; - -class CAtlRECharTraitsMB -{ -public: - typedef unsigned char RECHARTYPE; - - static size_t GetBitFieldForRangeArrayIndex(const RECHARTYPE *sz) throw() - { -#ifndef ATL_NO_CHECK_BIT_FIELD - ATLASSERT(UseBitFieldForRange()); -#endif - - return static_cast(*sz); - } - - static RECHARTYPE *Next(const RECHARTYPE *sz) throw() - { - return _mbsinc(sz); - } - - static int Strncmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return _mbsncmp(szLeft, szRight, nCount); - } - - static int Strnicmp(const RECHARTYPE *szLeft, const RECHARTYPE *szRight, size_t nCount) throw() - { - return _mbsnicmp(szLeft, szRight, nCount); - } - - _ATL_INSECURE_DEPRECATE("CAtlRECharTraitsMB::Strlwr must be passed a buffer size.") - static RECHARTYPE *Strlwr(RECHARTYPE *sz) throw() - { - #pragma warning (push) - #pragma warning(disable : 4996) - return _mbslwr(sz); - #pragma warning (pop) - } - - static RECHARTYPE *Strlwr(RECHARTYPE *sz, int nSize) throw() - { - Checked::mbslwr_s(sz, nSize); - return sz; - } - - static long Strtol(const RECHARTYPE *sz, RECHARTYPE **szEnd, int nBase) throw() - { - return strtol((const char *) sz, (char **) szEnd, nBase); - } - - static int Isdigit(RECHARTYPE ch) throw() - { - return _ismbcdigit((unsigned int) ch); - } - - static const RECHARTYPE** GetAbbrevs() - { - return reinterpret_cast(CAtlRECharTraitsA::GetAbbrevs()); - } - - static BOOL UseBitFieldForRange() throw() - { - return FALSE; - } - - static int ByteLen(const RECHARTYPE *sz) throw() - { - return (int)strlen((const char *) sz); - } -}; - -#ifndef _UNICODE -typedef CAtlRECharTraitsA CAtlRECharTraits; -#else // _UNICODE -typedef CAtlRECharTraitsW CAtlRECharTraits; -#endif // !_UNICODE -// Note: If you want to use CAtlRECharTraitsMB you must pass it in -// as a template argument - -template -class CAtlRegExp; // forward declaration - -template -class CAtlREMatchContext -{ -public: - friend CAtlRegExp; - typedef typename CharTraits::RECHARTYPE RECHAR; - - struct MatchGroup - { - const RECHAR *szStart; - const RECHAR *szEnd; - }; - - UINT m_uNumGroups; - - MatchGroup m_Match; - - void GetMatch(UINT nIndex, const RECHAR **szStart, const RECHAR **szEnd) - { - ATLENSURE(szStart != NULL); - ATLENSURE(szEnd != NULL); - ATLENSURE(nIndex >=0 && nIndex < m_uNumGroups); - *szStart = m_Matches[nIndex].szStart; - *szEnd = m_Matches[nIndex].szEnd; - } - - void GetMatch(UINT nIndex, MatchGroup *pGroup) - { - - ATLENSURE(pGroup != NULL); - ATLENSURE(nIndex >=0&&(static_cast(nIndex))< m_uNumGroups); - pGroup->szStart = m_Matches[nIndex].szStart; - pGroup->szEnd = m_Matches[nIndex].szEnd; - } - -protected: - CAutoVectorPtr m_Mem; - CAutoVectorPtr m_Matches; - CAtlArray m_stack; - size_t m_nTos; - -public: - CAtlREMatchContext(size_t nInitStackSize=ATL_REGEXP_MIN_STACK) - { - m_uNumGroups = 0; - m_nTos = 0; - m_stack.SetCount(nInitStackSize); - m_Match.szStart = NULL; - m_Match.szEnd = NULL; - } - -protected: - BOOL Initialize(UINT uRequiredMem, UINT uNumGroups) throw() - { - m_nTos = 0; - - m_uNumGroups = 0; - m_Matches.Free(); - - if (!m_Matches.Allocate(uNumGroups)) - return FALSE; - - m_uNumGroups = uNumGroups; - - m_Mem.Free(); - - if (!m_Mem.Allocate(uRequiredMem)) - return FALSE; - - memset(m_Mem.m_p, 0x00, uRequiredMem*sizeof(void *)); - - memset(m_Matches, 0x00, m_uNumGroups * sizeof(MatchGroup)); - return TRUE; - } - - BOOL Push(void *p) - { - m_nTos++; - if (m_stack.GetCount() <= (UINT) m_nTos) - { - if (!m_stack.SetCount((m_nTos+1)*2)) - { - m_nTos--; - return FALSE; - } - } - m_stack[m_nTos] = p; - return TRUE; - } - - BOOL Push(size_t n) - { - return Push((void *) n); - } - - void *Pop() throw() - { - if (m_nTos==0) - { - // stack underflow - // this should never happen at match time. - // (the parsing succeeded when it shouldn't have) - ATLASSERT(FALSE); - return NULL; - } - void *p = m_stack[m_nTos]; - m_nTos--; - return p; - } -}; - -enum REParseError { - REPARSE_ERROR_OK = 0, // No error occurred - REPARSE_ERROR_OUTOFMEMORY, // Out of memory - REPARSE_ERROR_BRACE_EXPECTED, // A closing brace was expected - REPARSE_ERROR_PAREN_EXPECTED, // A closing parenthesis was expected - REPARSE_ERROR_BRACKET_EXPECTED, // A closing bracket was expected - REPARSE_ERROR_UNEXPECTED, // An unspecified fatal error occurred - REPARSE_ERROR_EMPTY_RANGE, // A range expression was empty - REPARSE_ERROR_INVALID_GROUP, // A backreference was made to a group - // that did not exist - REPARSE_ERROR_INVALID_RANGE, // An invalid range was specified - REPARSE_ERROR_EMPTY_REPEATOP, // A possibly empty * or + was detected - REPARSE_ERROR_INVALID_INPUT, // The input string was invalid -}; - -template -class CAtlRegExp -{ -public: - CAtlRegExp() throw() - { - m_uNumGroups = 0; - m_uRequiredMem = 0; - m_bCaseSensitive = TRUE; - m_LastError = REPARSE_ERROR_OK; - } - - typedef typename CharTraits::RECHARTYPE RECHAR; - - // CAtlRegExp::Parse - // Parses the regular expression - // returns REPARSE_ERROR_OK if successful, an REParseError otherwise - REParseError Parse(const RECHAR *szRE, BOOL bCaseSensitive=TRUE) - { - ATLASSERT(szRE); - if (!szRE) - return REPARSE_ERROR_INVALID_INPUT; - - Reset(); - - m_bCaseSensitive = bCaseSensitive; - - const RECHAR *szInput = szRE; - - if (!bCaseSensitive) - { - // copy the string - int nSize = CharTraits::ByteLen(szRE)+sizeof(RECHAR); - szInput = (const RECHAR *) malloc(nSize); - if (!szInput) - return REPARSE_ERROR_OUTOFMEMORY; - - Checked::memcpy_s((char *) szInput, nSize, szRE, nSize); - - CharTraits::Strlwr(const_cast(szInput), nSize/sizeof(RECHAR)); - } - const RECHAR *sz = szInput; - - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return REPARSE_ERROR_OUTOFMEMORY; - - if (*sz == '^') - { - if (AddInstruction(RE_FAIL) < 0) - return REPARSE_ERROR_OUTOFMEMORY; - sz++; - } - else - { - if (AddInstruction(RE_ADVANCE) < 0) - return REPARSE_ERROR_OUTOFMEMORY; - } - - bool bEmpty = true; - ParseRE(&sz, bEmpty); - if (!GetLastParseError()) - { - GetInstruction(nCall).call.nTarget = 2; - - if (AddInstruction(RE_MATCH) < 0) - return REPARSE_ERROR_OUTOFMEMORY; - } - - if (szInput != szRE) - free((void *) szInput); - - return GetLastParseError(); - } - - BOOL Match(const RECHAR *szIn, CAtlREMatchContext *pContext, const RECHAR **ppszEnd=NULL) - { - ATLASSERT(szIn); - ATLASSERT(pContext); - - if (!szIn || !pContext) - return FALSE; - - if (ppszEnd) - *ppszEnd = NULL; - - const RECHAR *szInput = szIn; - - if (!m_bCaseSensitive) - { - int nSize = CharTraits::ByteLen(szIn)+sizeof(RECHAR); - szInput = (const RECHAR *) malloc(nSize); - if (!szInput) - return FALSE; - - Checked::memcpy_s((char *) szInput, nSize, szIn, nSize); - CharTraits::Strlwr(const_cast(szInput), nSize/sizeof(RECHAR)); - } - - if (!pContext->Initialize(m_uRequiredMem, m_uNumGroups)) - { - if (szInput != szIn) - free((void *) szInput); - return FALSE; - } - - size_t ip = 0; - - const RECHAR *sz = szInput; - const RECHAR *szCurrInput = szInput; - -#pragma warning(push) -#pragma warning(disable:4127) // conditional expression is constant - - while (1) - { -#ifdef ATLRX_DEBUG - OnDebugEvent(ip, szInput, sz, pContext); -#endif - if (ip == 0) - pContext->m_Match.szStart = sz; - - switch (GetInstruction(ip).type) - { - case RE_NOP: - ip++; - break; - - case RE_SYMBOL: - if (GetInstruction(ip).symbol.nSymbol == static_cast(static_cast<_TUCHAR>(*sz))) - { - sz = CharTraits::Next(sz); - ip++; - } - else - { - ip = (size_t) pContext->Pop(); - } - break; - - case RE_ANY: - if (*sz) - { - sz = CharTraits::Next(sz); - ip++; - } - else - { - ip = (size_t) pContext->Pop(); - } - break; - - case RE_GROUP_START: - pContext->m_Matches[GetInstruction(ip).group.nGroup].szStart = sz; - ip++; - break; - - case RE_GROUP_END: - pContext->m_Matches[GetInstruction(ip).group.nGroup].szEnd = sz; - ip++; - break; - - case RE_PUSH_CHARPOS: - pContext->Push((void *) sz); - ip++; - break; - - case RE_POP_CHARPOS: - sz = (RECHAR *) pContext->Pop(); - ip++; - break; - - case RE_CALL: - pContext->Push(ip+1); - ip = GetInstruction(ip).call.nTarget; - break; - - case RE_JMP: - ip = GetInstruction(ip).jmp.nTarget; - break; - - case RE_RETURN: - ip = (size_t) pContext->Pop(); - break; - - case RE_PUSH_MEMORY: - pContext->Push((void *) (pContext->m_Mem[GetInstruction(ip).memory.nIndex])); - ip++; - break; - - case RE_POP_MEMORY: - pContext->m_Mem[GetInstruction(ip).memory.nIndex] = pContext->Pop(); - ip++; - break; - - case RE_STORE_CHARPOS: - pContext->m_Mem[GetInstruction(ip).memory.nIndex] = (void *) sz; - ip++; - break; - - case RE_GET_CHARPOS: - sz = (RECHAR *) pContext->m_Mem[GetInstruction(ip).memory.nIndex]; - ip++; - break; - - case RE_STORE_STACKPOS: - pContext->m_Mem[GetInstruction(ip).memory.nIndex] = (void *) pContext->m_nTos; - ip++; - break; - - case RE_GET_STACKPOS: - pContext->m_nTos = (size_t) pContext->m_Mem[GetInstruction(ip).memory.nIndex]; - ip++; - break; - - case RE_RET_NOMATCH: - if (sz == (RECHAR *) pContext->m_Mem[GetInstruction(ip).memory.nIndex]) - { - // do a return - ip = (size_t) pContext->Pop(); - } - else - ip++; - break; - - case RE_ADVANCE: - sz = CharTraits::Next(szCurrInput); - szCurrInput = sz; - if (*sz == '\0') - goto Error; - ip = 0; - pContext->m_nTos = 0; - break; - - case RE_FAIL: - goto Error; - - case RE_RANGE: - { - if (*sz == '\0') - { - ip = (size_t) pContext->Pop(); - break; - } - - RECHAR *pBits = reinterpret_cast((&m_Instructions[ip]+1)); - size_t u = CharTraits::GetBitFieldForRangeArrayIndex(sz); - if (pBits[u >> 3] & 1 << (u & 0x7)) - { - ip += InstructionsPerRangeBitField(); - ip++; - sz = CharTraits::Next(sz); - } - else - { - ip = (size_t) pContext->Pop(); - } - } - break; - - case RE_NOTRANGE: - { - if (*sz == '\0') - { - ip = (size_t) pContext->Pop(); - break; - } - - RECHAR *pBits = reinterpret_cast((&m_Instructions[ip]+1)); - size_t u = static_cast(static_cast<_TUCHAR>(* ((RECHAR *) sz))); - if (pBits[u >> 3] & 1 << (u & 0x7)) - { - ip = (size_t) pContext->Pop(); - } - else - { - ip += InstructionsPerRangeBitField(); - ip++; - sz = CharTraits::Next(sz); - } - } - break; - - case RE_RANGE_EX: - { - if (*sz == '\0') - { - ip = (size_t) pContext->Pop(); - break; - } - - BOOL bMatch = FALSE; - size_t inEnd = GetInstruction(ip).range.nTarget; - ip++; - - while (ip < inEnd) - { - if (static_cast(static_cast<_TUCHAR>(*sz)) >= GetInstruction(ip).memory.nIndex && - static_cast(static_cast<_TUCHAR>(*sz)) <= GetInstruction(ip+1).memory.nIndex) - { - // if we match, we jump to the end - sz = CharTraits::Next(sz); - ip = inEnd; - bMatch = TRUE; - } - else - { - ip += 2; - } - } - if (!bMatch) - { - ip = (size_t) pContext->Pop(); - } - } - break; - - case RE_NOTRANGE_EX: - { - if (*sz == '\0') - { - ip = (size_t) pContext->Pop(); - break; - } - - BOOL bMatch = TRUE; - size_t inEnd = GetInstruction(ip).range.nTarget; - ip++; - - while (ip < inEnd) - { - if (static_cast(static_cast<_TUCHAR>(*sz)) >= GetInstruction(ip).memory.nIndex && - static_cast(static_cast<_TUCHAR>(*sz)) <= GetInstruction(ip+1).memory.nIndex) - { - ip = (size_t) pContext->Pop(); - bMatch = FALSE; - break; - } - else - { - // if we match, we jump to the end - ip += 2; - } - } - if (bMatch) - sz = CharTraits::Next(sz); - } - break; - - case RE_PREVIOUS: - { - BOOL bMatch = FALSE; - if (m_bCaseSensitive) - { - bMatch = !CharTraits::Strncmp(sz, pContext->m_Matches[GetInstruction(ip).prev.nGroup].szStart, - pContext->m_Matches[GetInstruction(ip).prev.nGroup].szEnd-pContext->m_Matches[GetInstruction(ip).prev.nGroup].szStart); - } - else - { - bMatch = !CharTraits::Strnicmp(sz, pContext->m_Matches[GetInstruction(ip).prev.nGroup].szStart, - pContext->m_Matches[GetInstruction(ip).prev.nGroup].szEnd-pContext->m_Matches[GetInstruction(ip).prev.nGroup].szStart); - } - if (bMatch) - { - sz += pContext->m_Matches[GetInstruction(ip).prev.nGroup].szEnd-pContext->m_Matches[GetInstruction(ip).prev.nGroup].szStart; - ip++; - break; - } - ip = (size_t) pContext->Pop(); - } - break; - - case RE_MATCH: - pContext->m_Match.szEnd = sz; - if (!m_bCaseSensitive) - FixupMatchContext(pContext, szIn, szInput); - if (ppszEnd) - *ppszEnd = szIn + (sz - szInput); - if (szInput != szIn) - free((void *) szInput); - return TRUE; - break; - - case RE_PUSH_GROUP: - pContext->Push((void *) pContext->m_Matches[GetInstruction(ip).group.nGroup].szStart); - pContext->Push((void *) pContext->m_Matches[GetInstruction(ip).group.nGroup].szEnd); - ip++; - break; - - case RE_POP_GROUP: - pContext->m_Matches[GetInstruction(ip).group.nGroup].szEnd = (const RECHAR *) pContext->Pop(); - pContext->m_Matches[GetInstruction(ip).group.nGroup].szStart = (const RECHAR *) pContext->Pop(); - ip++; - break; - - default: - ATLASSERT(FALSE); - break; - } - } - -#pragma warning(pop) // 4127 - - ATLASSERT(FALSE); -Error: - pContext->m_Match.szEnd = sz; - if (!m_bCaseSensitive) - FixupMatchContext(pContext, szIn, szInput); - if (ppszEnd) - *ppszEnd = szIn + (sz - szInput); - if (szInput != szIn) - free((void *) szInput); - return FALSE; - } - -protected: - REParseError m_LastError; - - REParseError GetLastParseError() throw() - { - return m_LastError; - } - - void SetLastParseError(REParseError Error) throw() - { - m_LastError = Error; - } - // CAtlRegExp::Reset - // Removes all instructions to allow reparsing into the same instance - void Reset() throw() - { - m_Instructions.RemoveAll(); - m_uRequiredMem = 0; - m_bCaseSensitive = TRUE; - m_uNumGroups = 0; - SetLastParseError(REPARSE_ERROR_OK); - } - - - enum REInstructionType { - RE_NOP, - RE_GROUP_START, - RE_GROUP_END, - RE_SYMBOL, - RE_ANY, - RE_RANGE, - RE_NOTRANGE, - RE_RANGE_EX, - RE_NOTRANGE_EX, - RE_PLUS, - RE_NG_PLUS, - RE_QUESTION, - RE_NG_QUESTION, - RE_JMP, - RE_PUSH_CHARPOS, - RE_POP_CHARPOS, - RE_CALL, - RE_RETURN, - RE_STAR_BEGIN, - RE_NG_STAR_BEGIN, - RE_PUSH_MEMORY, - RE_POP_MEMORY, - RE_STORE_CHARPOS, - RE_STORE_STACKPOS, - RE_GET_CHARPOS, - RE_GET_STACKPOS, - RE_RET_NOMATCH, - RE_PREVIOUS, - RE_FAIL, - RE_ADVANCE, - RE_MATCH, - RE_PUSH_GROUP, - RE_POP_GROUP, - }; - - struct INSTRUCTION_SYMBOL - { - size_t nSymbol; - }; - - struct INSTRUCTION_JMP - { - size_t nTarget; - }; - - struct INSTRUCTION_GROUP - { - size_t nGroup; - }; - - struct INSTRUCTION_CALL - { - size_t nTarget; - }; - - struct INSTRUCTION_MEMORY - { - size_t nIndex; - }; - - struct INSTRUCTION_PREVIOUS - { - size_t nGroup; - }; - - struct INSTRUCTION_RANGE_EX - { - size_t nTarget; - }; - - struct INSTRUCTION - { - REInstructionType type; - union - { - INSTRUCTION_SYMBOL symbol; - INSTRUCTION_JMP jmp; - INSTRUCTION_GROUP group; - INSTRUCTION_CALL call; - INSTRUCTION_MEMORY memory; - INSTRUCTION_PREVIOUS prev; - INSTRUCTION_RANGE_EX range; - }; - }; - - inline int InstructionsPerRangeBitField() throw() - { - return (256/8) / sizeof(INSTRUCTION) + (((256/8) % sizeof(INSTRUCTION)) ? 1 : 0); - } - - CAtlArray m_Instructions; - - UINT m_uNumGroups; - UINT m_uRequiredMem; - BOOL m_bCaseSensitive; - - - // class used internally to restore - // parsing state when unwinding - class CParseState - { - public: - int m_nNumInstructions; - UINT m_uNumGroups; - UINT m_uRequiredMem; - - CParseState(CAtlRegExp *pRegExp) throw() - { - m_nNumInstructions = (int) pRegExp->m_Instructions.GetCount(); - m_uNumGroups = pRegExp->m_uNumGroups; - m_uRequiredMem = pRegExp->m_uRequiredMem; - } - - void Restore(CAtlRegExp *pRegExp) - { - pRegExp->m_Instructions.SetCount(m_nNumInstructions); - pRegExp->m_uNumGroups = m_uNumGroups; - pRegExp->m_uRequiredMem = m_uRequiredMem; - } - }; - - int AddInstruction(REInstructionType type) - { - if (!m_Instructions.SetCount(m_Instructions.GetCount()+1)) - { - SetLastParseError(REPARSE_ERROR_OUTOFMEMORY); - return -1; - } - - m_Instructions[m_Instructions.GetCount()-1].type = type; - return (int) m_Instructions.GetCount()-1; - } - - BOOL PeekToken(const RECHAR **ppszRE, int ch) throw() - { - if (**ppszRE != ch) - return FALSE; - return TRUE; - } - - BOOL MatchToken(const RECHAR **ppszRE, int ch) throw() - { - if (!PeekToken(ppszRE, ch)) - return FALSE; - *ppszRE = CharTraits::Next(*ppszRE); - return TRUE; - } - - INSTRUCTION &GetInstruction(size_t nIndex) throw() - { - return m_Instructions[nIndex]; - } - - // ParseArg: parse grammar rule Arg - int ParseArg(const RECHAR **ppszRE, bool &bEmpty) - { - int nPushGroup = AddInstruction(RE_PUSH_GROUP); - if (nPushGroup < 0) - return -1; - - GetInstruction(nPushGroup).group.nGroup = m_uNumGroups; - - int p = AddInstruction(RE_GROUP_START); - if (p < 0) - return -1; - GetInstruction(p).group.nGroup = m_uNumGroups++; - - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - int nPopGroup = AddInstruction(RE_POP_GROUP); - if (nPopGroup < 0) - return -1; - GetInstruction(nPopGroup).group.nGroup = GetInstruction(nPushGroup).group.nGroup; - - if (AddInstruction(RE_RETURN) < 0) - return -1; - - int nAlt = ParseRE(ppszRE, bEmpty); - if (nAlt < 0) - { - if (GetLastParseError()) - return -1; - - if (!PeekToken(ppszRE, '}')) - { - SetLastParseError(REPARSE_ERROR_BRACE_EXPECTED); - return -1; - } - - // in the case of an empty group, we add a nop - nAlt = AddInstruction(RE_NOP); - if (nAlt < 0) - return -1; - } - - GetInstruction(nCall).call.nTarget = nAlt; - - if (!MatchToken(ppszRE, '}')) - { - SetLastParseError(REPARSE_ERROR_BRACE_EXPECTED); - return -1; - } - - int nEnd = AddInstruction(RE_GROUP_END); - if (nEnd < 0) - return -1; - GetInstruction(nEnd).group.nGroup = GetInstruction(p).group.nGroup; - return nPushGroup; - } - - // ParseGroup: parse grammar rule Group - int ParseGroup(const RECHAR **ppszRE, bool &bEmpty) - { - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - if (AddInstruction(RE_RETURN) < 0) - return -1; - - int nAlt = ParseRE(ppszRE, bEmpty); - if (nAlt < 0) - { - if (GetLastParseError()) - return -1; - - if (!PeekToken(ppszRE, ')')) - { - SetLastParseError(REPARSE_ERROR_PAREN_EXPECTED); - return -1; - } - - // in the case of an empty group, we add a nop - nAlt = AddInstruction(RE_NOP); - if (nAlt < 0) - return -1; - } - - GetInstruction(nCall).call.nTarget = nAlt; - - if (!MatchToken(ppszRE, ')')) - { - SetLastParseError(REPARSE_ERROR_PAREN_EXPECTED); - return -1; - } - - return nCall; - } - - RECHAR GetEscapedChar(RECHAR ch) throw() - { - if (ch == 't') - return '\t'; - return ch; - } - - // ParseCharItem: parse grammar rule CharItem - int ParseCharItem(const RECHAR **ppszRE, RECHAR *pchStartChar, RECHAR *pchEndChar) throw() - { - if (**ppszRE == '\\') - { - *ppszRE = CharTraits::Next(*ppszRE); - *pchStartChar = GetEscapedChar(**ppszRE); - } - else - *pchStartChar = **ppszRE; - *ppszRE = CharTraits::Next(*ppszRE); - - if (!MatchToken(ppszRE, '-')) - { - *pchEndChar = *pchStartChar; - return 0; - } - - // check for unterminated range - if (!**ppszRE || PeekToken(ppszRE, ']')) - { - SetLastParseError(REPARSE_ERROR_BRACKET_EXPECTED); - return -1; - } - - *pchEndChar = **ppszRE; - *ppszRE = CharTraits::Next(*ppszRE); - - if (*pchEndChar < *pchStartChar) - { - SetLastParseError(REPARSE_ERROR_INVALID_RANGE); - return -1; - } - return 0; - } - - int AddInstructions(int nNumInstructions) - { - size_t nCurr = m_Instructions.GetCount(); - if (!m_Instructions.SetCount(nCurr+nNumInstructions)) - { - SetLastParseError(REPARSE_ERROR_OUTOFMEMORY); - return -1; - } - return (int) nCurr; - } - - // ParseCharSet: parse grammar rule CharSet - int ParseCharSet(const RECHAR **ppszRE, BOOL bNot) - { - int p = -1; - - unsigned char *pBits = NULL; - - if (CharTraits::UseBitFieldForRange()) - { - // we use a bit field to represent the characters - // a 1 bit means match against the character - // the last 5 bits are used as an index into - // the byte array, and the first 3 bits - // are used to index into the selected byte - - p = AddInstruction(bNot ? RE_NOTRANGE : RE_RANGE); - if (p < 0) - return -1; - - // add the required space to hold the character - // set. We use one bit per character for ansi - if (AddInstructions(InstructionsPerRangeBitField()) < 0) - return -1; - - pBits = (unsigned char *) (&m_Instructions[p+1]); - memset(pBits, 0x00, 256/8); - } - else - { - p = AddInstruction(bNot ? RE_NOTRANGE_EX : RE_RANGE_EX); - if (p < 0) - return -1; - } - - RECHAR chStart; - RECHAR chEnd; - - while (**ppszRE && **ppszRE != ']') - { - if (ParseCharItem(ppszRE, &chStart, &chEnd)) - return -1; - - if (CharTraits::UseBitFieldForRange()) - { - for (int i=chStart; i<=chEnd; i++) - pBits[i >> 3] |= 1 << (i & 0x7); - } - else - { - int nStart = AddInstruction(RE_NOP); - if (nStart < 0) - return -1; - - int nEnd = AddInstruction(RE_NOP); - if (nEnd < 0) - return -1; - - GetInstruction(nStart).memory.nIndex = (int) chStart; - GetInstruction(nEnd).memory.nIndex = (int) chEnd; - } - } - - if (!CharTraits::UseBitFieldForRange()) - GetInstruction(p).range.nTarget = m_Instructions.GetCount(); - - return p; - } - - // ParseCharClass: parse grammar rule CharClass - int ParseCharClass(const RECHAR **ppszRE, bool &bEmpty) - { - bEmpty = false; - if (MatchToken(ppszRE, ']')) - { - SetLastParseError(REPARSE_ERROR_EMPTY_RANGE); - return -1; - } - - BOOL bNot = FALSE; - if (MatchToken(ppszRE, '^')) - bNot = TRUE; - - if (MatchToken(ppszRE, ']')) - { - SetLastParseError(REPARSE_ERROR_EMPTY_RANGE); - return -1; - } - - int p = ParseCharSet(ppszRE, bNot); - if (p < 0) - return p; - if (!MatchToken(ppszRE, ']')) - { - SetLastParseError(REPARSE_ERROR_BRACKET_EXPECTED); - return -1; - } - - return p; - } - - int AddMemInstruction(REInstructionType type) - { - int p = AddInstruction(type); - if (p < 0) - return p; - GetInstruction(p).memory.nIndex = m_uRequiredMem++; - return p; - } - - // helper for parsing !SE - int ParseNot(const RECHAR **ppszRE, bool &bEmpty) - { - int nStoreCP = AddMemInstruction(RE_STORE_CHARPOS); - int nStoreSP = AddMemInstruction(RE_STORE_STACKPOS); - - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - int nGetCP = AddInstruction(RE_GET_CHARPOS); - if (nGetCP < 0) - return -1; - GetInstruction(nGetCP).memory.nIndex = GetInstruction(nStoreCP).memory.nIndex; - - int nGetSP = AddInstruction(RE_GET_STACKPOS); - if (nGetSP < 0) - return -1; - GetInstruction(nGetSP).memory.nIndex = GetInstruction(nStoreSP).memory.nIndex; - - int nJmp = AddInstruction(RE_JMP); - if (nJmp < 0) - return -1; - - int nSE = ParseSE(ppszRE, bEmpty); - if (nSE < 0) - return nSE; - - // patch the call - GetInstruction(nCall).call.nTarget = nSE; - - int nGetCP1 = AddInstruction(RE_GET_CHARPOS); - if (nGetCP1 < 0) - return -1; - GetInstruction(nGetCP1).memory.nIndex = GetInstruction(nStoreCP).memory.nIndex; - - int nGetSP1 = AddInstruction(RE_GET_STACKPOS); - if (nGetSP1 < 0) - return -1; - GetInstruction(nGetSP1).memory.nIndex = GetInstruction(nStoreSP).memory.nIndex; - - int nRet = AddInstruction(RE_RETURN); - if (nRet < 0) - return -1; - - GetInstruction(nJmp).jmp.nTarget = nRet+1; - - return nStoreCP; - } - - // ParseAbbrev: parse grammar rule Abbrev - int ParseAbbrev(const RECHAR **ppszRE, bool &bEmpty) - { - const RECHAR **szAbbrevs = CharTraits::GetAbbrevs(); - - while (*szAbbrevs) - { - if (**ppszRE == **szAbbrevs) - { - const RECHAR *szAbbrev = (*szAbbrevs)+1; - int p = ParseE(&szAbbrev, bEmpty); - if (p < 0) - { - SetLastParseError(REPARSE_ERROR_UNEXPECTED); - return p; - } - *ppszRE = CharTraits::Next(*ppszRE); - return p; - } - szAbbrevs++; - } - return -1; - } - - // ParseSE: parse grammar rule SE (simple expression) - int ParseSE(const RECHAR **ppszRE, bool &bEmpty) - { - - if (MatchToken(ppszRE, '{')) - return ParseArg(ppszRE, bEmpty); - if (MatchToken(ppszRE, '(')) - return ParseGroup(ppszRE, bEmpty); - if (MatchToken(ppszRE, '[')) - return ParseCharClass(ppszRE, bEmpty); - - if (MatchToken(ppszRE, '\\')) - { - if (!CharTraits::Isdigit(**ppszRE)) - { - // check for abbreviations - int p; - p = ParseAbbrev(ppszRE, bEmpty); - if (p >= 0) - return p; - - if (GetLastParseError()) - return -1; - - // escaped char - p = AddInstruction(RE_SYMBOL); - if (p < 0) - return -1; - GetInstruction(p).symbol.nSymbol = (int) **ppszRE; - *ppszRE = CharTraits::Next(*ppszRE); - return p; - } - // previous match - bEmpty = false; - int nPrev = AddInstruction(RE_PREVIOUS); - if (nPrev < 0) - return -1; - - UINT uValue = (UINT) CharTraits::Strtol(*ppszRE, (RECHAR **) ppszRE, 10); - if (uValue >= m_uNumGroups) - { - SetLastParseError(REPARSE_ERROR_INVALID_GROUP); - return -1; - } - GetInstruction(nPrev).prev.nGroup = (size_t) uValue; - return nPrev; - } - - if (MatchToken(ppszRE, '!')) - return ParseNot(ppszRE, bEmpty); - - if (**ppszRE == '}' || **ppszRE == ']' || **ppszRE == ')') - { - return -1; - } - - if (**ppszRE == '\0') - { - return -1; - } - - int p; - if (**ppszRE == '.') - { - p = AddInstruction(RE_ANY); - if (p < 0) - return -1; - bEmpty = false; - } - else if (**ppszRE == '$' && (*ppszRE)[1] == '\0') - { - p = AddInstruction(RE_SYMBOL); - if (p < 0) - return -1; - GetInstruction(p).symbol.nSymbol = 0; - bEmpty = false; - } - else - { - p = AddInstruction(RE_SYMBOL); - if (p < 0) - return -1; - GetInstruction(p).symbol.nSymbol = (int) **ppszRE; - bEmpty = false; - } - *ppszRE = CharTraits::Next(*ppszRE); - return p; - } - - // ParseE: parse grammar rule E (expression) - int ParseE(const RECHAR **ppszRE, bool &bEmpty) - { - CParseState ParseState(this); - const RECHAR *sz = *ppszRE; - - int nSE; - - int nFirst = ParseSE(ppszRE, bEmpty); - if (nFirst < 0) - return nFirst; - - REInstructionType type = RE_MATCH; - - if (MatchToken(ppszRE, '*')) - if(MatchToken(ppszRE, '?')) - type = RE_NG_STAR_BEGIN; - else - type = RE_STAR_BEGIN; - - - else if (MatchToken(ppszRE, '+')) - if(MatchToken(ppszRE, '?')) - type = RE_NG_PLUS; - else - type = RE_PLUS; - - else if (MatchToken(ppszRE, '?')) - if(MatchToken(ppszRE, '?')) - type = RE_NG_QUESTION; - else - type = RE_QUESTION; - - - if (type == RE_MATCH) - return nFirst; - - if (type == RE_STAR_BEGIN || type == RE_QUESTION|| type == RE_NG_STAR_BEGIN || type == RE_NG_QUESTION) - { - ParseState.Restore(this); - } - else - { - m_uNumGroups = ParseState.m_uNumGroups; - } - *ppszRE = sz; - - int nE; - - if (type == RE_NG_STAR_BEGIN || type == RE_NG_PLUS || type == RE_NG_QUESTION) // Non-Greedy - { - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - bEmpty = false; - - nSE = ParseSE(ppszRE, bEmpty); - if (nSE < 0) - return nSE; - - if (bEmpty && (type == RE_NG_STAR_BEGIN || type == RE_NG_PLUS)) - { - SetLastParseError(REPARSE_ERROR_EMPTY_REPEATOP); - return -1; - } - bEmpty = true; - - *ppszRE = CharTraits::Next(*ppszRE); - *ppszRE = CharTraits::Next(*ppszRE); - - if (type == RE_NG_STAR_BEGIN || type == RE_NG_PLUS) - { - int nJmp = AddInstruction(RE_JMP); - if (nJmp < 0) - return -1; - GetInstruction(nCall).call.nTarget = nJmp+1; - GetInstruction(nJmp).jmp.nTarget = nCall; - } - else - GetInstruction(nCall).call.nTarget = nSE+1; - - if (type == RE_NG_PLUS) - nE = nFirst; - else - nE = nCall; - } - else // Greedy - { - - int nPushMem = AddInstruction(RE_PUSH_MEMORY); - if (nPushMem < 0) - return -1; - - int nStore = AddInstruction(RE_STORE_CHARPOS); - if (nStore < 0) - return -1; - - if (AddInstruction(RE_PUSH_CHARPOS) < 0) - return -1; - - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - if (AddInstruction(RE_POP_CHARPOS) < 0) - return -1; - - int nPopMem = AddInstruction(RE_POP_MEMORY); - if (nPopMem < 0) - return -1; - - int nJmp = AddInstruction(RE_JMP); - if (nJmp < 0) - return -1; - - GetInstruction(nPushMem).memory.nIndex = m_uRequiredMem++; - GetInstruction(nStore).memory.nIndex = GetInstruction(nPushMem).memory.nIndex; - GetInstruction(nCall).call.nTarget = nJmp+1; - GetInstruction(nPopMem).memory.nIndex = GetInstruction(nPushMem).memory.nIndex; - - bEmpty = false; - - nSE = ParseSE(ppszRE, bEmpty); - if (nSE < 0) - return nSE; - - if (bEmpty && (type == RE_STAR_BEGIN || type == RE_PLUS)) - { - SetLastParseError(REPARSE_ERROR_EMPTY_REPEATOP); - return -1; - } - - if (type != RE_PLUS && type != RE_NG_PLUS) - bEmpty = true; - - *ppszRE = CharTraits::Next(*ppszRE); - - - int nRetNoMatch = AddInstruction(RE_RET_NOMATCH); - if (nRetNoMatch < 0) - return -1; - - int nStore1 = AddInstruction(RE_STORE_CHARPOS); - if (nStore1 < 0) - return -1; - - GetInstruction(nRetNoMatch).memory.nIndex = GetInstruction(nPushMem).memory.nIndex; - GetInstruction(nStore1).memory.nIndex = GetInstruction(nPushMem).memory.nIndex; - - if (type != RE_QUESTION) - { - int nJmp1 = AddInstruction(RE_JMP); - if (nJmp1 < 0) - return -1; - GetInstruction(nJmp1).jmp.nTarget = nPushMem; - } - - GetInstruction(nJmp).jmp.nTarget = m_Instructions.GetCount(); - if (type == RE_PLUS) - nE = nFirst; - else - nE = nPushMem; - } - - return nE; - } - - - // ParseAltE: parse grammar rule AltE - int ParseAltE(const RECHAR **ppszRE, bool &bEmpty) - { - const RECHAR *sz = *ppszRE; - CParseState ParseState(this); - - int nPush = AddInstruction(RE_PUSH_CHARPOS); - if (nPush < 0) - return -1; - - int nCall = AddInstruction(RE_CALL); - if (nCall < 0) - return -1; - - GetInstruction(nCall).call.nTarget = nPush+4; - if (AddInstruction(RE_POP_CHARPOS) < 0) - return -1; - - int nJmpNext = AddInstruction(RE_JMP); - if (nJmpNext < 0) - return -1; - - int nE = ParseE(ppszRE, bEmpty); - if (nE < 0) - { - if (GetLastParseError()) - return -1; - ParseState.Restore(this); - return nE; - } - - int nJmpEnd = AddInstruction(RE_JMP); - if (nJmpEnd < 0) - return -1; - - GetInstruction(nJmpNext).jmp.nTarget = nJmpEnd+1; - - if (!MatchToken(ppszRE, '|')) - { - ParseState.Restore(this); - *ppszRE = sz; - - return ParseE(ppszRE, bEmpty); - } - - bool bEmptyAltE; - int nAltE = ParseAltE(ppszRE, bEmptyAltE); - GetInstruction(nJmpEnd).jmp.nTarget = m_Instructions.GetCount(); - GetInstruction(nJmpNext).jmp.nTarget = nAltE; - if (nAltE < 0) - { - if (GetLastParseError()) - return -1; - ParseState.Restore(this); - return nAltE; - } - bEmpty = bEmpty | bEmptyAltE; - return nPush; - } - - // ParseRE: parse grammar rule RE (regular expression) - int ParseRE(const RECHAR **ppszRE, bool &bEmpty) - { - if (**ppszRE == '\0') - return -1; - - int p = ParseAltE(ppszRE, bEmpty); - if (p < 0) - return p; - - bool bEmptyRE = true; - ParseRE(ppszRE, bEmptyRE); - if (GetLastParseError()) - return -1; - bEmpty = bEmpty && bEmptyRE; - return p; - } - - //pointers to the matched string and matched groups, currently point into an internal allocated - //buffer that hold a copy of the input string. - //This function fix these pointers to point into the original, user supplied buffer (first param to Match method). - //Example: If a ptr (szStart) currently point to +3, it is fixed to +3 - void FixupMatchContext(CAtlREMatchContext *pContext, const RECHAR *szOrig, const RECHAR *szNew) - { - ATLENSURE(pContext); - ATLASSERT(szOrig); - ATLASSERT(szNew); - - pContext->m_Match.szStart = szOrig + (pContext->m_Match.szStart - szNew); - pContext->m_Match.szEnd = szOrig + (pContext->m_Match.szEnd - szNew); - for (UINT i=0; im_uNumGroups; i++) - { - if (pContext->m_Matches[i].szStart==NULL || pContext->m_Matches[i].szEnd==NULL) - { - continue; //Do not fix unmatched groups. - } - pContext->m_Matches[i].szStart = szOrig + (pContext->m_Matches[i].szStart - szNew); - pContext->m_Matches[i].szEnd = szOrig + (pContext->m_Matches[i].szEnd - szNew); - } - } - // implementation - // helpers for dumping and debugging the rx engine -public: -#ifdef ATL_REGEXP_DUMP - size_t DumpInstruction(size_t ip) - { - printf("%08x ", ip); - switch (GetInstruction(ip).type) - { - case RE_NOP: - printf("NOP\n"); - ip++; - break; - - case RE_SYMBOL: - AtlprintfT(CAToREChar("Symbol %c\n"),GetInstruction(ip).symbol.nSymbol); - ip++; - break; - - case RE_ANY: - printf("Any\n"); - ip++; - break; - - case RE_RANGE: - printf("Range\n"); - ip++; - ip += InstructionsPerRangeBitField(); - break; - - case RE_NOTRANGE: - printf("NOT Range\n"); - ip++; - ip += InstructionsPerRangeBitField(); - break; - - case RE_RANGE_EX: - printf("RangeEx %08x\n", GetInstruction(ip).range.nTarget); - ip++; - break; - - case RE_NOTRANGE_EX: - printf("NotRangeEx %08x\n", GetInstruction(ip).range.nTarget); - ip++; - break; - - case RE_GROUP_START: - printf("Start group %d\n", GetInstruction(ip).group.nGroup); - ip++; - break; - - case RE_GROUP_END: - printf("Group end %d\n", GetInstruction(ip).group.nGroup); - ip++; - break; - - case RE_PUSH_CHARPOS: - printf("Push char pos\n"); - ip++; - break; - - case RE_POP_CHARPOS: - printf("Pop char pos\n"); - ip++; - break; - - case RE_STORE_CHARPOS: - printf("Store char pos %d\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_GET_CHARPOS: - printf("Get char pos %d\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_STORE_STACKPOS: - printf("Store stack pos %d\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_GET_STACKPOS: - printf("Get stack pos %d\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_CALL: - printf("Call %08x\n", GetInstruction(ip).call.nTarget); - ip++; - break; - - case RE_JMP: - printf("Jump %08x\n", GetInstruction(ip).jmp.nTarget); - ip++; - break; - - case RE_RETURN: - printf("return\n"); - ip++; - break; - - case RE_PUSH_MEMORY: - printf("Push memory %08x\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_POP_MEMORY: - printf("Pop memory %08x\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_RET_NOMATCH: - printf("Return no match %08x\n", GetInstruction(ip).memory.nIndex); - ip++; - break; - - case RE_MATCH: - printf("END\n"); - ip++; - break; - - case RE_ADVANCE: - printf("ADVANCE\n"); - ip++; - break; - - case RE_FAIL: - printf("FAIL\n"); - ip++; - break; - - case RE_PREVIOUS: - printf("Prev %d\n", GetInstruction(ip).prev.nGroup); - ip++; - break; - - case RE_PUSH_GROUP: - printf("Push group %d\n", GetInstruction(ip).group.nGroup); - ip++; - break; - - case RE_POP_GROUP: - printf("Pop group %d\n", GetInstruction(ip).group.nGroup); - ip++; - break; - - - default: - printf("????\n"); - ip++; - break; - } - return ip; - } - - void Dump(size_t ipCurrent = 0) - { - size_t ip = 0; - - while (ip < m_Instructions.GetCount()) - { - if (ip == ipCurrent) - printf("->"); - ip = DumpInstruction(ip); - } - } -#endif - -#ifdef ATLRX_DEBUG - void cls( HANDLE hConsole ) - { - COORD coordScreen = { 0, 0 }; /* here's where we'll home the - cursor */ - BOOL bSuccess; - DWORD cCharsWritten; - CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */ - DWORD dwConSize; /* number of character cells in - the current buffer */ - - /* get the number of character cells in the current buffer */ - - bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); - dwConSize = csbi.dwSize.X * csbi.dwSize.Y; - - /* fill the entire screen with blanks */ - - bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ', - dwConSize, coordScreen, &cCharsWritten ); - - /* get the current text attribute */ - - bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); - - /* now set the buffer's attributes accordingly */ - - bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes, - dwConSize, coordScreen, &cCharsWritten ); - - /* put the cursor at (0, 0) */ - - bSuccess = SetConsoleCursorPosition( hConsole, coordScreen ); - return; - } - - void DumpStack(CAtlREMatchContext *pContext) - { - for (size_t i=pContext->m_nTos; i>0; i--) - { - if (pContext->m_stack[i] < (void *) m_Instructions.GetCount()) - printf("0x%p\n", pContext->m_stack[i]); - else - { - // assume a pointer into the input - AtlprintfT(CAToREChar("%s\n"), pContext->m_stack[i]); - } - } - } - - void DumpMemory(CAtlREMatchContext *pContext) - { - for (UINT i=0; i(CAToREChar("%d: %s\n"), i, pContext->m_Mem.m_p[i]); - } - } - - virtual void OnDebugEvent(size_t ip, const RECHAR *szIn, const RECHAR *sz, CAtlREMatchContext *pContext) - { - cls(GetStdHandle(STD_OUTPUT_HANDLE)); - printf("----------Code---------\n"); - Dump(ip); - printf("----------Input---------\n"); - AtlprintfT(CAToREChar("%s\n"), szIn); - for (int s=0; szIn+s < sz; s++) - { - printf(" "); - } - printf("^\n"); - printf("----------Memory---------\n"); - DumpMemory(pContext); - printf("----------Stack---------\n"); - DumpStack(pContext); - getchar(); - } -#endif - -}; - -} // namespace ATL -#pragma pack(pop) - -#endif // __ATLRX_H__ diff --git a/ATL90/include/atlserr.h b/ATL90/include/atlserr.h deleted file mode 100644 index 1e90016..0000000 --- a/ATL90/include/atlserr.h +++ /dev/null @@ -1,174 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSERR_H__ -#define __ATLSERR_H__ - -#pragma once -#pragma pack(push,_ATL_PACKING) -namespace ATL{ - -#define VALIDATION_S_OK 0x00000000 -#define VALIDATION_S_EMPTY 0x00000001 -#define VALIDATION_E_PARAMNOTFOUND 0x00000002 -#define VALIDATION_E_LENGTHMIN 0x80000083 -#define VALIDATION_E_LENGTHMAX 0x80000084 -#define VALIDATION_E_INVALIDLENGTH 0x80000080 -#define VALIDATION_E_INVALIDPARAM 0x80000005 -#define VALIDATION_E_FAIL 0x80000006 - -#define VALIDATION_SUCCEEDED(x) (((x == VALIDATION_S_OK) || (x == VALIDATION_S_EMPTY ))) - -typedef DWORD HTTP_CODE; - -#define HTTP_ERROR(err, sub) ((HTTP_CODE)(DWORD_PTR)MAKELONG((WORD)err, (WORD)sub)) -#define HTTP_ERROR_CODE(err) ((DWORD)LOWORD(err)) -#define HTTP_SUBERROR_CODE(err) ((DWORD)HIWORD(err)) -#define HTTP_SUCCESS HTTP_ERROR(0, 0) - -#define SUBERR_NONE 0 -#define ISE_SUBERR_BADSRF 1 -#define ISE_SUBERR_HNDLFAIL 2 -#define ISE_SUBERR_SYSOBJFAIL 3 -#define ISE_SUBERR_READFILEFAIL 4 -#define ISE_SUBERR_LOADFILEFAIL 6 -#define ISE_SUBERR_LOADLIB 7 -#define ISE_SUBERR_HANDLERIF 8 -#define ISE_SUBERR_OUTOFMEM 9 -#define ISE_SUBERR_UNEXPECTED 10 -#define ISE_SUBERR_STENCIL_INVALIDFUNCOFFSET 11 -#define ISE_SUBERR_STENCIL_MISMATCHWHILE 12 -#define ISE_SUBERR_STENCIL_MISMATCHIF 13 -#define ISE_SUBERR_STENCIL_UNEXPECTEDTYPE 14 -#define ISE_SUBERR_STENCIL_INVALIDINDEX 15 -#define ISE_SUBERR_STENCIL_INDEXOUTOFRANGE 16 -#define ISE_SUBERR_STENCIL_PARSE_FAIL 17 -#define ISE_SUBERR_STENCIL_LOAD_FAIL 18 -#define ISE_SUBERR_HANDLER_NOT_FOUND 19 -#define ISE_SUBERR_BAD_HANDLER_TAG 20 -#define ISE_SUBERR_NO_HANDLER_TAG 21 -#define ISE_SUBERR_LONGMETHODNAME 22 -#define ISE_SUBERR_LONGHANDLERNAME 23 -#define ISE_SUBERR_IMPERSONATIONFAILED 24 -#define ISE_SUBERR_ISAPISTARTUPFAILED 25 -#define ISE_SUBERR_SOAPNOSOAPACTION 26 -#define SUBERR_NO_PROCESS 27 -#define SUBERR_S_FALSE 28 -#define SUBERR_ASYNC 29 -#define SUBERR_ASYNC_DONE 30 -#define SUBERR_ASYNC_NOFLUSH 31 -#define SUBERR_ASYNC_NOFLUSH_DONE 32 -#define SUBERR_NO_CACHE 33 -#define DBG_SUBERR_ALREADY_DEBUGGING 34 -#define DBG_SUBERR_NOT_DEBUGGING 35 -#define DBG_SUBERR_INVALID_SESSION 36 -#define DBG_SUBERR_BAD_ID 37 -#define DBG_SUBERR_COCREATE 38 -#define DBG_SUBERR_ATTACH 39 - - -#define HTTP_FAIL HTTP_ERROR(500, SUBERR_NONE) -#define HTTP_SUCCESS_NO_PROCESS HTTP_ERROR(200, SUBERR_NO_PROCESS) -#define HTTP_S_FALSE HTTP_ERROR(HTTP_ERROR_CODE(HTTP_SUCCESS), SUBERR_S_FALSE) -#define HTTP_SUCCESS_ASYNC HTTP_ERROR(200, SUBERR_ASYNC) -#define HTTP_SUCCESS_ASYNC_DONE HTTP_ERROR(200, SUBERR_ASYNC_DONE) -#define HTTP_SUCCESS_ASYNC_NOFLUSH HTTP_ERROR(200, SUBERR_ASYNC_NOFLUSH) -#define HTTP_SUCCESS_ASYNC_NOFLUSH_DONE HTTP_ERROR(200, SUBERR_ASYNC_NOFLUSH_DONE) -#define HTTP_SUCCESS_NO_CACHE HTTP_ERROR(200, SUBERR_NO_CACHE) -#define HTTP_OK HTTP_ERROR(200, SUBERR_NONE) -#define HTTP_CONTINUE HTTP_ERROR(100, SUBERR_NONE) - -#define HTTP_CREATED HTTP_ERROR(201, SUBERR_NONE) -#define HTTP_ACCEPTED HTTP_ERROR(202, SUBERR_NONE) -#define HTTP_NON_AUTHORITATIVE HTTP_ERROR(203, SUBERR_NONE) -#define HTTP_NO_CONTENT HTTP_ERROR(204, SUBERR_NONE) -#define HTTP_RESET_CONTENT HTTP_ERROR(205, SUBERR_NONE) -#define HTTP_PARTIAL_CONTENT HTTP_ERROR(206, SUBERR_NONE) - -#define HTTP_MULTIPLE_CHOICES HTTP_ERROR(300, SUBERR_NONE) -#define HTTP_MOVED_PERMANENTLY HTTP_ERROR(301, SUBERR_NONE) -#define HTTP_FOUND HTTP_ERROR(302, SUBERR_NONE) -#define HTTP_SEE_OTHER HTTP_ERROR(303, SUBERR_NONE) -#define HTTP_NOT_MODIFIED HTTP_ERROR(304, SUBERR_NONE) -#define HTTP_USE_PROXY HTTP_ERROR(305, SUBERR_NONE) -#define HTTP_TEMPORARY_REDIRECT HTTP_ERROR(307, SUBERR_NONE) - -#define HTTP_BAD_REQUEST HTTP_ERROR(400, SUBERR_NONE) -#define HTTP_UNAUTHORIZED HTTP_ERROR(401, SUBERR_NONE) -#define HTTP_PAYMENT_REQUIRED HTTP_ERROR(402, SUBERR_NONE) -#define HTTP_FORBIDDEN HTTP_ERROR(403, SUBERR_NONE) -#define HTTP_NOT_FOUND HTTP_ERROR(404, SUBERR_NONE) -#define HTTP_METHOD_NOT_ALLOWED HTTP_ERROR(405, SUBERR_NONE) -#define HTTP_NOT_ACCEPTABLE HTTP_ERROR(406, SUBERR_NONE) -#define HTTP_PROXY_AUTHENTICATION_REQUIRED HTTP_ERROR(407, SUBERR_NONE) -#define HTTP_REQUEST_TIMEOUT HTTP_ERROR(408, SUBERR_NONE) -#define HTTP_CONFLICT HTTP_ERROR(409, SUBERR_NONE) -#define HTTP_GONE HTTP_ERROR(410, SUBERR_NONE) -#define HTTP_LENGTH_REQUIRED HTTP_ERROR(411, SUBERR_NONE) -#define HTTP_PRECONDITION_FAILED HTTP_ERROR(412, SUBERR_NONE) -#define HTTP_REQUEST_ENTITY_TOO_LONG HTTP_ERROR(413, SUBERR_NONE) -#define HTTP_REQUEST_URI_TOO_LONG HTTP_ERROR(414, SUBERR_NONE) -#define HTTP_UNSUPPORTED_MEDIA_TYPE HTTP_ERROR(415, SUBERR_NONE) -#define HTTP_RANGE_NOT_SATISFIABLE HTTP_ERROR(416, SUBERR_NONE) -#define HTTP_EXPECTATION_FAILED HTTP_ERROR(417, SUBERR_NONE) - -#define HTTP_INTERNAL_SERVER_ERROR HTTP_ERROR(500, SUBERR_NONE) -#define HTTP_NOT_IMPLEMENTED HTTP_ERROR(501, SUBERR_NONE) -#define HTTP_BAD_GATEWAY HTTP_ERROR(502, SUBERR_NONE) -#define HTTP_SERVICE_UNAVAILABLE HTTP_ERROR(503, SUBERR_NONE) -#define HTTP_GATEWAY_TIMEOUT HTTP_ERROR(504, SUBERR_NONE) -#define HTTP_VERSION_NOT_SUPPORTED HTTP_ERROR(505, SUBERR_NONE) - -inline bool IsAsyncStatus(HTTP_CODE hcStatus) -{ - return - hcStatus == HTTP_SUCCESS_ASYNC || - hcStatus == HTTP_SUCCESS_ASYNC_DONE || - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH || - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH_DONE; -} - -inline bool IsAsyncContinueStatus(HTTP_CODE hcStatus) -{ - return - hcStatus == HTTP_SUCCESS_ASYNC || - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH; -} - -inline bool IsAsyncDoneStatus(HTTP_CODE hcStatus) -{ - return - hcStatus == HTTP_SUCCESS_ASYNC_DONE || - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH_DONE; -} - -inline bool IsAsyncFlushStatus(HTTP_CODE hcStatus) -{ - return - hcStatus == HTTP_SUCCESS_ASYNC || - hcStatus == HTTP_SUCCESS_ASYNC_DONE; -} - -inline bool IsAsyncNoFlushStatus(HTTP_CODE hcStatus) -{ - return - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH || - hcStatus == HTTP_SUCCESS_ASYNC_NOFLUSH_DONE; -} - -ATL_NOINLINE inline HTTP_CODE AtlsHttpError(WORD wStatus, WORD wSubErr) throw() -{ - return HTTP_ERROR(wStatus, wSubErr); -} - -}; // namespace ATL -#pragma pack(pop) - -#endif // __ATLSERR_H__ diff --git a/ATL90/include/atlsession.h b/ATL90/include/atlsession.h deleted file mode 100644 index 808748b..0000000 --- a/ATL90/include/atlsession.h +++ /dev/null @@ -1,2490 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSESSION_H__ -#define __ATLSESSION_H__ - -#pragma once -#pragma warning(push) -#pragma warning(disable: 4702) // unreachable code - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible - -#ifndef MAX_SESSION_KEY_LEN - #define MAX_SESSION_KEY_LEN 128 -#endif - -#ifndef MAX_VARIABLE_NAME_LENGTH - #define MAX_VARIABLE_NAME_LENGTH 50 -#endif - -#ifndef MAX_VARIABLE_VALUE_LENGTH - #define MAX_VARIABLE_VALUE_LENGTH 1024 -#endif - -#ifndef MAX_CONNECTION_STRING_LEN - #define MAX_CONNECTION_STRING_LEN 2048 -#endif - -#ifndef SESSION_COOKIE_NAME - #define SESSION_COOKIE_NAME "SESSIONID" -#endif - -#ifndef ATL_SESSION_TIMEOUT - #define ATL_SESSION_TIMEOUT 600000 //10 min -#endif - -#ifndef ATL_SESSION_SWEEPER_TIMEOUT - #define ATL_SESSION_SWEEPER_TIMEOUT 1000 // 1sec -#endif - -#define INVALID_DB_SESSION_POS 0x0 -#define ATL_DBSESSION_ID _T("__ATL_SESSION_DB_CONNECTION") - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -// CSessionNameGenerator -// This is a helper class that generates random data for session key -// names. This class tries to use the CryptoApi to generate random -// bytes for the session key name. If the CryptoApi isn't available -// then the CRT rand() is used to generate the random bytes. This -// class's GetNewSessionName member function is used to actually -// generate the session name. -class CSessionNameGenerator : - public CCryptProv -{ -public: - bool m_bCryptNotAvailable; - enum {MIN_SESSION_KEY_LEN=5}; - - CSessionNameGenerator() throw() : - m_bCryptNotAvailable(false) - { - // Note that the crypto api is being - // initialized with no private key - // information - HRESULT hr = InitVerifyContext(); - m_bCryptNotAvailable = FAILED(hr) ? true : false; - } - - // This function creates a new session name and base64 encodes it. - // The base64 encoding algorithm used needs at least MIN_SESSION_KEY_LEN - // bytes to work correctly. Since we stack allocate the temporary - // buffer that holds the key name, the buffer must be less than or equal to - // the MAX_SESSION_KEY_LEN in size. - HRESULT GetNewSessionName(__out_ecount_part_z(*pdwSize, *pdwSize) LPSTR szNewID, __inout DWORD *pdwSize) throw() - { - HRESULT hr = E_FAIL; - - if (!pdwSize) - return E_POINTER; - - if (*pdwSize < MIN_SESSION_KEY_LEN || - *pdwSize > MAX_SESSION_KEY_LEN) - return E_INVALIDARG; - - if (!szNewID) - return E_POINTER; - - BYTE key[MAX_SESSION_KEY_LEN] = {0x0}; - - - // calculate the number of bytes that will fit in the - // buffer we've been passed - DWORD dwDataSize = CalcMaxInputSize(*pdwSize); - - if (dwDataSize && *pdwSize >= (DWORD)(Base64EncodeGetRequiredLength(dwDataSize, - ATL_BASE64_FLAG_NOCRLF))) - { - int dwKeySize = *pdwSize; - hr = GenerateRandomName(key, dwDataSize); - if (SUCCEEDED(hr)) - { - if( Base64Encode(key, - dwDataSize, - szNewID, - &dwKeySize, - ATL_BASE64_FLAG_NOCRLF) ) - { - //null terminate - szNewID[dwKeySize]=0; - *pdwSize = dwKeySize+1; - } - else - hr = E_FAIL; - } - else - { - *pdwSize = (DWORD)(Base64EncodeGetRequiredLength(dwDataSize, - ATL_BASE64_FLAG_NOCRLF)); - return E_OUTOFMEMORY; - } - } - return hr; - } - - DWORD CalcMaxInputSize(DWORD nOutputSize) throw() - { - if (nOutputSize < (DWORD)MIN_SESSION_KEY_LEN) - return 0; - // subtract one from the output size to make room - // for the NULL terminator in the output then - // calculate the biggest number of input bytes that - // when base64 encoded will fit in a buffer of size - // nOutputSize (including base64 padding) - int nInputSize = ((nOutputSize-1)*3)/4; - int factor = ((nInputSize*4)/3)%4; - if (factor) - nInputSize -= factor; - return nInputSize; - } - - - HRESULT GenerateRandomName(BYTE *pBuff, DWORD dwBuffSize) throw() - { - if (!pBuff) - return E_POINTER; - - if (!dwBuffSize) - return E_UNEXPECTED; - - if (!m_bCryptNotAvailable && GetHandle()) - { - // Use the crypto api to generate random data. - return GenRandom(dwBuffSize, pBuff); - } - - // CryptoApi isn't available so we generate - // random data using rand. We seed the random - // number generator with a seed that is a combination - // of bytes from an arbitrary number and the system - // time which changes every millisecond so it will - // be different for every call to this function. - FILETIME ft; - GetSystemTimeAsFileTime(&ft); - static DWORD dwVal = 0x21; - DWORD dwSeed = (dwVal++ << 0x18) | (ft.dwLowDateTime & 0x00ffff00) | dwVal++ & 0x000000ff; - srand(dwSeed); - BYTE *pCurr = pBuff; - // fill buffer with random bytes - for (int i=0; i < (int)dwBuffSize; i++) - { - *pCurr = (BYTE) (rand() & 0x000000ff); - pCurr++; - } - return S_OK; - } -}; - - -// -// CDefaultQueryClass -// returns Query strings for use in SQL queries used -// by the database persisted session service. -class CDefaultQueryClass -{ -public: - LPCTSTR GetSessionRefDelete() throw() - { - return _T("DELETE FROM SessionReferences ") - _T("WHERE SessionID=? AND RefCount <= 0 ") - _T("AND DATEDIFF(millisecond, LastAccess, getdate()) > TimeoutMs"); - } - - LPCTSTR GetSessionRefIsExpired() throw() - { - return _T("SELECT SessionID FROM SessionReferences ") - _T("WHERE (SessionID=?) AND (DATEDIFF(millisecond, LastAccess, getdate()) > TimeoutMs)"); - } - - LPCTSTR GetSessionRefDeleteFinal() throw() - { - return _T("DELETE FROM SessionReferences ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefCreate() throw() - { - return _T("INSERT INTO SessionReferences ") - _T("(SessionID, LastAccess, RefCount, TimeoutMs) ") - _T("VALUES (?, getdate(), 1, ?)"); - } - - LPCTSTR GetSessionRefUpdateTimeout() throw() - { - return _T("UPDATE SessionReferences ") - _T("SET TimeoutMs=? WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefAddRef() throw() - { - return _T("UPDATE SessionReferences ") - _T("SET RefCount=RefCount+1, ") - _T("LastAccess=getdate() ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefRemoveRef() throw() - { - return _T("UPDATE SessionReferences ") - _T("SET RefCount=RefCount-1, ") - _T("LastAccess=getdate() ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefAccess() throw() - { - return _T("UPDATE SessionReferences ") - _T("SET LastAccess=getdate() ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefSelect() throw() - { - return _T("SELECT * FROM SessionReferences ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionRefGetCount() throw() - { - return _T("SELECT COUNT(*) FROM SessionReferences"); - } - - - LPCTSTR GetSessionVarCount() throw() - { - return _T("SELECT COUNT(*) FROM SessionVariables WHERE SessionID=?"); - } - - LPCTSTR GetSessionVarInsert() throw() - { - return _T("INSERT INTO SessionVariables ") - _T("(VariableValue, SessionID, VariableName) ") - _T("VALUES (?, ?, ?)"); - } - - LPCTSTR GetSessionVarUpdate() throw() - { - return _T("UPDATE SessionVariables ") - _T("SET VariableValue=? ") - _T("WHERE SessionID=? AND VariableName=?"); - } - - LPCTSTR GetSessionVarDeleteVar() throw() - { - return _T("DELETE FROM SessionVariables ") - _T("WHERE SessionID=? AND VariableName=?"); - } - - LPCTSTR GetSessionVarDeleteAllVars() throw() - { - return _T("DELETE FROM SessionVariables WHERE (SessionID=?)"); - } - - LPCTSTR GetSessionVarSelectVar()throw() - { - return _T("SELECT SessionID, VariableName, VariableValue ") - _T("FROM SessionVariables ") - _T("WHERE SessionID=? AND VariableName=?"); - } - - LPCTSTR GetSessionVarSelectAllVars() throw() - { - return _T("SELECT SessionID, VariableName, VariableValue ") - _T("FROM SessionVariables ") - _T("WHERE SessionID=?"); - } - - LPCTSTR GetSessionReferencesSet() throw() - { - return _T("UPDATE SessionReferences SET TimeoutMs=?"); - } -}; - - -// Contains the data for the session variable accessors -class CSessionDataBase -{ -public: - TCHAR m_szSessionID[MAX_SESSION_KEY_LEN]; - TCHAR m_VariableName[MAX_VARIABLE_NAME_LENGTH]; - BYTE m_VariableValue[MAX_VARIABLE_VALUE_LENGTH]; - DBLENGTH m_VariableLen; - CSessionDataBase() throw() - { - m_szSessionID[0] = '\0'; - m_VariableName[0] = '\0'; - m_VariableValue[0] = '\0'; - m_VariableLen = 0; - } - HRESULT Assign(LPCTSTR szSessionID, LPCTSTR szVarName, VARIANT *pVal) throw() - { - HRESULT hr = S_OK; - CVariantStream stream; - if ( szSessionID ) - { - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN)< MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_szSessionID, _countof(m_szSessionID), szSessionID); - else - hr = E_OUTOFMEMORY; - } - else - return E_INVALIDARG; - - if (hr == S_OK && szVarName) - if (Checked::tcsnlen(szVarName, MAX_VARIABLE_NAME_LENGTH) < MAX_VARIABLE_NAME_LENGTH) - Checked::tcscpy_s(m_VariableName, _countof(m_VariableName), szVarName); - else - hr = E_OUTOFMEMORY; - - if (hr == S_OK && pVal) - { - hr = stream.InsertVariant(pVal); - if (hr == S_OK) - { - BYTE *pBytes = stream.m_stream; - size_t size = stream.GetVariantSize(); - if (pBytes && size && size < MAX_VARIABLE_VALUE_LENGTH) - { - Checked::memcpy_s(m_VariableValue, MAX_VARIABLE_VALUE_LENGTH, pBytes, size); - m_VariableLen = static_cast(size); - } - else - hr = E_INVALIDARG; - } - } - - return hr; - } -}; - -// Use to select a session variable given the name -// of a session and the name of a variable. -class CSessionDataSelector : public CSessionDataBase -{ -public: - BEGIN_COLUMN_MAP(CSessionDataSelector) - COLUMN_ENTRY(1, m_szSessionID) - COLUMN_ENTRY(2, m_VariableName) - COLUMN_ENTRY_LENGTH(3, m_VariableValue, m_VariableLen) - END_COLUMN_MAP() - BEGIN_PARAM_MAP(CSessionDataSelector) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_szSessionID) - COLUMN_ENTRY(2, m_VariableName) - END_PARAM_MAP() -}; - -// Use to select all session variables given the name of -// of a session. -class CAllSessionDataSelector : public CSessionDataBase -{ -public: - BEGIN_COLUMN_MAP(CAllSessionDataSelector) - COLUMN_ENTRY(1, m_szSessionID) - COLUMN_ENTRY(2, m_VariableName) - COLUMN_ENTRY_LENGTH(3, m_VariableValue, m_VariableLen) - END_COLUMN_MAP() - BEGIN_PARAM_MAP(CAllSessionDataSelector) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_szSessionID) - END_PARAM_MAP() -}; - -// Use to update the value of a session variable -class CSessionDataUpdator : public CSessionDataBase -{ -public: - BEGIN_PARAM_MAP(CSessionDataUpdator) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY_LENGTH(1, m_VariableValue, m_VariableLen) - COLUMN_ENTRY(2, m_szSessionID) - COLUMN_ENTRY(3, m_VariableName) - END_PARAM_MAP() -}; - -// Use to delete a session variable given the -// session name and the name of the variable -class CSessionDataDeletor -{ -public: - CSessionDataDeletor() - { - m_szSessionID[0] = '\0'; - m_VariableName[0] = '\0'; - } - - TCHAR m_szSessionID[MAX_SESSION_KEY_LEN]; - TCHAR m_VariableName[MAX_VARIABLE_NAME_LENGTH]; - HRESULT Assign(LPCTSTR szSessionID, LPCTSTR szVarName) throw() - { - if (szSessionID) - { - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_szSessionID, _countof(m_szSessionID), szSessionID); - else - return E_OUTOFMEMORY; - } - - if (szVarName) - { - if(Checked::tcsnlen(szVarName, MAX_VARIABLE_NAME_LENGTH) < MAX_VARIABLE_NAME_LENGTH) - Checked::tcscpy_s(m_VariableName, _countof(m_VariableName), szVarName); - else - return E_OUTOFMEMORY; - } - return S_OK; - } - - BEGIN_PARAM_MAP(CSessionDataDeletor) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_szSessionID) - COLUMN_ENTRY(2, m_VariableName) - END_PARAM_MAP() -}; - -class CSessionDataDeleteAll -{ -public: - TCHAR m_szSessionID[MAX_SESSION_KEY_LEN]; - HRESULT Assign(LPCTSTR szSessionID) throw() - { - if (!szSessionID) - return E_INVALIDARG; - - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_szSessionID, _countof(m_szSessionID), szSessionID); - else - return E_OUTOFMEMORY; - - return S_OK; - } - - BEGIN_PARAM_MAP(CSessionDataDeleteAll) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_szSessionID) - END_PARAM_MAP() -}; - -// Used for retrieving the count of session variables for -// a given session ID. -class CCountAccessor -{ -public: - LONG m_nCount; - TCHAR m_szSessionID[MAX_SESSION_KEY_LEN]; - CCountAccessor() throw() - { - m_szSessionID[0] = '\0'; - m_nCount = 0; - } - - HRESULT Assign(LPCTSTR szSessionID) throw() - { - if (!szSessionID) - return E_INVALIDARG; - - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_szSessionID, _countof(m_szSessionID), szSessionID); - else - return E_OUTOFMEMORY; - - return S_OK; - } - - BEGIN_COLUMN_MAP(CCountAccessor) - COLUMN_ENTRY(1, m_nCount) - END_COLUMN_MAP() - BEGIN_PARAM_MAP(CCountAccessor) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_szSessionID) - END_PARAM_MAP() -}; - - -// Used for updating entries in the session -// references table, given a session ID -class CSessionRefUpdator -{ -public: - TCHAR m_SessionID[MAX_SESSION_KEY_LEN]; - HRESULT Assign(LPCTSTR szSessionID) throw() - { - if (!szSessionID) - return E_INVALIDARG; - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_SessionID, _countof(m_SessionID), szSessionID); - else - return E_OUTOFMEMORY; - return S_OK; - } - BEGIN_PARAM_MAP(CSessionRefUpdator) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_SessionID) - END_PARAM_MAP() -}; - -class CSessionRefIsExpired -{ -public: - TCHAR m_SessionID[MAX_SESSION_KEY_LEN]; - TCHAR m_SessionIDOut[MAX_SESSION_KEY_LEN]; - HRESULT Assign(LPCTSTR szSessionID) throw() - { - m_SessionIDOut[0]=0; - if (!szSessionID) - return E_INVALIDARG; - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_SessionID, _countof(m_SessionID), szSessionID); - else - return E_OUTOFMEMORY; - return S_OK; - } - BEGIN_COLUMN_MAP(CSessionRefIsExpired) - COLUMN_ENTRY(1, m_SessionIDOut) - END_COLUMN_MAP() - BEGIN_PARAM_MAP(CSessionRefIsExpired) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_SessionID) - END_PARAM_MAP() -}; - -class CSetAllTimeouts -{ -public: - unsigned __int64 m_dwNewTimeout; - HRESULT Assign(unsigned __int64 dwNewValue) - { - m_dwNewTimeout = dwNewValue; - return S_OK; - } - BEGIN_PARAM_MAP(CSetAllTimeouts) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_dwNewTimeout) - END_PARAM_MAP() -}; - -class CSessionRefUpdateTimeout -{ -public: - TCHAR m_SessionID[MAX_SESSION_KEY_LEN]; - unsigned __int64 m_nNewTimeout; - HRESULT Assign(LPCTSTR szSessionID, unsigned __int64 nNewTimeout) throw() - { - if (!szSessionID) - return E_INVALIDARG; - - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_SessionID, _countof(m_SessionID), szSessionID); - else - return E_OUTOFMEMORY; - - m_nNewTimeout = nNewTimeout; - - return S_OK; - } - - BEGIN_PARAM_MAP(CSessionRefUpdateTimeout) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_nNewTimeout) - COLUMN_ENTRY(2, m_SessionID) - END_PARAM_MAP() -}; - -class CSessionRefSelector -{ -public: - TCHAR m_SessionID[MAX_SESSION_KEY_LEN]; - int m_RefCount; - HRESULT Assign(LPCTSTR szSessionID) throw() - { - if (!szSessionID) - return E_INVALIDARG; - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_SessionID, _countof(m_SessionID), szSessionID); - else - return E_OUTOFMEMORY; - return S_OK; - } - BEGIN_COLUMN_MAP(CSessionRefSelector) - COLUMN_ENTRY(1, m_SessionID) - COLUMN_ENTRY(3, m_RefCount) - END_COLUMN_MAP() - BEGIN_PARAM_MAP(CSessionRefSelector) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_SessionID) - END_PARAM_MAP() -}; - -class CSessionRefCount -{ -public: - LONG m_nCount; - BEGIN_COLUMN_MAP(CSessionRefCount) - COLUMN_ENTRY(1, m_nCount) - END_COLUMN_MAP() -}; - -// Used for creating new entries in the session -// references table. -class CSessionRefCreator -{ -public: - TCHAR m_SessionID[MAX_SESSION_KEY_LEN]; - unsigned __int64 m_TimeoutMs; - HRESULT Assign(LPCTSTR szSessionID, unsigned __int64 timeout) throw() - { - if (!szSessionID) - return E_INVALIDARG; - if (Checked::tcsnlen(szSessionID, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - { - Checked::tcscpy_s(m_SessionID, _countof(m_SessionID), szSessionID); - m_TimeoutMs = timeout; - } - else - return E_OUTOFMEMORY; - return S_OK; - } - BEGIN_PARAM_MAP(CSessionRefCreator) - SET_PARAM_TYPE(DBPARAMIO_INPUT) - COLUMN_ENTRY(1, m_SessionID) - COLUMN_ENTRY(2, m_TimeoutMs) - END_PARAM_MAP() -}; - - -// CDBSession -// This session persistance class persists session variables to -// an OLEDB datasource. The following table gives a general description -// of the table schema for the tables this class uses. -// -// TableName: SessionVariables -// Column Name Type Description -// 1 SessionID char[MAX_SESSION_KEY_LEN] Session Key name -// 2 VariableName char[MAX_VARIABLE_NAME_LENGTH] Variable Name -// 3 VariableValue varbinary[MAX_VARIABLE_VALUE_LENGTH] Variable Value - -// -// TableName: SessionReferences -// Column Name Type Description -// 1 SessionID char[MAX_SESSION_KEY_LEN] Session Key Name. -// 2 LastAccess datetime Date and time of last access to this session. -// 3 RefCount int Current references on this session. -// 4 TimeoutMS int Timeout value for the session in milli seconds - -typedef bool (*PFN_GETPROVIDERINFO)(DWORD_PTR, wchar_t **); - -template -class CDBSession: - public ISession, - public CComObjectRootEx - -{ - typedef CCommand > iterator_accessor; -public: - typedef QueryClass DBQUERYCLASS_TYPE; - BEGIN_COM_MAP(CDBSession) - COM_INTERFACE_ENTRY(ISession) - END_COM_MAP() - - CDBSession() throw(): - m_dwTimeout(ATL_SESSION_TIMEOUT) - { - m_szSessionName[0] = '\0'; - } - - ~CDBSession() throw() - { - } - - void FinalRelease()throw() - { - SessionUnlock(); - } - - STDMETHOD(SetVariable)(LPCSTR szName, VARIANT Val) throw() - { - HRESULT hr = E_FAIL; - if (!szName) - return E_INVALIDARG; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // Update the last access time for this session - hr = Access(); - if (hr != S_OK) - return hr; - - // Allocate an updator command and fill out it's input parameters. - CCommand > command; - _ATLTRY - { - CA2CT name(szName); - hr = command.Assign(m_szSessionName, name, &Val); - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - if (hr != S_OK) - return hr; - - // Try an update. Update will fail if the variable is not already there. - DBROWCOUNT nRows = 0; - - hr = command.Open(dataconn, - m_QueryObj.GetSessionVarUpdate(), - NULL, &nRows, DBGUID_DEFAULT, false); - if (hr == S_OK && nRows <= 0) - hr = E_UNEXPECTED; - if (hr != S_OK) - { - // Try an insert - hr = command.Open(dataconn, m_QueryObj.GetSessionVarInsert(), NULL, &nRows, DBGUID_DEFAULT, false); - if (hr == S_OK && nRows <=0) - hr = E_UNEXPECTED; - } - - return hr; - } - - // Warning: For string data types, depending on the configuration of - // your database, strings might be returned with trailing white space. - STDMETHOD(GetVariable)(LPCSTR szName, VARIANT *pVal) throw() - { - HRESULT hr = E_FAIL; - if (!szName) - return E_INVALIDARG; - if (pVal) - VariantInit(pVal); - else - return E_POINTER; - - // Get the data connection for this thread - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // Update the last access time for this session - hr = Access(); - if (hr != S_OK) - return hr; - - // Allocate a command a fill out it's input parameters. - CCommand > command; - _ATLTRY - { - CA2CT name(szName); - hr = command.Assign(m_szSessionName, name, NULL); - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - - if (hr == S_OK) - { - hr = command.Open(dataconn, m_QueryObj.GetSessionVarSelectVar()); - if (SUCCEEDED(hr)) - { - if ( S_OK == (hr = command.MoveFirst())) - { - CStreamOnByteArray stream(command.m_VariableValue); - CComVariant vOut; - hr = vOut.ReadFromStream(static_cast(&stream)); - if (hr == S_OK) - hr = vOut.Detach(pVal); - } - } - } - return hr; - } - - STDMETHOD(RemoveVariable)(LPCSTR szName) throw() - { - HRESULT hr = E_FAIL; - if (!szName) - return E_INVALIDARG; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // update the last access time for this session - hr = Access(); - if (hr != S_OK) - return hr; - - // allocate a command and set it's input parameters - CCommand > command; - _ATLTRY - { - CA2CT name(szName); - hr = command.Assign(m_szSessionName, name); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - // execute the command - DBROWCOUNT nRows = 0; - if (hr == S_OK) - hr = command.Open(dataconn, m_QueryObj.GetSessionVarDeleteVar(), - NULL, &nRows, DBGUID_DEFAULT, false); - if (hr == S_OK && nRows <= 0) - hr = E_FAIL; - return hr; - } - - // Gives the count of rows in the table for this session ID. - STDMETHOD(GetCount)(long *pnCount) throw() - { - HRESULT hr = S_OK; - if (pnCount) - *pnCount = 0; - else - return E_POINTER; - - // Get the database connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - hr = Access(); - if (hr != S_OK) - return hr; - CCommand > command; - - hr = command.Assign(m_szSessionName); - if (hr == S_OK) - { - hr = command.Open(dataconn, m_QueryObj.GetSessionVarCount()); - if (hr == S_OK) - { - if (S_OK == (hr = command.MoveFirst())) - { - *pnCount = command.m_nCount; - hr = S_OK; - } - } - } - return hr; - } - - STDMETHOD(RemoveAllVariables)() throw() - { - HRESULT hr = E_UNEXPECTED; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - CCommand > command; - hr = command.Assign(m_szSessionName); - if (hr != S_OK) - return hr; - - // delete all session variables - hr = command.Open(dataconn, m_QueryObj.GetSessionVarDeleteAllVars(), NULL, NULL, DBGUID_DEFAULT, false); - return hr; - } - - // Iteration of variables works by taking a snapshot - // of the sessions at the point in time BeginVariableEnum - // is called, and then keeping an index variable that you use to - // move through the snapshot rowset. It is important to know - // that the handle returned in phEnum is not thread safe. It - // should only be used by the calling thread. - STDMETHOD(BeginVariableEnum)(POSITION *pPOS, HSESSIONENUM *phEnum) throw() - { - HRESULT hr = E_FAIL; - if (!pPOS) - return E_POINTER; - - if (phEnum) - *phEnum = NULL; - else - return E_POINTER; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // Update the last access time for this session. - hr = Access(); - if (hr != S_OK) - return hr; - - // Allocate a new iterator accessor and initialize it's input parameters. - iterator_accessor *pIteratorAccessor = NULL; - ATLTRYALLOC(pIteratorAccessor = new iterator_accessor); - if (!pIteratorAccessor) - return E_OUTOFMEMORY; - - hr = pIteratorAccessor->Assign(m_szSessionName, NULL, NULL); - if (hr == S_OK) - { - // execute the command and move to the first row of the recordset. - hr = pIteratorAccessor->Open(dataconn, - m_QueryObj.GetSessionVarSelectAllVars()); - if (hr == S_OK) - { - hr = pIteratorAccessor->MoveFirst(); - if (hr == S_OK) - { - *pPOS = (POSITION) INVALID_DB_SESSION_POS + 1; - *phEnum = reinterpret_cast(pIteratorAccessor); - } - } - - if (hr != S_OK) - { - *pPOS = INVALID_DB_SESSION_POS; - *phEnum = NULL; - delete pIteratorAccessor; - } - } - return hr; - } - - // The values for hEnum and pPos must have been initialized in a previous - // call to BeginVariableEnum. On success, the out variant will hold the next - // variable - STDMETHOD(GetNextVariable)(POSITION *pPOS, VARIANT *pVal, HSESSIONENUM hEnum, LPSTR szName=NULL, DWORD dwLen=0) throw() - { - if (!pPOS) - return E_INVALIDARG; - - if (pVal) - VariantInit(pVal); - else - return E_POINTER; - - if (!hEnum) - return E_UNEXPECTED; - - if (*pPOS <= INVALID_DB_SESSION_POS) - return E_UNEXPECTED; - - iterator_accessor *pIteratorAccessor = reinterpret_cast(hEnum); - - // update the last access time. - HRESULT hr = Access(); - - POSITION posCurrent = *pPOS; - - if (szName) - { - // caller wants entry name - _ATLTRY - { - CT2CA szVarName(pIteratorAccessor->m_VariableName); - if (szVarName != NULL && dwLen > Checked::strnlen(szVarName, dwLen)) - { - Checked::strcpy_s(szName, dwLen, szVarName); - } - else - hr = E_OUTOFMEMORY; // buffer not big enough - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - - } - - if (hr == S_OK) - { - CStreamOnByteArray stream(pIteratorAccessor->m_VariableValue); - CComVariant vOut; - hr = vOut.ReadFromStream(static_cast(&stream)); - if (hr == S_OK) - vOut.Detach(pVal); - else - return hr; - } - else - return hr; - - hr = pIteratorAccessor->MoveNext(); - *pPOS = ++posCurrent; - - if (hr == DB_S_ENDOFROWSET) - { - // We're done iterating, reset everything - *pPOS = INVALID_DB_SESSION_POS; - hr = S_OK; - } - - if (hr != S_OK) - { - VariantClear(pVal); - } - return hr; - } - - // CloseEnum frees up any resources allocated by the iterator - STDMETHOD(CloseEnum)(HSESSIONENUM hEnum) throw() - { - iterator_accessor *pIteratorAccessor = reinterpret_cast(hEnum); - if (!pIteratorAccessor) - return E_INVALIDARG; - pIteratorAccessor->Close(); - delete pIteratorAccessor; - return S_OK; - } - - // - // Returns S_FALSE if it's not expired - // S_OK if it is expired and an error HRESULT - // if an error occurred. - STDMETHOD(IsExpired)() throw() - { - HRESULT hrRet = S_FALSE; - HRESULT hr = E_UNEXPECTED; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - CCommand > command; - hr = command.Assign(m_szSessionName); - if (hr != S_OK) - return hr; - - hr = command.Open(dataconn, m_QueryObj.GetSessionRefIsExpired(), - NULL, NULL, DBGUID_DEFAULT, true); - if (hr == S_OK) - { - if (S_OK == command.MoveFirst()) - { - if (!_tcscmp(command.m_SessionIDOut, m_szSessionName)) - hrRet = S_OK; - } - } - - if (hr == S_OK) - return hrRet; - return hr; - } - - STDMETHOD(SetTimeout)(unsigned __int64 dwNewTimeout) throw() - { - HRESULT hr = E_UNEXPECTED; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // allocate a command and set it's input parameters - CCommand > command; - hr = command.Assign(m_szSessionName, dwNewTimeout); - if (hr != S_OK) - return hr; - - hr = command.Open(dataconn, m_QueryObj.GetSessionRefUpdateTimeout(), - NULL, NULL, DBGUID_DEFAULT, false); - - return hr; - } - - // SessionLock increments the session reference count for this session. - // If there is not a session by this name in the session references table, - // a new session entry is created in the the table. - HRESULT SessionLock() throw() - { - HRESULT hr = E_UNEXPECTED; - if (!m_szSessionName || m_szSessionName[0]==0) - return hr; // no session to lock. - - // retrieve the data connection for this thread - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // first try to update a session with this name - DBROWCOUNT nRows = 0; - CCommand > updator; - if (S_OK == updator.Assign(m_szSessionName)) - { - if (S_OK != (hr = updator.Open(dataconn, m_QueryObj.GetSessionRefAddRef(), - NULL, &nRows, DBGUID_DEFAULT, false)) || - nRows == 0) - { - // No session to update. Use the creator accessor - // to create a new session reference. - CCommand > creator; - hr = creator.Assign(m_szSessionName, m_dwTimeout); - if (hr == S_OK) - hr = creator.Open(dataconn, m_QueryObj.GetSessionRefCreate(), - NULL, &nRows, DBGUID_DEFAULT, false); - } - } - - // We should have been able to create or update a session. - ATLASSERT(nRows > 0); - if (hr == S_OK && nRows <= 0) - hr = E_UNEXPECTED; - - return hr; - } - - // SessionUnlock decrements the session RefCount for this session. - // Sessions cannot be removed from the database unless the session - // refcount is 0 - HRESULT SessionUnlock() throw() - { - HRESULT hr = E_UNEXPECTED; - if (!m_szSessionName || - m_szSessionName[0]==0) - return hr; - - // get the data connection for this thread - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // The session must exist at this point in order to unlock it - // so we can just use the session updator here. - DBROWCOUNT nRows = 0; - CCommand > updator; - hr = updator.Assign(m_szSessionName); - if (hr == S_OK) - { - hr = updator.Open( dataconn, - m_QueryObj.GetSessionRefRemoveRef(), - NULL, - &nRows, - DBGUID_DEFAULT, - false); - } - if (hr != S_OK) - return hr; - - // delete the session from the database if - // nobody else is using it and it's expired. - hr = FreeSession(); - return hr; - } - - // Access updates the last access time for the session. The access - // time for sessions is updated using the SQL GETDATE function on the - // database server so that all clients will be using the same clock - // to compare access times against. - HRESULT Access() throw() - { - HRESULT hr = E_UNEXPECTED; - - if (!m_szSessionName || - m_szSessionName[0]==0) - return hr; // no session to access - - // get the data connection for this thread - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // The session reference entry in the references table must - // be created prior to calling this function so we can just - // use an updator to update the current entry. - CCommand > updator; - - DBROWCOUNT nRows = 0; - hr = updator.Assign(m_szSessionName); - if (hr == S_OK) - { - hr = updator.Open( dataconn, - m_QueryObj.GetSessionRefAccess(), - NULL, - &nRows, - DBGUID_DEFAULT, - false); - } - - ATLASSERT(nRows > 0); - if (hr == S_OK && nRows <= 0) - hr = E_UNEXPECTED; - return hr; - } - - // If the session is expired and it's reference is 0, - // it can be deleted. SessionUnlock calls this function to - // unlock the session and delete it after we release a session - // lock. Note that our SQL command will only delete the session - // if it is expired and it's refcount is <= 0 - HRESULT FreeSession() throw() - { - HRESULT hr = E_UNEXPECTED; - if (!m_szSessionName || - m_szSessionName[0]==0) - return hr; - - // Get the data connection for this thread. - CDataConnection dataconn; - hr = GetSessionConnection(&dataconn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - CCommand > updator; - - // The SQL for this command only deletes the - // session reference from the references table if it's access - // count is 0 and it has expired. - return updator.Open(dataconn, - m_QueryObj.GetSessionRefDelete(), - NULL, - NULL, - DBGUID_DEFAULT, - false); - } - - // Initialize is called each time a new session is created. - HRESULT Initialize( LPCSTR szSessionName, - IServiceProvider *pServiceProvider, - DWORD_PTR dwCookie, - PFN_GETPROVIDERINFO pfnInfo) throw() - { - if (!szSessionName) - return E_INVALIDARG; - - if (!pServiceProvider) - return E_INVALIDARG; - - if (!pfnInfo) - return E_INVALIDARG; - - m_pfnInfo = pfnInfo; - m_dwProvCookie = dwCookie; - m_spServiceProvider = pServiceProvider; - - _ATLTRY - { - CA2CT tcsSessionName(szSessionName); - if (Checked::tcsnlen(tcsSessionName, MAX_SESSION_KEY_LEN) < MAX_SESSION_KEY_LEN) - Checked::tcscpy_s(m_szSessionName, _countof(m_szSessionName), tcsSessionName); - else - return E_OUTOFMEMORY; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - return SessionLock(); - } - - HRESULT GetSessionConnection(CDataConnection *pConn, - IServiceProvider *pProv) throw() - { - if (!pProv) - return E_INVALIDARG; - - if (!m_pfnInfo || - !m_dwProvCookie) - return E_UNEXPECTED; - - wchar_t *wszProv = NULL; - if (m_pfnInfo(m_dwProvCookie, &wszProv) && wszProv!=NULL) - { - return GetDataSource(pProv, - ATL_DBSESSION_ID, - wszProv, - pConn); - } - return E_FAIL; - } - - -protected: - TCHAR m_szSessionName[MAX_SESSION_KEY_LEN]; - unsigned __int64 m_dwTimeout; - CComPtr m_spServiceProvider; - DWORD_PTR m_dwProvCookie; - PFN_GETPROVIDERINFO m_pfnInfo; - DBQUERYCLASS_TYPE m_QueryObj; -}; // CDBSession - - -template > -class CDBSessionServiceImplT -{ - wchar_t m_szConnectionString[MAX_CONNECTION_STRING_LEN]; - CComPtr m_spServiceProvider; - typename TDBSession::DBQUERYCLASS_TYPE m_QueryObj; -public: - typedef const wchar_t* SERVICEIMPL_INITPARAM_TYPE; - CDBSessionServiceImplT() throw() - { - m_dwTimeout = ATL_SESSION_TIMEOUT; - m_szConnectionString[0] = '\0'; - } - - static bool GetProviderInfo(DWORD_PTR dwProvCookie, wchar_t **ppszProvInfo) throw() - { - if (dwProvCookie && - ppszProvInfo) - { - CDBSessionServiceImplT *pSvc = - reinterpret_cast*>(dwProvCookie); - *ppszProvInfo = pSvc->m_szConnectionString; - return true; - } - return false; - } - - HRESULT GetSessionConnection(CDataConnection *pConn, - IServiceProvider *pProv) throw() - { - if (!pProv) - return E_INVALIDARG; - - if(!m_szConnectionString[0]) - return E_UNEXPECTED; - - return GetDataSource(pProv, - ATL_DBSESSION_ID, - m_szConnectionString, - pConn); - } - - HRESULT Initialize(SERVICEIMPL_INITPARAM_TYPE pData, - IServiceProvider *pProvider, - unsigned __int64 dwInitialTimeout) throw() - { - if (!pData || !pProvider) - return E_INVALIDARG; - - if (Checked::wcsnlen(pData, MAX_CONNECTION_STRING_LEN) < MAX_CONNECTION_STRING_LEN) - { - Checked::wcscpy_s(m_szConnectionString, _countof(m_szConnectionString), pData); - } - else - return E_OUTOFMEMORY; - - m_dwTimeout = dwInitialTimeout; - m_spServiceProvider = pProvider; - return S_OK; - } - - HRESULT CreateNewSession(__out_ecount_part_z(*pdwSize, *pdwSize) LPSTR szNewID, __inout DWORD *pdwSize, __deref_out ISession** ppSession) throw() - { - HRESULT hr = E_FAIL; - CComObject *pNewSession = NULL; - - if (!pdwSize) - return E_POINTER; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - if (szNewID) - *szNewID = NULL; - else - return E_INVALIDARG; - - - // Create new session - CComObject::CreateInstance(&pNewSession); - if (pNewSession == NULL) - return E_OUTOFMEMORY; - - // Create a session name and initialize the object - hr = m_SessionNameGenerator.GetNewSessionName(szNewID, pdwSize); - if (hr == S_OK) - { - hr = pNewSession->Initialize(szNewID, - m_spServiceProvider, - reinterpret_cast(this), - GetProviderInfo); - if (hr == S_OK) - { - // we don't hold a reference to the object - hr = pNewSession->QueryInterface(ppSession); - } - } - - if (hr != S_OK) - delete pNewSession; - return hr; - } - - HRESULT CreateNewSessionByName(__in_z LPSTR szNewID, __deref_out ISession** ppSession) throw() - { - HRESULT hr = E_FAIL; - CComObject *pNewSession = NULL; - - if (!szNewID || *szNewID == 0) - return E_INVALIDARG; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - // Create new session - CComObject::CreateInstance(&pNewSession); - if (pNewSession == NULL) - return E_OUTOFMEMORY; - - hr = pNewSession->Initialize(szNewID, - m_spServiceProvider, - reinterpret_cast(this), - GetProviderInfo); - if (hr == S_OK) - { - // we don't hold a reference to the object - hr = pNewSession->QueryInterface(ppSession); - } - - - if (hr != S_OK) - delete pNewSession; - return hr; - } - - - HRESULT GetSession(LPCSTR szID, ISession **ppSession) throw() - { - HRESULT hr = E_FAIL; - if (!szID) - return E_INVALIDARG; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - CComObject *pNewSession = NULL; - - // Check the DB to see if the session ID is a valid session - _ATLTRY - { - CA2CT session(szID); - hr = IsValidSession(session); - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - if (hr == S_OK) - { - // Create new session object to represent this session - CComObject::CreateInstance(&pNewSession); - if (pNewSession == NULL) - return E_OUTOFMEMORY; - - hr = pNewSession->Initialize(szID, - m_spServiceProvider, - reinterpret_cast(this), - GetProviderInfo); - if (hr == S_OK) - { - // we don't hold a reference to the object - hr = pNewSession->QueryInterface(ppSession); - } - } - - if (hr != S_OK && pNewSession) - delete pNewSession; - return hr; - } - - HRESULT CloseSession(LPCSTR szID) throw() - { - if (!szID) - return E_INVALIDARG; - - CDataConnection conn; - HRESULT hr = GetSessionConnection(&conn, - m_spServiceProvider); - if (hr != S_OK) - return hr; - - // set up accessors - CCommand > updator; - CCommand > command; - _ATLTRY - { - CA2CT session(szID); - hr = updator.Assign(session); - if (hr == S_OK) - hr = command.Assign(session); - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - - if (hr == S_OK) - { - // delete all session variables (may not be any!) - hr = command.Open(conn, - m_QueryObj.GetSessionVarDeleteAllVars(), - NULL, - NULL, - DBGUID_DEFAULT, - false); - if (hr == S_OK) - { - DBROWCOUNT nRows = 0; - nRows = 0; - // delete references in the session references table - hr = updator.Open(conn, - m_QueryObj.GetSessionRefDeleteFinal(), - NULL, - &nRows, - DBGUID_DEFAULT, - false); - if (nRows == 0) - hr = E_UNEXPECTED; - } - } - return hr; - } - - HRESULT SetSessionTimeout(unsigned __int64 nTimeout) throw() - { - // Get the data connection for this thread - CDataConnection conn; - - HRESULT hr = GetSessionConnection(&conn, m_spServiceProvider); - if (hr != S_OK) - return hr; - - // all sessions get the same timeout - CCommand > command; - hr = command.Assign(nTimeout); - if (hr == S_OK) - { - hr = command.Open(conn, m_QueryObj.GetSessionReferencesSet(), - NULL, - NULL, - DBGUID_DEFAULT, - false); - if (hr == S_OK) - { - m_dwTimeout = nTimeout; - } - } - return hr; - } - - - HRESULT GetSessionTimeout(unsigned __int64* pnTimeout) throw() - { - if (pnTimeout) - *pnTimeout = m_dwTimeout; - else - return E_INVALIDARG; - - return S_OK; - } - - HRESULT GetSessionCount(DWORD *pnCount) throw() - { - if (pnCount) - *pnCount = 0; - else - return E_POINTER; - - CCommand > command; - CDataConnection conn; - HRESULT hr = GetSessionConnection(&conn, - m_spServiceProvider); - if (hr != S_OK) - return hr; - - hr = command.Open(conn, - m_QueryObj.GetSessionRefGetCount()); - if (hr == S_OK) - { - hr = command.MoveFirst(); - if (hr == S_OK) - { - *pnCount = (DWORD)command.m_nCount; - } - } - - return hr; - } - - void ReleaseAllSessions() throw() - { - // nothing to do - } - - void SweepSessions() throw() - { - // nothing to do - } - - - // Helpers - HRESULT IsValidSession(LPCTSTR szID) throw() - { - if (!szID) - return E_INVALIDARG; - // Look in the sessionreferences table to see if there is an entry - // for this session. - if (m_szConnectionString[0] == 0) - return E_UNEXPECTED; - - CDataConnection conn; - HRESULT hr = GetSessionConnection(&conn, - m_spServiceProvider); - if (hr != S_OK) - return hr; - - // Check the session references table to see if - // this is a valid session - CCommand > selector; - hr = selector.Assign(szID); - if (hr != S_OK) - return hr; - - hr = selector.Open(conn, - m_QueryObj.GetSessionRefSelect(), - NULL, - NULL, - DBGUID_DEFAULT, - true); - if (hr == S_OK) - return selector.MoveFirst(); - return hr; - } - - CSessionNameGenerator m_SessionNameGenerator; // Object for generating session names - unsigned __int64 m_dwTimeout; -}; // CDBSessionServiceImplT - -typedef CDBSessionServiceImplT<> CDBSessionServiceImpl; - - - - - -////////////////////////////////////////////////////////////////// -// -// In-memory persisted session -// -////////////////////////////////////////////////////////////////// - -// In-memory persisted session service keeps a pointer -// to the session obejct around in memory. The pointer is -// contained in a CComPtr, which is stored in a CAtlMap, so -// we have to have a CElementTraits class for that. -typedef CComPtr SESSIONPTRTYPE; - -template<> -class CElementTraits : - public CElementTraitsBase -{ -public: - static ULONG Hash( INARGTYPE obj ) throw() - { - return( (ULONG)(ULONG_PTR)obj.p); - } - - static BOOL CompareElements( OUTARGTYPE element1, OUTARGTYPE element2 ) throw() - { - return element1.IsEqualObject(element2.p) ? TRUE : FALSE; - } - - static int CompareElementsOrdered( INARGTYPE , INARGTYPE ) throw() - { - ATLASSERT(0); // NOT IMPLEMENTED - return 0; - } -}; - - -// CMemSession -// This session persistance class persists session variables in memory. -// Note that this type of persistance should only be used on single server -// web sites. -class CMemSession : - public ISession, - public CComObjectRootEx -{ -public: - BEGIN_COM_MAP(CMemSession) - COM_INTERFACE_ENTRY(ISession) - END_COM_MAP() - - CMemSession() throw(...) - { - } - virtual ~CMemSession() - { - } - - STDMETHOD(GetVariable)(LPCSTR szName, VARIANT *pVal) throw() - { - if (!szName) - return E_INVALIDARG; - - if (pVal) - VariantInit(pVal); - else - return E_POINTER; - - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - hr = E_FAIL; - _ATLTRY - { - CComVariant val; - if (m_Variables.Lookup(szName, val)) - { - hr = VariantCopy(pVal, &val); - } - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - } - return hr; - } - - STDMETHOD(SetVariable)(LPCSTR szName, VARIANT vNewVal) throw() - { - if (!szName) - return E_INVALIDARG; - - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - _ATLTRY - { - hr = m_Variables.SetAt(szName, vNewVal) ? S_OK : E_FAIL; - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - } - return hr; - } - - STDMETHOD(RemoveVariable)(LPCSTR szName) throw() - { - if (!szName) - return E_INVALIDARG; - - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - _ATLTRY - { - hr = m_Variables.RemoveKey(szName) ? S_OK : E_FAIL; - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - } - return hr; - } - - STDMETHOD(GetCount)(long *pnCount) throw() - { - if (pnCount) - *pnCount = 0; - else - return E_POINTER; - - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - *pnCount = (long) m_Variables.GetCount(); - } - return hr; - } - - STDMETHOD(RemoveAllVariables)() throw() - { - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - m_Variables.RemoveAll(); - } - - return hr; - } - - STDMETHOD(BeginVariableEnum)(POSITION *pPOS, HSESSIONENUM *phEnumHandle=NULL) throw() - { - if (phEnumHandle) - *phEnumHandle = NULL; - - if (pPOS) - *pPOS = NULL; - else - return E_POINTER; - - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - *pPOS = m_Variables.GetStartPosition(); - } - return hr; - } - - STDMETHOD(GetNextVariable)(POSITION *pPOS, VARIANT *pVal, - HSESSIONENUM hEnum=NULL, - LPSTR szName=NULL, - DWORD dwLen=0 ) throw() - { - (hEnum); // Unused! - if (pVal) - VariantInit(pVal); - else - return E_POINTER; - - if (!pPOS) - return E_POINTER; - - CComVariant val; - POSITION pos = *pPOS; - HRESULT hr = Access(); - if (hr == S_OK) - { - CSLockType lock(m_cs, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - hr = E_FAIL; - _ATLTRY - { - if (szName) - { - CStringA strName = m_Variables.GetKeyAt(pos); - if (strName.GetLength()) - { - if (dwLen > (DWORD)strName.GetLength()) - { - Checked::strcpy_s(szName, dwLen, strName); - hr = S_OK; - } - else - hr = E_OUTOFMEMORY; - } - } - else - hr = S_OK; - - if (hr == S_OK) - { - val = m_Variables.GetNextValue(pos); - hr = VariantCopy(pVal, &val); - if (hr == S_OK) - *pPOS = pos; - } - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - } - return hr; - } - - STDMETHOD(CloseEnum)(HSESSIONENUM /*hEnumHandle*/) throw() - { - return S_OK; - } - - STDMETHOD(IsExpired)() throw() - { - CTime tmNow = CTime::GetCurrentTime(); - CTimeSpan span = tmNow-m_tLastAccess; - if ((unsigned __int64)((span.GetTotalSeconds()*1000)) > m_dwTimeout) - return S_OK; - return S_FALSE; - } - - HRESULT Access() throw() - { - // We lock here to protect against multiple threads - // updating the same member concurrently. - CSLockType lock(m_cs, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - return hr; - m_tLastAccess = CTime::GetCurrentTime(); - return S_OK; - } - - STDMETHOD(SetTimeout)(unsigned __int64 dwNewTimeout) throw() - { - // We lock here to protect against multiple threads - // updating the same member concurrently - CSLockType lock(m_cs, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - return hr; - m_dwTimeout = dwNewTimeout; - return S_OK; - } - - HRESULT SessionLock() throw() - { - Access(); - return S_OK; - } - - HRESULT SessionUnlock() throw() - { - return S_OK; - } - -protected: - typedef CAtlMap > VarMapType; - unsigned __int64 m_dwTimeout; - CTime m_tLastAccess; - VarMapType m_Variables; - CComAutoCriticalSection m_cs; - typedef CComCritSecLock CSLockType; -}; // CMemSession - - -// -// CMemSessionServiceImpl -// Implements the service part of in-memory persisted session services. -// -class CMemSessionServiceImpl -{ -public: - typedef void* SERVICEIMPL_INITPARAM_TYPE; - CMemSessionServiceImpl() throw() - { - m_dwTimeout = ATL_SESSION_TIMEOUT; - } - - ~CMemSessionServiceImpl() throw() - { - m_CritSec.Term(); - } - - HRESULT CreateNewSession(__out_ecount_part_z(*pdwSize, *pdwSize) LPSTR szNewID, __inout DWORD *pdwSize, __deref_out_opt ISession** ppSession) throw() - { - HRESULT hr = E_FAIL; - CComObject *pNewSession = NULL; - - if (!szNewID) - return E_INVALIDARG; - - if (!pdwSize) - return E_POINTER; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - _ATLTRY - { - // Create new session - CComObject::CreateInstance(&pNewSession); - if (pNewSession == NULL) - return E_OUTOFMEMORY; - - // Initialize and add to list of CSessionData - hr = m_SessionNameGenerator.GetNewSessionName(szNewID, pdwSize); - - if (SUCCEEDED(hr)) - { - CComPtr spSession; - hr = pNewSession->QueryInterface(&spSession); - if (SUCCEEDED(hr)) - { - pNewSession->SetTimeout(m_dwTimeout); - pNewSession->Access(); - CSLockType lock(m_CritSec, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - hr = m_Sessions.SetAt(szNewID, spSession) != NULL ? S_OK : E_FAIL; - if (hr == S_OK) - *ppSession = spSession.Detach(); - } - } - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - - return hr; - - } - - HRESULT CreateNewSessionByName(__in_z LPSTR szNewID, __deref_out_opt ISession** ppSession) throw() - { - HRESULT hr = E_FAIL; - CComObject *pNewSession = NULL; - - if (!szNewID || *szNewID == 0) - return E_INVALIDARG; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - CComPtr spSession; - // If the session already exists, you get a pointer to the - // existing session. You can't have multiple entries with the - // same name in CAtlMap - hr = GetSession(szNewID, &spSession); - if (hr == S_OK) - { - *ppSession = spSession.Detach(); - return hr; - } - - _ATLTRY - { - // Create new session - CComObject::CreateInstance(&pNewSession); - if (pNewSession == NULL) - return E_OUTOFMEMORY; - - - hr = pNewSession->QueryInterface(&spSession); - if (SUCCEEDED(hr)) - { - pNewSession->SetTimeout(m_dwTimeout); - pNewSession->Access(); - CSLockType lock(m_CritSec, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - hr = m_Sessions.SetAt(szNewID, spSession) != NULL ? S_OK : E_FAIL; - - if (hr == S_OK) - *ppSession = spSession.Detach(); - } - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - - return hr; - - } - - HRESULT GetSession(LPCSTR szID, ISession **ppSession) throw() - { - HRESULT hr = E_FAIL; - SessMapType::CPair *pPair = NULL; - - if (ppSession) - *ppSession = NULL; - else - return E_POINTER; - - if (!szID) - return E_INVALIDARG; - - CSLockType lock(m_CritSec, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - hr = E_FAIL; - _ATLTRY - { - pPair = m_Sessions.Lookup(szID); - if (pPair) // the session exists and is in our local map of sessions - { - hr = pPair->m_value.QueryInterface(ppSession); - } - } - _ATLCATCHALL() - { - return E_UNEXPECTED; - } - - return hr; - } - - HRESULT CloseSession(LPCSTR szID) throw() - { - if (!szID) - return E_INVALIDARG; - - HRESULT hr = E_FAIL; - CSLockType lock(m_CritSec, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - _ATLTRY - { - hr = m_Sessions.RemoveKey(szID) ? S_OK : E_UNEXPECTED; - } - _ATLCATCHALL() - { - hr = E_UNEXPECTED; - } - return hr; - } - - void SweepSessions() throw() - { - POSITION posRemove = NULL; - const SessMapType::CPair *pPair = NULL; - POSITION pos = NULL; - - CSLockType lock(m_CritSec, false); - if (FAILED(lock.Lock())) - return; - pos = m_Sessions.GetStartPosition(); - while (pos) - { - posRemove = pos; - pPair = m_Sessions.GetNext(pos); - if (pPair) - { - if (pPair->m_value.p && - S_OK == pPair->m_value->IsExpired()) - { - // remove our reference on the session - m_Sessions.RemoveAtPos(posRemove); - } - } - } - } - - HRESULT SetSessionTimeout(unsigned __int64 nTimeout) throw() - { - HRESULT hr = S_OK; - CComPtr spSession; - m_dwTimeout = nTimeout; - - CSLockType lock(m_CritSec, false); - hr = lock.Lock(); - if (FAILED(hr)) - return hr; - - POSITION pos = m_Sessions.GetStartPosition(); - if (!pos) - return S_OK; // no sessions to set the timeout on - - - while (pos) - { - SessMapType::CPair *pPair = const_cast(m_Sessions.GetNext(pos)); - if (pPair) - { - spSession = pPair->m_value; - if (spSession) - { - // if we fail on any of the sets we will return the - // error code immediately - hr = spSession->SetTimeout(nTimeout); - spSession.Release(); - if (hr != S_OK) - break; - } - else - { - hr = E_UNEXPECTED; - break; - } - } - else - { - hr = E_UNEXPECTED; - break; - } - } - - return hr; - } - - HRESULT GetSessionTimeout(unsigned __int64* pnTimeout) throw() - { - if (pnTimeout) - *pnTimeout = m_dwTimeout; - else - return E_POINTER; - - return S_OK; - } - - HRESULT GetSessionCount(DWORD *pnCount) throw() - { - if (pnCount) - *pnCount = 0; - else - return E_POINTER; - - CSLockType lock(m_CritSec, false); - HRESULT hr = lock.Lock(); - if (FAILED(hr)) - return hr; - *pnCount = (DWORD)m_Sessions.GetCount(); - - return S_OK; - } - - void ReleaseAllSessions() throw() - { - CSLockType lock(m_CritSec, false); - if (FAILED(lock.Lock())) - return; - m_Sessions.RemoveAll(); - } - - HRESULT Initialize(SERVICEIMPL_INITPARAM_TYPE, - IServiceProvider*, - unsigned __int64 dwNewTimeout) throw() - { - m_dwTimeout = dwNewTimeout; - return m_CritSec.Init(); - } - - typedef CAtlMap, - CElementTraitsBase > SessMapType; - - SessMapType m_Sessions; // map for holding sessions in memory - CComCriticalSection m_CritSec; // for synchronizing access to map - typedef CComCritSecLock CSLockType; - CSessionNameGenerator m_SessionNameGenerator; // Object for generating session names - unsigned __int64 m_dwTimeout; -}; // CMemSessionServiceImpl - - - -// -// CSessionStateService -// This class implements the session state service which can be -// exposed to request handlers. -// -// Template Parameters: -// MonitorClass: Provides periodic sweeping services for the session service class. -// TServiceImplClass: The class that actually implements the methods of the -// ISessionStateService and ISessionStateControl interfaces. -template -class CSessionStateService : - public ISessionStateService, - public ISessionStateControl, - public IWorkerThreadClient, - public CComObjectRootEx -{ -protected: - MonitorClass m_Monitor; - HANDLE m_hTimer; - CComPtr m_spServiceProvider; - TServiceImplClass m_SessionServiceImpl; -public: - // Construction/Initialization - CSessionStateService() throw() : - m_hTimer(NULL) - { - - } - ~CSessionStateService() throw() - { - ATLASSUME(m_hTimer == NULL); - } - BEGIN_COM_MAP(CSessionStateService) - COM_INTERFACE_ENTRY(ISessionStateService) - COM_INTERFACE_ENTRY(ISessionStateControl) - END_COM_MAP() - -// ISessionStateServie methods - STDMETHOD(CreateNewSession)(LPSTR szNewID, DWORD *pdwSize, ISession** ppSession) throw() - { - return m_SessionServiceImpl.CreateNewSession(szNewID, pdwSize, ppSession); - } - - STDMETHOD(CreateNewSessionByName)(LPSTR szNewID, ISession** ppSession) throw() - { - return m_SessionServiceImpl.CreateNewSessionByName(szNewID, ppSession); - } - - STDMETHOD(GetSession)(LPCSTR szID, ISession **ppSession) throw() - { - return m_SessionServiceImpl.GetSession(szID, ppSession); - } - - STDMETHOD(CloseSession)(LPCSTR szSessionID) throw() - { - return m_SessionServiceImpl.CloseSession(szSessionID); - } - - STDMETHOD(SetSessionTimeout)(unsigned __int64 nTimeout) throw() - { - return m_SessionServiceImpl.SetSessionTimeout(nTimeout); - } - - STDMETHOD(GetSessionTimeout)(unsigned __int64 *pnTimeout) throw() - { - return m_SessionServiceImpl.GetSessionTimeout(pnTimeout); - } - - STDMETHOD(GetSessionCount)(DWORD *pnSessionCount) throw() - { - return m_SessionServiceImpl.GetSessionCount(pnSessionCount); - } - - void SweepSessions() throw() - { - m_SessionServiceImpl.SweepSessions(); - } - - void ReleaseAllSessions() throw() - { - m_SessionServiceImpl.ReleaseAllSessions(); - } - - HRESULT Initialize( - IServiceProvider *pServiceProvider = NULL, - typename TServiceImplClass::SERVICEIMPL_INITPARAM_TYPE pInitData = NULL, - unsigned __int64 dwTimeout = ATL_SESSION_TIMEOUT) throw() - { - HRESULT hr = S_OK; - if (pServiceProvider) - m_spServiceProvider = pServiceProvider; - - hr = m_SessionServiceImpl.Initialize(pInitData, pServiceProvider, dwTimeout); - - return hr; - } - - - template - HRESULT Initialize( - CWorkerThread *pWorker, - IServiceProvider *pServiceProvider = NULL, - typename TServiceImplClass::SERVICEIMPL_INITPARAM_TYPE pInitData = NULL, - unsigned __int64 dwTimeout = ATL_SESSION_TIMEOUT) throw() - { - if (!pWorker) - return E_INVALIDARG; - - HRESULT hr = Initialize(pServiceProvider, pInitData, dwTimeout); - if (hr == S_OK) - { - hr = m_Monitor.Initialize(pWorker); - if (hr == S_OK) - { - //sweep every 500ms - hr = m_Monitor.AddTimer(ATL_SESSION_SWEEPER_TIMEOUT, this, 0, &m_hTimer); - } - } - return hr; - } - - void Shutdown() throw() - { - if (m_hTimer) - { - if(FAILED(m_Monitor.RemoveHandle(m_hTimer))) - { - /* can't report from here */ - ATLASSERT(FALSE); - } - m_hTimer = NULL; - } - ReleaseAllSessions(); - } -// Implementation - HRESULT Execute(DWORD_PTR /*dwParam*/, HANDLE /*hObject*/) throw() - { - SweepSessions(); - return S_OK; - } - - HRESULT CloseHandle(HANDLE hHandle) throw() - { - ::CloseHandle(hHandle); - m_hTimer = NULL; - return S_OK; - } - -}; // CSessionStateService - -} // namespace ATL -#pragma pack(pop) - -#pragma warning(pop) -#endif // __ATLSESSION_H__ diff --git a/ATL90/include/atlsharedsvc.h b/ATL90/include/atlsharedsvc.h deleted file mode 100644 index b309f12..0000000 --- a/ATL90/include/atlsharedsvc.h +++ /dev/null @@ -1,202 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSHAREDSVC_H__ -#define __ATLSHAREDSVC_H__ - -#pragma once - -#include -#include -#pragma pack(push,_ATL_PACKING) -namespace ATL{ - -#ifndef ATL_SHAREDBLOBCACHE_TIMEOUT - #define ATL_SHAREDBLOBCACHE_TIMEOUT 36000000000 // in 100 nano second intervals - // each entry will be free'd if - // no access in 1 hour. -#endif - -// Interface used by to access the shared blob cache. -[ uuid("AB4AF9CD-8DB1-4974-A617-CF0449578FB9"), object ] -__interface ISharedBlobCache -{ - [id(0)] STDMETHOD(AddItem)([in] BSTR szItemName, [in] BSTR szData); - [id(1)] STDMETHOD(GetItem)([in] BSTR szItemName, [out,retval] BSTR *szData); -}; - -class CSharedCache: - public CBlobCache, CStdStatClass >, - public IMemoryCacheClient, - public ISharedBlobCache -{ - typedef CBlobCache, CStdStatClass > basecache; -public: - - // IMemoryCacheClient method, frees data in the memory cache. - STDMETHOD( Free )(const void *pvData) - { - if (pvData) - { - ::SysFreeString((BSTR)pvData); - } - return S_OK; - } - - - STDMETHODIMP AddItem(BSTR szItemName, BSTR szData) - { - - HRESULT hr = E_UNEXPECTED; - - // We make a copy of the BSTR and stick it in the cache. - // The BSTR will be freed in our IMemoryCacheClient::Free - // implementation above. - BSTR szEntry = SysAllocString(szData); - if(szEntry) - { - USES_CONVERSION_EX; - // create a time span and for the entry - CFileTime tm = CFileTime::GetCurrentTime(); - CFileTimeSpan span; - span.SetTimeSpan(ATL_SHAREDBLOBCACHE_TIMEOUT); - tm += span; - HCACHEITEM h; - hr = basecache::Add(OLE2A_EX(szItemName, _ATL_SAFE_ALLOCA_DEF_THRESHOLD), szEntry, sizeof(BSTR), - &tm, _AtlBaseModule.m_hInst, &h, static_cast(this)); - - if (hr == S_OK) - { - // On successful add, we have to release our - // reference on the entry. - basecache::ReleaseEntry(h); - } - } - return hr; - } - - STDMETHODIMP GetItem(BSTR szItemName, BSTR *szData) - { - USES_CONVERSION_EX; - HRESULT hr = E_UNEXPECTED; - HCACHEITEM hEntry = NULL; - - if (!szItemName || !szData) - return hr; - - hr = basecache::LookupEntry(OLE2A_EX(szItemName, _ATL_SAFE_ALLOCA_DEF_THRESHOLD), &hEntry); - if (hr == S_OK) - { - void *pData = NULL; - DWORD dwSize = 0; - hr = basecache::GetData(hEntry, &pData, &dwSize); - if (hr == S_OK) - { - // make a copy of the string - *szData = ::SysAllocString((BSTR)pData); - } - basecache::ReleaseEntry(hEntry); - } - return hr; - } - - - STDMETHODIMP QueryInterface(REFIID riid, void **ppv) - { - HRESULT hr = E_NOINTERFACE; - if (InlineIsEqualGUID(__uuidof(IMemoryCacheClient), riid)|| - InlineIsEqualGUID(__uuidof(IUnknown), riid)) - { - *ppv = static_cast(static_cast(this)); - hr = S_OK; - } - else if( InlineIsEqualGUID(__uuidof(ISharedBlobCache), riid)) - { - *ppv = static_cast(static_cast(this)); - hr = S_OK; - } - return hr; - } - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } -}; - - -// This class implements the SOAP interface for the shared blob cache. -[ - soap_handler( - name="SharedBlobCache", - namespace="http://www.microsoft.com/vc/atlserver/soap/SharedBlobCache", - protocol="soap" - ), - request_handler( - name="SharedBlobCache", - sdl="GenSharedBlobCacheWSDL" - ) -] -class CSharedCacheHandler: - public ISharedBlobCache -{ -public: - [soap_method] - STDMETHOD(AddItem)(BSTR szItemName, BSTR szData) - { - if (!m_spMemCache) - return E_UNEXPECTED; - return m_spMemCache->AddItem(szItemName, szData); - } - - [soap_method] - STDMETHOD(GetItem)(BSTR szItemName, BSTR *szData) - { - if (!m_spMemCache) - return E_UNEXPECTED; - return m_spMemCache->GetItem(szItemName, szData); - } - - HTTP_CODE Initialize(IServiceProvider *pProvider) - { - ATLASSERT(pProvider); // should never be NULL - if (!pProvider) - return HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - - if (m_spMemCache) - return HTTP_SUCCESS; // already initialized - - pProvider->QueryService(__uuidof(ISharedBlobCache), &m_spMemCache); - return m_spMemCache ? HTTP_SUCCESS : HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - - // override HandleRequest to Initialize our m_spServiceProvider - // and to handle authorizing the client. - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - HTTP_CODE dwErr = Initialize(pProvider); - if (dwErr != HTTP_SUCCESS) - return dwErr; - - dwErr = CSoapHandler::HandleRequest(pRequestInfo, - pProvider); - return dwErr; - } - CComPtr m_spMemCache; -}; - -} //ATL - -#pragma pack(pop) - -#endif // __ATLSHAREDSVC_H__ diff --git a/ATL90/include/atlsiface.h b/ATL90/include/atlsiface.h deleted file mode 100644 index 0848022..0000000 --- a/ATL90/include/atlsiface.h +++ /dev/null @@ -1,802 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSIFACE_H__ -#define __ATLSIFACE_H__ - -#pragma once -#include -#include -#include -#include -#include -#include - -#pragma pack(push,_ATL_PACKING) -namespace ATL{ - -// Forward declarations of custom data types used in -// interfaces declared in this file. -struct AtlServerRequest; -class CIsapiWorker; -__interface IAtlMemMgr; -class CCookie; - -// Forward declarations of all interfaces declared in this file. -__interface IWriteStream; -__interface IHttpFile; -__interface IHttpServerContext; -__interface IHttpRequestLookup; -__interface IRequestHandler; -__interface ITagReplacer; -__interface IIsapiExtension; -__interface IPageCacheControl; -__interface IRequestStats; -__interface IBrowserCaps; -__interface IBrowserCapsSvc; - - -// ATLS Interface declarations. - -// IWriteStream -// Interface for writing to a stream. -__interface IWriteStream -{ - HRESULT WriteStream(LPCSTR szOut, int nLen, DWORD *pdwWritten); - HRESULT FlushStream(); -}; - -// IHttpFile -// This is an interface that provides for basic accessor -// functionality for files (see CHttpRequestFile). -__interface IHttpFile -{ - LPCSTR GetParamName(); - LPCSTR GetFileName(); - LPCSTR GetFullFileName(); - LPCSTR GetContentType(); - LPCSTR GetTempFileName(); - ULONGLONG GetFileSize(); - void Free(); -}; - -// IHttpServerContext -// This interface encapsulates the capabilities of the web server and provides information about -// the current request being handled. See CServerContext for implementation. -__interface ATL_NO_VTABLE __declspec(uuid("813F3F00-3881-11d3-977B-00C04F8EE25E")) - IHttpServerContext : public IUnknown -{ - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv); - ULONG STDMETHODCALLTYPE AddRef(); - ULONG STDMETHODCALLTYPE Release(); - - LPCSTR GetRequestMethod(); - LPCSTR GetQueryString(); - LPCSTR GetPathInfo(); - LPCSTR GetPathTranslated(); - LPCSTR GetScriptPathTranslated(); - DWORD GetTotalBytes(); - DWORD GetAvailableBytes(); - BYTE *GetAvailableData(); - LPCSTR GetContentType(); - BOOL GetServerVariable(__in_z LPCSTR pszVariableName, - __out_ecount_part_opt(*pdwSize, *pdwSize) LPSTR pvBuffer, __inout DWORD *pdwSize); - BOOL GetImpersonationToken(HANDLE * pToken); - BOOL WriteClient(void *pvBuffer, DWORD *pdwBytes); - BOOL AsyncWriteClient(void *pvBuffer, DWORD *pdwBytes); - BOOL ReadClient(void *pvBuffer, DWORD *pdwSize); - BOOL AsyncReadClient(void *pvBuffer, DWORD *pdwSize); - BOOL SendRedirectResponse(LPCSTR pszRedirectUrl); - BOOL SendResponseHeader(LPCSTR pszHeader, LPCSTR pszStatusCode, - BOOL fKeepConn); - BOOL DoneWithSession(DWORD dwHttpStatusCode); - BOOL RequestIOCompletion(PFN_HSE_IO_COMPLETION pfn, DWORD *pdwContext); - BOOL TransmitFile(HANDLE hFile, PFN_HSE_IO_COMPLETION pfn, void *pContext, - LPCSTR szStatusCode, DWORD dwBytesToWrite, DWORD dwOffset, - void *pvHead, DWORD dwHeadLen, void *pvTail, - DWORD dwTailLen, DWORD dwFlags); - BOOL AppendToLog(LPCSTR szMessage, DWORD* pdwLen); - BOOL MapUrlToPathEx(LPCSTR szLogicalPath, DWORD dwLen, HSE_URL_MAPEX_INFO *pumInfo); -}; - -// IHttpRequestLookup -// This interface is designed to allow one map to chain to another map. -// The interface is implemented by the CHttpThunkMap and CHttpRequest classes. -// Pointers to this interface are passed around by CRequestHandlerT and CHtmlTagReplacer. -// dwType - the type of item being requested -__interface ATL_NO_VTABLE __declspec(uuid("A5990B44-FF74-4bfe-B66D-F9E7E9F42D42")) - IHttpRequestLookup : public IUnknown -{ - POSITION GetFirstQueryParam(LPCSTR *ppszName, LPCSTR *ppszValue); - POSITION GetNextQueryParam(POSITION pos, LPCSTR *ppszName, LPCSTR *ppszValue); - - POSITION GetFirstFormVar(LPCSTR *ppszName, LPCSTR *ppszValue); - POSITION GetNextFormVar(POSITION pos, LPCSTR *ppszName, LPCSTR *ppszValue); - - POSITION GetFirstFile(LPCSTR *ppszName, IHttpFile **ppFile); - POSITION GetNextFile(POSITION pos, LPCSTR *ppszName, IHttpFile **ppFile); - - HRESULT GetServerContext(IHttpServerContext **ppOut); -}; - - -// IRequestHandler -// This interface is impelemented by clients who want to be request handlers in an -// atl server application. Server default implementations are provided in ATL, including -// IRequestHandlerImpl (atlisapi.h) and CRequestHandlerT (atlstencil.h) -__interface ATL_NO_VTABLE __declspec(uuid("D57F8D0C-751A-4223-92BC-0B29F65D2453")) -IRequestHandler : public IUnknown -{ - HTTP_CODE GetFlags(DWORD *pdwStatus); - HTTP_CODE InitializeHandler(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider); - HTTP_CODE InitializeChild(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider, IHttpRequestLookup *pLookup); - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider); - void UninitializeHandler(); -}; - -// ITagReplacer -// This interface defines the methods necessary for server response file processing. -__interface ATL_NO_VTABLE __declspec(uuid("8FF5E90C-8CE0-43aa-96C4-3BF930837512")) - ITagReplacer : public IUnknown -{ - HTTP_CODE FindReplacementOffset(LPCSTR szMethodName, DWORD *pdwMethodOffset, - LPCSTR szObjectName, DWORD *pdwObjOffset, DWORD *pdwMap, void **ppvParam, IAtlMemMgr *pMemMgr); - HTTP_CODE RenderReplacement(DWORD dwFnOffset, DWORD dwObjOffset, DWORD dwMap, void *pvParam); - HRESULT GetContext(REFIID riid, void** ppv); - IWriteStream *SetStream(IWriteStream *pStream); -}; - - -struct CStencilState; - -// IIsapiExtension -// Tnis is the interface to the ISAPI extension of a running ATL Server web -// application. Provides request handler clients with access to functions of the -// ISAPI server. -__interface __declspec(uuid("79DD4A27-D820-4fa6-954D-E1DFC2C05978")) - IIsapiExtension : public IUnknown -{ - BOOL DispatchStencilCall(AtlServerRequest *pRequestInfo); - void RequestComplete(AtlServerRequest *pRequestInfo, DWORD hStatus, DWORD dwSubStatus); - BOOL OnThreadAttach(); - void OnThreadTerminate(); - BOOL QueueRequest(AtlServerRequest *pRequestInfo); - CIsapiWorker *GetThreadWorker(); - BOOL SetThreadWorker(CIsapiWorker *pWorker); - HTTP_CODE LoadRequestHandler(LPCSTR szDllPath, LPCSTR szHandlerName, IHttpServerContext *pServerContext, - HINSTANCE *phInstance, IRequestHandler **ppHandler); - HRESULT AddService(REFGUID guidService, REFIID riid, IUnknown *punk, HINSTANCE hInstance); - HRESULT RemoveService(REFGUID guidService, REFIID riid); - HTTP_CODE LoadDispatchFile(LPCSTR szFileName, AtlServerRequest *pRequestInfo); - - AtlServerRequest* CreateRequest(); - void FreeRequest(AtlServerRequest* pRequest); - HTTP_CODE TransferRequest( - AtlServerRequest *pRequest, - IServiceProvider *pServiceProvider, - IWriteStream *pWriteStream, - IHttpRequestLookup *pLookup, - LPCSTR szNewUrl, - WORD nCodePage, - bool bContinueAfterProcess, - CStencilState *pState); -}; - -// IPageCacheControl -// This interface controls the cacheability of the current page -__interface ATL_NO_VTABLE __declspec(uuid("9868BFC0-D44D-4154-931C-D186EC0C45D5")) - IPageCacheControl : public IUnknown -{ - HRESULT GetExpiration(FILETIME *pftExpiration); - HRESULT SetExpiration(FILETIME ftExpiration); - BOOL IsCached(); - BOOL Cache(BOOL bCache); -}; - -// IRequestStats -// Used to query request statistics from a running ATL server ISAPI application. -__interface ATL_NO_VTABLE __declspec(uuid("2B75C68D-0DDF-48d6-B58A-CC7C2387A6F2")) - IRequestStats : public IUnknown -{ - long GetTotalRequests(); - long GetFailedRequests(); - long GetAvgResponseTime(); - long GetCurrWaiting(); - long GetMaxWaiting(); - long GetActiveThreads(); -}; - -// IBrowserCaps -// Interface that provides information about a particular web brorwser. -// See atlutil.h and the ATL Browser Capabilities service for information -// about this interface's implementation -__interface __declspec(uuid("3339FCE2-99BC-4985-A702-4ABC8304A995")) - IBrowserCaps : public IUnknown -{ - HRESULT GetPropertyString(BSTR bstrProperty, BSTR * pbstrOut); - HRESULT GetBooleanPropertyValue(BSTR bstrProperty, BOOL* pbOut); - HRESULT GetBrowserName(BSTR * pbstrName); - HRESULT GetPlatform(BSTR * pbstrPlatform); - HRESULT GetVersion(BSTR * pbstrVersion); - HRESULT GetMajorVer(BSTR * pbstrMajorVer); - HRESULT GetMinorVer(BSTR * pbstrMinorVer); - HRESULT SupportsFrames(BOOL* pbFrames); - HRESULT SupportsTables(BOOL* pbTables); - HRESULT SupportsCookies(BOOL* pbCookies); - HRESULT SupportsBackgroundSounds(BOOL* pbBackgroundSounds); - HRESULT SupportsVBScript(BOOL* pbVBScript); - HRESULT SupportsJavaScript(BOOL* pbJavaScript); - HRESULT SupportsJavaApplets(BOOL* pbJavaApplets); - HRESULT SupportsActiveXControls(BOOL* pbActiveXControls); - HRESULT SupportsCDF(BOOL* pbCDF); - HRESULT SupportsAuthenticodeUpdate(BOOL* pbAuthenticodeUpdate); - HRESULT IsBeta(BOOL* pbIsBeta); - HRESULT IsCrawler(BOOL* pbIsCrawler); - HRESULT IsAOL(BOOL* pbIsAOL); - HRESULT IsWin16(BOOL* pbIsWin16); - HRESULT IsAK(BOOL* pbIsAK); - HRESULT IsSK(BOOL* pbIsSK); - HRESULT IsUpdate(BOOL* pbIsUpdate); -}; - -// IBrowserCapsSvc. -// Interface on the browser caps service. Used by clients to query a running -// instance of the browser capabilities service for information about a user's web -// browser. See atlutil.h for implementation of the browser capabilities services. -__interface __declspec(uuid("391E7418-863B-430e-81BB-1312ED2FF3E9")) - IBrowserCapsSvc : public IUnknown -{ - HRESULT GetCaps(IHttpServerContext * pContext, IBrowserCaps ** ppOut); - HRESULT GetCapsUserAgent(BSTR bstrAgent, IBrowserCaps ** ppOut); -}; - -class CBrowserCapsSvc : public IBrowserCapsSvc, - public CComObjectRootEx -{ -public: - virtual ~CBrowserCapsSvc() - { - } - - BEGIN_COM_MAP(CBrowserCapsSvc) - COM_INTERFACE_ENTRY(IBrowserCapsSvc) - END_COM_MAP() - - __success(SUCCEEDED(return)) __checkReturn HRESULT GetCaps(__in IHttpServerContext * pContext, __deref_out_opt IBrowserCaps ** ppOut) - { - if (!pContext) - return E_POINTER; - - if (!ppOut) - return E_POINTER; - - *ppOut = NULL; - - char szUserAgent[256]; - DWORD dwSize = sizeof(szUserAgent); - if (!pContext->GetServerVariable("HTTP_USER_AGENT", szUserAgent, &dwSize)) - return E_FAIL; - - return GetCapsUserAgent(CComBSTR(szUserAgent), ppOut); - } - - __success(SUCCEEDED(return)) __checkReturn HRESULT GetCapsUserAgent(__in BSTR bstrAgent, __deref_out IBrowserCaps ** ppOut) - { - if (::SysStringLen(bstrAgent) == 0 || ppOut == NULL) - { - return E_POINTER; - } - - *ppOut = NULL; - - BrowserCaps* pCaps = NULL; - - _ATLTRY - { - CW2CT szUserAgent(bstrAgent); - - if (!m_mapAgent.Lookup(szUserAgent, pCaps)) - { - pCaps = NULL; - for (size_t i=0; i *pRet = NULL; - - ATLTRY(pRet = new CComObjectNoLock); - - if (!pRet) - return E_OUTOFMEMORY; - pRet->AddRef(); - - HRESULT hr = pRet->Initialize(pCaps); - if (FAILED(hr)) - { - pRet->Release(); - return hr; - } - - *ppOut = pRet; - return S_OK; - } -#pragma warning(pop) - - return E_FAIL; - } - - __checkReturn HRESULT Initialize(__in HINSTANCE hInstance) throw() - { - // tries loading browscap.ini from the same directory as the module - if (hInstance != NULL) - { - _ATLTRY - { - CPath strBrowscapPath; - - LPTSTR sz = strBrowscapPath.m_strPath.GetBuffer(MAX_PATH); - UINT nChars = ::GetModuleFileName(hInstance, sz, MAX_PATH); - strBrowscapPath.m_strPath.ReleaseBuffer(nChars); - if (nChars != 0 && - nChars != MAX_PATH && - strBrowscapPath.RemoveFileSpec()) - { - strBrowscapPath += _T("\\browscap.ini"); - if (SUCCEEDED(Load(strBrowscapPath))) - return S_OK; - } - } - _ATLCATCHALL() - { - return E_FAIL; - } - } - - // falls back to the system browscap.ini if previous Load failed - return Load(); - } - - HRESULT Uninitialize() - { - Clear(); - return S_OK; - } - -private: - static bool IsEqualAgentString(__in LPCTSTR szPattern, __in LPCTSTR szInput) - { - while (*szPattern && *szInput && (*szPattern == *szInput || *szPattern == '?')) - { - szPattern++; - szInput++; - } - - if (*szPattern == *szInput) - { - return true; - } - - if (*szPattern == '*') - { - szPattern++; - if (!*szPattern) - { - return true; - } - while(*szInput) - { - if (IsEqualAgentString(szPattern, szInput)) - { - return true; - } - - szInput++; - } - } - - return false; - } - - __checkReturn HRESULT Load(__in_opt LPCTSTR szPath = NULL) - { - _ATLTRY - { - Clear(); - - CString strBrowscapPath(szPath); - - // use default load path if a path isn't specified - if (strBrowscapPath.IsEmpty()) - { - LPTSTR sz = strBrowscapPath.GetBuffer(MAX_PATH); - UINT nChars = ::GetSystemDirectory(sz, MAX_PATH); - strBrowscapPath.ReleaseBuffer(nChars); - if (nChars == 0 || nChars == MAX_PATH) - return E_FAIL; - - strBrowscapPath += _T("\\inetsrv\\browscap.ini"); - } - - size_t nCurrent = 16384; - CHeapPtr data; - - if (!data.Allocate(nCurrent)) - return E_OUTOFMEMORY; - - // load the list of all the user agents - bool bRetrieved = false; - - do - { - DWORD dwRetrieved = ::GetPrivateProfileSectionNames(data, (DWORD) nCurrent, strBrowscapPath); - if (dwRetrieved == 0) - { - return AtlHresultFromWin32(ERROR_FILE_NOT_FOUND); - } - else if (dwRetrieved < nCurrent-2) - { - bRetrieved = true; - } - else if(SIZE_MAX/2, CStringElementTraits > m_props; - }; - - // map from UserAgent string to caps - // used for non-wildcard lookup and parent lookup - CAtlMap > m_mapAgent; - - // all of the caps - CAtlArray m_caps; - - class CBrowserCaps : public IBrowserCaps, public CComObjectRootEx - { - public: - - BEGIN_COM_MAP(CBrowserCaps) - COM_INTERFACE_ENTRY(IBrowserCaps) - END_COM_MAP() - - CBrowserCaps() - { - } - - HRESULT Initialize(__in CBrowserCapsSvc::BrowserCaps * pCaps) - { - m_pCaps = pCaps; - return S_OK; - } - - __checkReturn HRESULT GetPropertyString(__in BSTR bstrProperty, __out BSTR * pbstrOut) - { - _ATLTRY - { - ATLASSUME(m_pCaps); - if (!m_pCaps) - return E_UNEXPECTED; - - if (!pbstrOut) - return E_POINTER; - - *pbstrOut = NULL; - - CString strName(bstrProperty); - CString strVal; - - CBrowserCapsSvc::BrowserCaps * pCaps = m_pCaps; - while (pCaps) - { - if (pCaps->m_props.Lookup(strName, strVal)) - { - CComBSTR bstrVal(strVal); - *pbstrOut = bstrVal.Detach(); - return S_OK; - } - - pCaps = pCaps->m_pParent; - } - - return S_FALSE; - } - _ATLCATCHALL() - { - return E_FAIL; - } - } - - __checkReturn HRESULT GetBooleanPropertyValue(__in BSTR bstrProperty, __out BOOL* pbOut) - { - if (!pbOut) - return E_POINTER; - - CComBSTR bstrOut; - HRESULT hr = GetPropertyString(bstrProperty, &bstrOut); - if (FAILED(hr) || S_FALSE == hr) - return hr; - - if (_wcsicmp(bstrOut, L"true") == 0) - *pbOut = TRUE; - else - *pbOut = FALSE; - - return S_OK; - } - - __checkReturn HRESULT GetBrowserName(__out BSTR * pbstrName) - { - return GetPropertyString(CComBSTR(L"browser"), pbstrName); - } - - __checkReturn HRESULT GetPlatform(__out BSTR * pbstrPlatform) - { - return GetPropertyString(CComBSTR(L"platform"), pbstrPlatform); - } - - __checkReturn HRESULT GetVersion(__out BSTR * pbstrVersion) - { - return GetPropertyString(CComBSTR(L"version"), pbstrVersion); - } - - __checkReturn HRESULT GetMajorVer(__out BSTR * pbstrMajorVer) - { - return GetPropertyString(CComBSTR(L"majorver"), pbstrMajorVer); - } - - __checkReturn HRESULT GetMinorVer(__out BSTR * pbstrMinorVer) - { - return GetPropertyString(CComBSTR(L"minorver"), pbstrMinorVer); - } - - __checkReturn HRESULT SupportsFrames(__out BOOL* pbFrames) - { - return GetBooleanPropertyValue(CComBSTR(L"frames"), pbFrames); - } - - __checkReturn HRESULT SupportsTables(__out BOOL* pbTables) - { - return GetBooleanPropertyValue(CComBSTR(L"tables"), pbTables); - } - __checkReturn HRESULT SupportsCookies(__out BOOL* pbCookies) - { - return GetBooleanPropertyValue(CComBSTR(L"cookies"), pbCookies); - } - __checkReturn HRESULT SupportsBackgroundSounds(__out BOOL* pbBackgroundSounds) - { - return GetBooleanPropertyValue(CComBSTR(L"backgroundsounds"), pbBackgroundSounds); - } - __checkReturn HRESULT SupportsVBScript(__out BOOL* pbVBScript) - { - return GetBooleanPropertyValue(CComBSTR(L"vbscript"), pbVBScript); - } - __checkReturn HRESULT SupportsJavaScript(__out BOOL* pbJavaScript) - { - return GetBooleanPropertyValue(CComBSTR(L"javascript"), pbJavaScript); - } - __checkReturn HRESULT SupportsJavaApplets(__out BOOL* pbJavaApplets) - { - return GetBooleanPropertyValue(CComBSTR(L"javaapplets"), pbJavaApplets); - } - __checkReturn HRESULT SupportsActiveXControls(__out BOOL* pbActiveXControls) - { - return GetBooleanPropertyValue(CComBSTR(L"ActiveXControls"), pbActiveXControls); - } - __checkReturn HRESULT SupportsCDF(__out BOOL* pbCDF) - { - return GetBooleanPropertyValue(CComBSTR(L"CDF"), pbCDF); - } - __checkReturn HRESULT SupportsAuthenticodeUpdate(__out BOOL* pbAuthenticodeUpdate) - { - return GetBooleanPropertyValue(CComBSTR(L"AuthenticodeUpdate"), pbAuthenticodeUpdate); - } - __checkReturn HRESULT IsBeta(__out BOOL* pbIsBeta) - { - return GetBooleanPropertyValue(CComBSTR(L"beta"), pbIsBeta); - } - __checkReturn HRESULT IsCrawler(__out BOOL* pbIsCrawler) - { - return GetBooleanPropertyValue(CComBSTR(L"Crawler"), pbIsCrawler); - } - __checkReturn HRESULT IsAOL(__out BOOL* pbIsAOL) - { - return GetBooleanPropertyValue(CComBSTR(L"AOL"), pbIsAOL); - } - __checkReturn HRESULT IsWin16(__out BOOL* pbIsWin16) - { - return GetBooleanPropertyValue(CComBSTR(L"Win16"), pbIsWin16); - } - __checkReturn HRESULT IsAK(__out BOOL* pbIsAK) - { - return GetBooleanPropertyValue(CComBSTR(L"AK"), pbIsAK); - } - __checkReturn HRESULT IsSK(__out BOOL* pbIsSK) - { - return GetBooleanPropertyValue(CComBSTR(L"SK"), pbIsSK); - } - __checkReturn HRESULT IsUpdate(__out BOOL* pbIsUpdate) - { - return GetBooleanPropertyValue(CComBSTR(L"Update"), pbIsUpdate); - } - - private: - CBrowserCapsSvc::BrowserCaps * m_pCaps; - }; -}; - -typedef DWORD_PTR HSESSIONENUM; - -// ISession -// Interface on a single client session. Used to access variables in the client -// session in the session state services. See atlsession.h for implementation of -// this interface. -__interface __declspec(uuid("DEB69BE3-7AC9-4a13-9519-266C1EA3AB39")) - ISession : public IUnknown -{ - STDMETHOD(SetVariable)(LPCSTR szName, VARIANT NewVal); - STDMETHOD(GetVariable)(LPCSTR szName, VARIANT *pVal); - STDMETHOD(GetCount)(long *pnCount); - STDMETHOD(RemoveVariable)(LPCSTR szName); - STDMETHOD(RemoveAllVariables)(); - STDMETHOD(BeginVariableEnum)(POSITION *pPOS, HSESSIONENUM *phEnumHandle); - STDMETHOD(GetNextVariable)(POSITION *pPOS, VARIANT *pVal, HSESSIONENUM hEnum, LPSTR szName, DWORD dwLen); - STDMETHOD(CloseEnum)(HSESSIONENUM hEnumHandle); - STDMETHOD(IsExpired)(); - STDMETHOD(SetTimeout)(unsigned __int64 dwNewTimeout); -}; //ISession - - -// ISessionStateService -// Interface on the session state service for an ISAPI application. Request -// handler objects will use this interface to access user sessions. See -// atlsession.h for implementation of this interface. -__interface __declspec(uuid("C5740C4F-0C6D-4b43-92C4-2AF778F35DDE")) - ISessionStateService : public IUnknown -{ - STDMETHOD(CreateNewSession)(LPSTR szNewID, DWORD *pdwSize, ISession** ppSession); - STDMETHOD(CreateNewSessionByName)(LPSTR szNewID, ISession** ppSession); - STDMETHOD(GetSession)(LPCSTR szID, ISession **ppSession); - STDMETHOD(CloseSession)(LPCSTR szID); -}; - -// ISessionStateControl -// Interface used by session state service to get information about the service. -// Currently you can get the count of active sessions and the current default -// timeout for a session. -__interface __declspec(uuid("6C7F5F56-6CBD-49ee-9797-4C837D4C527A")) - ISessionStateControl : public IUnknown -{ - STDMETHOD(SetSessionTimeout)(unsigned __int64 nTimeout); - STDMETHOD(GetSessionTimeout)(unsigned __int64 *pnTimeout); - STDMETHOD(GetSessionCount)(DWORD *pnSessionCount); -}; - -}; // namespace ATL -#pragma pack(pop) - -#endif // __ATLSIFACE_H__ diff --git a/ATL90/include/atlsmtpconnection.h b/ATL90/include/atlsmtpconnection.h deleted file mode 100644 index 5cda41d..0000000 --- a/ATL90/include/atlsmtpconnection.h +++ /dev/null @@ -1,926 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSMTPCONNECTION_H__ -#define __ATLSMTPCONNECTION_H__ - -#pragma once - -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "ws2_32.lib") -#endif // !_ATL_NO_DEFAULT_LIBS - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// SMTP Return Codes -#define ATLSMTP_MAIL_SUCCESS 250 -#define ATLSMTP_RCPT_SUCCESS 250 -#define ATLSMTP_RCPT_NOT_LOCAL 251 -#define ATLSMTP_DATA_INTERMEDIATE 354 - -#define ATLSMTP_CONN_SUCC "220" -#define ATLSMTP_HELO_SUCC "250" -#define ATLSMTP_MAIL_SUCC "250" -#define ATLSMTP_RCPT_SUCC "250" -#define ATLSMTP_RCPT_NLOC "251" -#define ATLSMTP_DATA_INTM "354" -#define ATLSMTP_DATA_SUCC "250" -#define ATLSMTP_RSET_SUCC "250" - -// SMTP flags -#define ATLSMTP_DUMP_SENDER 1 -#define ATLSMTP_DUMP_RECIPS 2 -#define ATLSMTP_FOR_SEND 4 - - -struct CSMTPWSAStartup -{ -private: - bool m_bInit; - -public: - CSMTPWSAStartup() throw() - :m_bInit(false) - { - Init(); - } - - ~CSMTPWSAStartup() throw() - { - Uninit(); - } - - bool Init() throw() - { - if (m_bInit) - return true; - - WSADATA wsadata; - if (WSAStartup(ATLSMTP_WSA_VERSION, &wsadata)) - return false; - m_bInit = true; - ATLASSERT(wsadata.wHighVersion >= 2); - return true; - } - - bool Uninit() throw() - { - if (m_bInit) - if (WSACleanup()) - return false; - m_bInit = false; - return true; - } -}; - -__declspec(selectany) CSMTPWSAStartup _g_smtp_init; - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -class CSMTPConnection -{ -protected: - - // the socket - SOCKET m_hSocket; - - // the OVERLAPPED struct - OVERLAPPED m_Overlapped; - -public: - - CSMTPConnection() throw() - :m_hSocket(INVALID_SOCKET) - { - // initialize the OVERLAPPED struct - memset(&m_Overlapped, 0, sizeof(OVERLAPPED)); - } - - ~CSMTPConnection() throw() - { - Disconnect(); - } - - // Attempt to connect to the socket - // lpszHostName - the host name to connect to - BOOL Connect(LPCTSTR lpszHostName, DWORD dwTimeout = 10000) throw() - { - ATLASSERT(lpszHostName != NULL); - - // If we're already connected - if (Connected()) - { - return FALSE; - } - - if (!_g_smtp_init.Init()) - { - return FALSE; - } - - CSocketAddr address; - if (address.FindAddr(lpszHostName, IPPORT_SMTP, 0, PF_UNSPEC, SOCK_STREAM, 0)) - { - return FALSE; - } - - ADDRINFOT *pAI; - - BOOL bRet = FALSE; - int nIndex = 0; - while ((pAI = address.GetAddrInfo(nIndex++)) != NULL) - { - // create the socket - m_hSocket = WSASocket(pAI->ai_family, pAI->ai_socktype, pAI->ai_protocol, NULL, 0, WSA_FLAG_OVERLAPPED); - - if (m_hSocket == INVALID_SOCKET) - { - return FALSE; - } - - bRet = FALSE; - WSAEVENT hEventConnect = WSACreateEvent(); - if (hEventConnect != NULL) - { - if (SOCKET_ERROR != WSAEventSelect(m_hSocket, hEventConnect, FD_CONNECT)) - { - if (WSAConnect(m_hSocket, pAI->ai_addr, (int)pAI->ai_addrlen, - NULL, NULL, NULL, NULL)) - { - if (WSAGetLastError() == WSAEWOULDBLOCK) - { - DWORD dwWait = WaitForSingleObject((HANDLE) hEventConnect, dwTimeout); - if (dwWait == WAIT_OBJECT_0) - { - // make sure there were no connection errors. - WSANETWORKEVENTS wse; - ZeroMemory(&wse, sizeof(wse)); - WSAEnumNetworkEvents(m_hSocket, NULL, &wse); - if (wse.iErrorCode[FD_CONNECT_BIT]==0) - { - bRet = TRUE; - } - } - } - } - } - - // we're done with the event - WSACloseEvent(hEventConnect); - } - if (bRet) - { - break; - } - - shutdown(m_hSocket, SD_BOTH); - closesocket(m_hSocket); - m_hSocket = INVALID_SOCKET; - } - - - // Create an event for asynchronous I/O - if (bRet) - { - ATLASSUME(m_Overlapped.hEvent == NULL); - m_Overlapped.hEvent = CreateEvent(NULL, TRUE, TRUE, NULL); - if (m_Overlapped.hEvent == NULL) - { - bRet = FALSE; - } - } - - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - int nBufLen = ATLSMTP_MAX_LINE_LENGTH; - if (bRet) - { - // See if the connect returns success - bRet = AtlSmtpReadData((HANDLE)m_hSocket, szBuf, &nBufLen, &m_Overlapped); - if (bRet) - { - if (strncmp(szBuf, ATLSMTP_CONN_SUCC, ATLSMTP_RETCODE_LEN)) - { - bRet = FALSE; - } - } - } - - char szLocalHost[ATLSMTP_MAX_SERVER_NAME_LENGTH+1]; - - // gethostname should return 0 on success - if (bRet && gethostname(szLocalHost, ATLSMTP_MAX_SERVER_NAME_LENGTH)) - { - bRet = FALSE; - } - - // Send HELO command and get reply - if (bRet) - { - nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH+1, "HELO %s\r\n", szLocalHost); - if (nBufLen > 0) - { - bRet = AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, szBuf, &nBufLen, - ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_HELO_SUCC, &m_Overlapped); - } - else - { - bRet = FALSE; - } - } - - if (!bRet) - { - if (m_Overlapped.hEvent != NULL) - CloseHandle(m_Overlapped.hEvent); - shutdown(m_hSocket, SD_BOTH); - closesocket(m_hSocket); - m_hSocket = INVALID_SOCKET; - } - - return bRet; - } - - // Disconnect the socket - inline BOOL Disconnect() throw() - { - if (!Connected()) - { - return FALSE; - } - - // shutdown should return 0 on success - if (shutdown(m_hSocket, SD_BOTH)) - { - return FALSE; - } - - // closesocket should return 0 on success - if (closesocket(m_hSocket)) - { - return FALSE; - } - - // close the handle to the overlapped event - CloseHandle(m_Overlapped.hEvent); - m_hSocket = INVALID_SOCKET; - memset((void*)&m_Overlapped, 0, sizeof(OVERLAPPED)); - return TRUE; - } - - // Are we connected? - inline BOOL Connected() throw() - { - return (m_hSocket != INVALID_SOCKET ? TRUE : FALSE); - } - - // Send a message from a file - // lpszFileName - the file containing the message - // lpszRecipients - the recipients to send to (optional - if not specified, the recipients specified - // in the file will be used - // lpszSender - the sender (optional - if not specified, the recipients specified in the file - // will be used - BOOL SendMessage(LPCTSTR lpszFileName, LPCTSTR lpszRecipients = NULL, LPCTSTR lpszSender = NULL) throw() - { - if (!Connected()) - { - return FALSE; - } - - //Try to open the file - CAtlFile readFile; - if (FAILED(readFile.Create(lpszFileName, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL))) - { - return FALSE; - } - - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - int nBufLen = ATLSMTP_MAX_LINE_LENGTH; - BOOL bDumpedSender = FALSE; - - //If the caller specifies the sender, rather than having an existing one in the file... - if (lpszSender) - { - nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH+1, - "MAIL FROM:<%s>\r\n", (LPCSTR) CT2CA(lpszSender)); - if ((nBufLen < 0) || - (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, - ATLSMTP_MAIL_SUCC, &m_Overlapped))) - { - return FALSE; - } - bDumpedSender = TRUE; - } - nBufLen = ATLSMTP_MAX_LINE_LENGTH; - -#ifdef ATLSMTP_DOUBLE_BUFFERED - char buffer1[ATLSMTP_READBUFFER_SIZE]; - char buffer2[ATLSMTP_READBUFFER_SIZE]; - char* currBuffer = buffer1; - char* prevBuffer = NULL; - - int nCurrBuffer = 0; - DWORD dwPrevLength = 0; - DWORD dwWritten = 0; -#else - char bakBuffer[ATLSMTP_READBUFFER_SIZE]; - char* currBuffer = bakBuffer; - -#endif // ATLSMTP_DOUBLE_BUFFERED - DWORD dwRead = 0; - DWORD dwBytesInBuffer = 0; - DWORD dwBufPos = 0; - - //first handle the MAIL FROM and RCPT TO commands - BOOL bDumpedRecipients = FALSE; - BOOL bRet = TRUE; - while (bRet) - { - int nRetCode = 0; - - //if we have dumped the sender, and we have extra recipients to send, - //and we haven't alredy done so, do it - if (lpszRecipients && !bDumpedRecipients && bDumpedSender) - { - bRet = DumpRecipients((HANDLE)m_hSocket, CT2A(lpszRecipients), &m_Overlapped, ATLSMTP_FOR_SEND); - } - - if (bRet) - { - dwRead = 0; - BOOL bFullLine = FALSE; - bRet = ReadLine(readFile, currBuffer, szBuf, &dwBytesInBuffer, &dwBufPos, - ATLSMTP_READBUFFER_SIZE, ATLSMTP_MAX_LINE_LENGTH, &dwRead, &bFullLine); - if (dwRead == 0 || bFullLine == FALSE) - bRet = FALSE; - } - - if (bRet) - { - bRet = AtlSmtpSendAndWait((HANDLE)m_hSocket, szBuf, (int)(dwRead), &m_Overlapped); - } - - if (bRet) - { - nBufLen = ATLSMTP_MAX_LINE_LENGTH; - bRet = AtlSmtpReadData((HANDLE)m_hSocket, szBuf, &nBufLen, &m_Overlapped); - } - - if (bRet) - { - nRetCode = atoi(szBuf); - //if the command is equal to ATLSMTP_MAIL_SUCC (or RCPT_SUCC: they are equivalent) - if (nRetCode == ATLSMTP_MAIL_SUCCESS || nRetCode == ATLSMTP_RCPT_NOT_LOCAL || nRetCode == ATLSMTP_RCPT_SUCCESS) - { - bDumpedSender = TRUE; - continue; - } - - //If the command is equal to the data intermediate success code, - //break out of the loop - if (nRetCode == ATLSMTP_DATA_INTERMEDIATE) - break; - } - - //otherwise, we got an error code - CancelMessage(); - return FALSE; - } - - dwRead = dwBytesInBuffer; - currBuffer+= dwBufPos; - DWORD dwErr = 0; - do - { - dwErr = 0; - - //Try to send the data -#ifdef ATLSMTP_DOUBLE_BUFFERED - if (!AtlSmtpSendOverlapped((HANDLE)m_hSocket, currBuffer, dwRead, prevBuffer, dwPrevLength, &m_Overlapped)) - { - bRet = FALSE; - break; - } -#else - if (!AtlSmtpSendAndWait((HANDLE)m_hSocket, currBuffer, dwRead, &m_Overlapped)) - { - bRet = FALSE; - break; - } -#endif // ATLSMTP_DOUBLE_BUFFERED - - //swap the current and previous buffer -#ifdef ATLSMTP_DOUBLE_BUFFERED - prevBuffer = currBuffer; - currBuffer = (nCurrBuffer == 0 ? buffer2 : buffer1); - nCurrBuffer = (nCurrBuffer == 0 ? 1 : 0); - dwPrevLength = dwBytesInBuffer; -#else - currBuffer = bakBuffer; -#endif // ATLSMTP_DOUBLE_BUFFERED - - if (FAILED(readFile.Read(currBuffer, ATLSMTP_READBUFFER_SIZE, dwRead))) - { - bRet = FALSE; - break; - } - } while (dwRead != 0); - - //ensure that the last of the data is sent -#ifdef ATLSMTP_DOUBLE_BUFFERED - if (!GetOverlappedResult((HANDLE)m_hSocket, &m_Overlapped, &dwWritten, TRUE)) - { - if ((dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - bRet = FALSE; - else if (dwWritten < dwPrevLength) - bRet = AtlSmtpSendAndWait((HANDLE)m_hSocket, prevBuffer+dwWritten, dwPrevLength-dwWritten, &m_Overlapped); - } -#endif // ATLSMTP_DOUBLE_BUFFERED - - - if (bRet) - { - // End the message with a CRLF.CRLF - nBufLen = sprintf_s(szBuf, _countof(szBuf), "\r\n.\r\n"); - if (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_DATA_SUCC, &m_Overlapped)) - { - bRet = FALSE; - } - } - - return bRet; - } - - // Send the message - // msg - the CMimeMessage to send - // lpszSender - the sender - inline BOOL SendMessage(CMimeMessage& msg, LPCTSTR lpszRecipients = NULL, LPCTSTR lpszSender = NULL) throw() - { - if (!Connected()) - { - return FALSE; - } - - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - - //Send MAIL FROM command and get reply - int nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH+1, "MAIL FROM:<%s>\r\n", - (lpszSender ? (LPCSTR) CT2CA(lpszSender) : msg.GetSender())); - if ((nBufLen < 0) || - (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_MAIL_SUCC, &m_Overlapped))) - { - return FALSE; - } - - BOOL bRet = TRUE; - if (!lpszRecipients) - { - LPSTR lpszRecipientsA = NULL; - DWORD dwLen = msg.GetRequiredRecipientsStringLength(); - lpszRecipientsA = static_cast(calloc(sizeof(char),dwLen)); - if (!lpszRecipientsA || msg.GetRecipientsString(lpszRecipientsA, &dwLen) == FALSE) - { - bRet = FALSE; - } - if (bRet) - bRet = DumpRecipients((HANDLE)m_hSocket, lpszRecipientsA, &m_Overlapped, ATLSMTP_FOR_SEND); - free(lpszRecipientsA); - } - else - { - bRet = DumpRecipients((HANDLE)m_hSocket, CT2CA(lpszRecipients), - &m_Overlapped, ATLSMTP_FOR_SEND); - } - - //Begin the data output - if (bRet) - { - nBufLen = sprintf_s(szBuf, _countof(szBuf), "DATA\r\n"); - bRet = AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_DATA_INTM, &m_Overlapped); - } - - if (!bRet) - CancelMessage(); - - //Attempt to write the data to the socket - if (bRet) - { - bRet = msg.WriteData((HANDLE)m_hSocket, &m_Overlapped, NULL, ATLSMTP_FORMAT_SMTP); - } - - if (bRet) - { - //End the message with a . - nBufLen = sprintf_s(szBuf, _countof(szBuf), "\r\n.\r\n"); - if (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_DATA_SUCC, &m_Overlapped)) - { - return FALSE; - } - } - - return bRet; - } - - // Send a chunk of raw data - inline BOOL SendRaw(LPCTSTR lpszRawData, DWORD dwLen, LPCTSTR lpszRecipients, LPCTSTR lpszSender) throw() - { - ATLASSERT(lpszRawData != NULL); - ATLASSERT(lpszRecipients != NULL); - ATLASSERT(lpszSender != NULL); - - if (!Connected()) - return FALSE; - - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - - //Send MAIL FROM command and get reply - int nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH+1, - "MAIL FROM:<%s>\r\n", (LPCSTR) CT2CA(lpszSender)); - if ((nBufLen < 0) || - (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_MAIL_SUCC, &m_Overlapped))) - { - return FALSE; - } - - BOOL bRet = DumpRecipients((HANDLE)m_hSocket, CT2CA(lpszRecipients), - &m_Overlapped, ATLSMTP_FOR_SEND); - - // Begin the data output - if (bRet) - { - nBufLen = sprintf_s(szBuf, _countof(szBuf), "DATA\r\n"); - bRet = AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_DATA_INTM, &m_Overlapped); - } - - if (!bRet) - CancelMessage(); - - if (bRet) - { - bRet = AtlSmtpSendAndWait((HANDLE)m_hSocket, (LPSTR)(lpszRawData), dwLen, &m_Overlapped); - } - - if (bRet) - { - //End the message with a . - nBufLen = sprintf_s(szBuf, _countof(szBuf), "\r\n.\r\n"); - if (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, - szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, ATLSMTP_DATA_SUCC, &m_Overlapped)) - { - return FALSE; - } - } - - return bRet; - } - - inline BOOL SendSimple(LPCTSTR lpszRecipients, LPCTSTR lpszSender, LPCTSTR lpszSubject, LPCTSTR lpszBody, int nTextLen = -1) throw() - { - CMimeMessage msg; - BOOL bRet = msg.SetSubject(lpszSubject); - if (bRet) - bRet = msg.AddText(lpszBody, nTextLen); - - CFixedStringT strRecip; - LPCTSTR szTmp = lpszRecipients; - LPCTSTR szTmp2 = lpszRecipients; - while (*szTmp && bRet) - { - if (AtlSmtpIsRecipientDelimiter((char) *szTmp2)) - { - _ATLTRY - { - strRecip.SetString(szTmp, (int)(szTmp2-szTmp)); - bRet = msg.AddRecipient((LPCTSTR) strRecip); - - if (*szTmp2) - { - while (*szTmp2 && AtlSmtpIsRecipientDelimiter((char) *szTmp2)) - { - szTmp2++; - } - } - szTmp = szTmp2; - } - _ATLCATCHALL() - { - bRet = FALSE; - } - } - else - { - szTmp2++; - } - } - - if (bRet) - bRet = SendMessage(msg, lpszRecipients, lpszSender); - - return bRet; - } - - // Save a MIME message to a file - // lpszFileName - the file name - // lpszRecipients - the recipients string (optional) - // lpszSender - the sender (optional) - // dwFlags - the flags (optional) - inline BOOL WriteToFile(LPCTSTR lpszFileName, CMimeMessage& msg, LPCTSTR lpszRecipients = NULL, - LPCTSTR lpszSender = NULL, DWORD dwFlags = 0) throw() - { - //Try to create/open the file - HANDLE hFile = CreateFile(lpszFileName, GENERIC_WRITE, 0, NULL, - CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - - if (hFile == INVALID_HANDLE_VALUE) - { - return FALSE; - } - - // Use CHandle to close the file handle - // (CAtlFile does not allow for overlapped I/O) - CHandle hdlFile(hFile); - - //Create and initialize the OVERLAPPED struct - OVERLAPPED writeOverlapped; - memset((void*)&writeOverlapped, 0, sizeof(OVERLAPPED)); - writeOverlapped.hEvent = CreateEvent(NULL, TRUE, TRUE, NULL); - if (writeOverlapped.hEvent == NULL) - { - return FALSE; - } - - // Use CHandle to close the event handle - CHandle hdlEvent(writeOverlapped.hEvent); - - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - BOOL bRet = TRUE; - - int nBufLen = 0; - - //if writing to file for purposes of sending, write out the - //commands as well - if (lpszSender || (dwFlags & ATLSMTP_DUMP_SENDER)) - { - nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH+1, "MAIL FROM:<%s>\r\n", - (lpszSender ? (LPCSTR) CT2CA(lpszSender) : msg.GetSender())); - if (nBufLen > 0) - { - bRet = AtlSmtpSendAndWait(hFile, szBuf, nBufLen, &writeOverlapped); - } - else - { - bRet = FALSE; - } - } - - if (bRet && (lpszRecipients || (dwFlags & ATLSMTP_DUMP_RECIPS))) - { - if (!lpszRecipients) - { - LPSTR lpszRecipientsA = NULL; - DWORD dwLen = msg.GetRequiredRecipientsStringLength(); - lpszRecipientsA = static_cast(calloc(sizeof(char),dwLen)); - if (!lpszRecipientsA || msg.GetRecipientsString(lpszRecipientsA, &dwLen) == FALSE) - { - bRet = FALSE; - } - if (bRet) - bRet = DumpRecipients(hFile, lpszRecipientsA, &writeOverlapped); - free(lpszRecipientsA); - } - else - { - bRet = DumpRecipients(hFile, CT2CA(lpszRecipients), &writeOverlapped); - } - } - - if (bRet) - { - nBufLen = sprintf_s(szBuf, _countof(szBuf), "DATA\r\n"); - bRet = AtlSmtpSendAndWait(hFile, szBuf, nBufLen, &writeOverlapped); - } - - if (bRet) - { - bRet = msg.WriteData(hFile, &writeOverlapped, NULL, ATLSMTP_FORMAT_SMTP); - } - - return bRet; - } - -protected: - - // disallow copy construction - CSMTPConnection(const CSMTPConnection&) throw() - { - ATLASSERT(FALSE); - } - - // disallow assignment - const CSMTPConnection& operator=(const CSMTPConnection&) throw() - { - ATLASSERT(FALSE); - return *this; - } - - // Tell the server we are aborting the message - inline BOOL CancelMessage() throw() - { - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - int nBufLen = 0; - nBufLen = sprintf_s(szBuf, _countof(szBuf), "RSET\r\n"); - if (!AtlSmtpSendAndCheck((HANDLE)m_hSocket, szBuf, nBufLen, szBuf, &nBufLen, ATLSMTP_MAX_LINE_LENGTH, - ATLSMTP_RSET_SUCC, &m_Overlapped)) - { - Disconnect(); - return FALSE; - } - return TRUE; - } - - // Dump the recipients to hFile - // lpszRecipients - the recipients string - // pOverlapped - the OVERALAPPED struct - // dwFlags - the flags - inline BOOL DumpRecipients(HANDLE hFile, LPCSTR lpszRecipients, LPOVERLAPPED pOverlapped, DWORD dwFlags = 0) - { - ATLENSURE(lpszRecipients != NULL); - ATLASSERT(pOverlapped != NULL); - - char rcptBuf[ATLSMTP_MAX_LINE_LENGTH-12+1]; - char szBuf[ATLSMTP_MAX_LINE_LENGTH+1]; - LPSTR tmpBuf = rcptBuf; - char ch; - BOOL bRet = TRUE; - int nMaxLength = ATLSMTP_MAX_LINE_LENGTH; - int nRetCode = 0; - size_t nCnt = 0; - do - { - ch = *lpszRecipients; - if (ch) - lpszRecipients++; - if (AtlSmtpIsRecipientDelimiter(ch)) - { - *tmpBuf = 0; - int nBufLen = sprintf_s(szBuf, ATLSMTP_MAX_LINE_LENGTH, - "RCPT TO:<%s>\r\n", rcptBuf); - if (nBufLen > 0) - { - bRet = AtlSmtpSendAndWait(hFile, szBuf, nBufLen, pOverlapped); - } - else - { - bRet = FALSE; - } - - if (bRet && (dwFlags & ATLSMTP_FOR_SEND)) - { - bRet = AtlSmtpReadData(hFile, szBuf, &nMaxLength, pOverlapped); - nRetCode = atoi(szBuf); - if (!bRet || (nRetCode != ATLSMTP_RCPT_SUCCESS && nRetCode != ATLSMTP_RCPT_NOT_LOCAL)) - { - bRet = FALSE; - break; - } - } - tmpBuf = rcptBuf; - nCnt = 0; - nMaxLength = ATLSMTP_MAX_LINE_LENGTH; - while (isspace(static_cast(*lpszRecipients))) - lpszRecipients++; - continue; - } - - if (nCnt >= sizeof(rcptBuf)-1) - { - // recipient string too long - bRet = FALSE; - break; - } - - *tmpBuf++ = ch; - nCnt++; - } while (ch != '\0'); - - return bRet; - } - - // Implementation - used from ReadLine - // fills pBuf with up to dwMaxLen bytes - BOOL FillBuffer(__in HANDLE hFile, __out_ecount_part(dwMaxLen, *pdwLen) LPSTR pBuf, __in DWORD dwMaxLen, __out LPDWORD pdwLen) throw() - { - ATLASSERT(hFile != INVALID_HANDLE_VALUE); - ATLASSERT(pdwLen != NULL); - - DWORD dwRead = 0; - DWORD dwTotalRead = 0; - int nRet = 0; - - do - { - nRet = ReadFile(hFile, pBuf, dwMaxLen-dwTotalRead, &dwRead, NULL); - if (!nRet && GetLastError() != ERROR_HANDLE_EOF) - { - return FALSE; - } - - if (dwRead == 0) - break; - - dwTotalRead+= dwRead; - } while (dwTotalRead < dwMaxLen); - - *pdwLen = dwTotalRead; - - return TRUE; - } - - // Implementation - // Read a line (terminated by LF) from hFile - BOOL ReadLine(__in HANDLE hFile, __out_ecount_part_z(dwMaxSrcLen, *pdwSrcLen) LPSTR pSrc, __out_ecount_part_z(dwMaxDestLen, *pdwRead) LPSTR pDest, __inout LPDWORD pdwSrcLen, __inout LPDWORD pdwBufPos, __in DWORD dwMaxSrcLen, - __in DWORD dwMaxDestLen, __out_opt LPDWORD pdwRead=NULL, __out_opt LPBOOL pbFullLine=NULL) - { - ATLENSURE(hFile != INVALID_HANDLE_VALUE); - ATLENSURE(pSrc != NULL); - ATLENSURE(pDest != NULL); - ATLENSURE(pdwSrcLen != NULL); - ATLENSURE(pdwBufPos != NULL); - - BOOL bRet = TRUE; - DWORD dwLen = 0; - DWORD dwBufPos = 0; - DWORD dwSrcLen = *pdwSrcLen; - LPSTR pSrcCurrent = pSrc + *pdwBufPos; - - while (bRet && dwLen < dwMaxDestLen) - { - if (dwSrcLen == 0) - { - if (!FillBuffer(hFile, pSrc, dwMaxSrcLen, pdwSrcLen) || *pdwSrcLen == 0) - break; - - dwBufPos = 0; - *pdwBufPos = 0; - dwSrcLen = *pdwSrcLen; - pSrcCurrent = pSrc; - } - - --dwSrcLen; - *pDest = *pSrcCurrent++; - dwLen++; - dwBufPos++; - if (*pDest == '\n') - { - break; - } - pDest++; - } - - *pdwSrcLen = dwSrcLen; - - if (pbFullLine) - { - if (*pDest != '\n') - *pbFullLine = FALSE; - else - *pbFullLine = TRUE; - } - - if (pdwRead) - *pdwRead = dwLen; - - *pdwBufPos += dwBufPos; - - return bRet; - } - -}; // class CSMTPConnection - -} // namespace ATL -#pragma pack(pop) - -#endif // __ATLSMTPCONNECTION_H__ diff --git a/ATL90/include/atlsmtputil.h b/ATL90/include/atlsmtputil.h deleted file mode 100644 index 6ce4438..0000000 --- a/ATL90/include/atlsmtputil.h +++ /dev/null @@ -1,220 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSMTPUTIL_H__ -#define __ATLSMTPUTIL_H__ - -#pragma once - -#if (defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)) -#error requires -- include before you include or -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -//======================================================================= -//defines for SMTPMail module -//======================================================================= - -//If overlapped I/O is desired, need 2.0 or greater -#define ATLSMTP_WSA_VERSION ATL_WINSOCK_VER - -//The maximum number of characters on a SMTP line -#define ATLSMTP_MAX_LINE_LENGTH 1000 - -#define ATLSMTP_MAX_SERVER_NAME_LENGTH 256 - -//Encoding schemes -#define ATLSMTP_BASE64_ENCODE 0 -#define ATLSMTP_UUENCODE 1 -#define ATLSMTP_QP_ENCODE 2 - -//I/O Defines -#define ATLSMTP_READBUFFER_SIZE 4096 -#define ATLSMTP_GET_LINES 100 - - -//Miscellaneous defines -#define ATLSMTP_SEND_FILE 1 -#define ATLSMTP_FORMAT_SMTP 8 - -#define ATLSMTP_RETCODE_LEN 3 - - -#pragma pack(push,_ATL_PACKING) -namespace ATL -{ - -//======================================================================= -// Miscellaneous Utility Functions -//======================================================================= -//A list of recipients in a string must by separated by one -//of the following characters -inline BOOL AtlSmtpIsRecipientDelimiter(char ch) throw() -{ - return (ch == ',' || ch == ';' || ch == ' ' || ch == '\0'); -} - -//Send data to hFile and wait for it to finish sending -inline BOOL AtlSmtpSendAndWait(HANDLE hFile, LPCSTR lpData, int nDataLength, LPOVERLAPPED pOverlapped) throw() -{ - ATLASSERT(lpData != NULL); - ATLENSURE_RETURN_VAL(pOverlapped != NULL, FALSE); - - DWORD dwWritten = 0, dwErr = 0; - int nRet = 0, nBufPos = 0; - - //write all the data - do - { - //Write a chunk of data, offsetting the buffer and amount to write by what's already - //been written - nRet = WriteFile(hFile, (void*)(lpData+nBufPos), nDataLength-nBufPos, &dwWritten, pOverlapped); - if (!nRet && (dwErr = GetLastError()) != ERROR_IO_INCOMPLETE && dwErr != ERROR_IO_PENDING) - return FALSE; - - //Get the result of the write operation (wait for it) - nRet = GetOverlappedResult(hFile, pOverlapped, &dwWritten, TRUE); - if (!nRet) - return FALSE; - - //Need to update offsets when writing to a file - pOverlapped->Offset += dwWritten; - nBufPos += dwWritten; - - } while (nBufPos < nDataLength); - return TRUE; -} - - -//Read up to nDestLen bytes from hFile, keep reading while there's more data and there's -//room in the buffer -inline BOOL AtlSmtpReadData(__in HANDLE hFile, __out_ecount_part_z(*pnDestLen, *pnDestLen) LPSTR lpData, __inout int* pnDestLen, __in LPOVERLAPPED pOverlapped) -{ - ATLASSERT(lpData != NULL); - ATLASSERT(pnDestLen != NULL); - ATLENSURE(pOverlapped != NULL); - - DWORD dwRead = 0, dwErr = 0; - int nBufPos = 0; - do - { - //REad a chunk of data, offsetting the buffer and amount to read by what's already been read - int nRet = ReadFile(hFile, (void*)(lpData+nBufPos), (*pnDestLen)-nBufPos, &dwRead, pOverlapped); - if (!nRet && (dwErr = GetLastError()) != ERROR_MORE_DATA && dwErr != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - return FALSE; - - //Get the result of the read operation (wait for it) - nRet = GetOverlappedResult(hFile, pOverlapped, &dwRead, TRUE); - if (!nRet) - return FALSE; - - //Handle offsets when reading from a file - pOverlapped->Offset += dwRead; - nBufPos += dwRead; - } while (nBufPos < *pnDestLen && dwErr == ERROR_MORE_DATA); - *pnDestLen = nBufPos; - return TRUE; -} - - -//Used in sending encoded data -//lpData is the data to be sent now -//lpPrev is a pointer to the buffer that the previous call was made on -//This allows the new buffer (lpData) to be filled while lpPrev is being sent -//If all the data in lpPrev had not finished sending, we complete the send and wait -inline BOOL AtlSmtpSendOverlapped(HANDLE hFile, LPCSTR lpData, int nDataLength, LPCSTR lpPrev, DWORD dwPrevLength, LPOVERLAPPED pOverlapped) -{ - ATLASSERT(lpData != NULL); - ATLENSURE(pOverlapped != NULL); - - DWORD dwWritten = 0, dwErr = 0, dwBufPos = 0; - int nRet = 0; - - //Get the results of the previous call (if any) - if (lpPrev && (!GetOverlappedResult(hFile, pOverlapped, &dwWritten, FALSE) || dwWritten < dwPrevLength)) - { - //If any error but IO_INCOMPLETE, return failure - if ((dwErr = GetLastError()) != ERROR_SUCCESS && dwErr != ERROR_IO_INCOMPLETE && dwErr != ERROR_IO_PENDING) - { - return FALSE; - } - //Finish writing lpPrev if we need to - while (dwBufPos < dwPrevLength) - { - //Get the result of the previous write (wait for it) - nRet = GetOverlappedResult(hFile, pOverlapped, &dwWritten, TRUE); - if (!nRet || (dwBufPos += dwWritten) == dwPrevLength) - { - if ((dwErr = GetLastError()) != ERROR_IO_INCOMPLETE && dwErr != ERROR_IO_PENDING) - break; - } - - //If we are writing to a file, we need to update the offsets - pOverlapped->Offset += dwWritten; - if(dwBufPos>dwPrevLength) - { - /* shouldn't happen */ - ATLASSERT(false); - break; - } - nRet = WriteFile(hFile, (void*)(lpPrev+dwBufPos), dwPrevLength-dwBufPos, &dwWritten, pOverlapped); - - //If any error but IO_PENDING and IO_INCOMPLETE, break - if (!nRet && (dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - break; - } - if (dwBufPos < dwPrevLength) - return FALSE; - } - - //Now that all the previous data has been sent, start sending the current data - nRet = WriteFile(hFile, (void*)lpData, nDataLength, &dwWritten, pOverlapped); - GetOverlappedResult(hFile, pOverlapped, &dwWritten, FALSE); - - pOverlapped->Offset += dwWritten; - - //If any error but IO_PENDING - if (!nRet && (dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - return FALSE; - return TRUE; -} - - -//Send a SMTP command and read the response -//return TRUE if it matches szResponse, FALSE otherwise -inline BOOL AtlSmtpSendAndCheck(__in HANDLE hFile, __in LPCSTR lpData, __in int nDataLength, __out_ecount_part(nMaxResponseLength, *pnResponseLength) LPSTR lpResponse, __out int* pnResponseLength, __in int nMaxResponseLength, - __in_z LPCSTR szResponse, __in LPOVERLAPPED pOverlapped) throw() -{ - ATLASSERT(lpData != NULL); - ATLASSERT(lpResponse != NULL); - ATLASSERT(pnResponseLength != NULL); - - BOOL bRet = AtlSmtpSendAndWait(hFile, lpData, nDataLength, pOverlapped); - if (bRet) - { - *pnResponseLength = nMaxResponseLength; - bRet = AtlSmtpReadData(hFile, lpResponse, pnResponseLength, pOverlapped); - } - if (!bRet || strncmp((char*)lpResponse, szResponse, ATLSMTP_RETCODE_LEN)) - return FALSE; - return TRUE; -} - -} // namespace ATL -#pragma pack(pop) - -#endif // __ATLSMTPUTIL_H__ diff --git a/ATL90/include/atlsoap.h b/ATL90/include/atlsoap.h deleted file mode 100644 index b286e7c..0000000 --- a/ATL90/include/atlsoap.h +++ /dev/null @@ -1,8174 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSOAP_H__ -#define __ATLSOAP_H__ - -#pragma once - -#if (defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_)) - #error require winsock2.h -- include before you include -#endif - -#if ((_WIN32_WINNT < 0x0400) && (_WIN32_WINDOWS <= 0x0400)) - #error require _WIN32_WINNT >= 0x0400 or _WIN32_WINDOWS > 0x0400 -#endif - -#ifndef ATLSOAP_TRACE - #ifdef _ATLSOAP_TRACE_XML - #define ATLSOAP_TRACE(__data, __len) AtlSoapTraceXML(__data, __len) - #else - #define ATLSOAP_TRACE(__data, __len) __noop - #endif -#endif // ATLSOAP_TRACE - -// override this macro to ATL_BASE64_FLAG_NOCRLF if you do -// not want Base64-encoded binary data to contain CRLFs -#ifndef ATLSOAP_BASE64_FLAGS - #define ATLSOAP_BASE64_FLAGS ATL_BASE64_FLAG_NONE -#endif // ATLSOAP_BASE64_FLAGS - -[ emitidl(restricted) ]; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible -#pragma warning(disable: 4061) // enumerate 'enum value' in switch of enum 'enum type' is not explicitly handled by a case label - -#ifndef _CPPUNWIND -#pragma warning(disable: 4702) // unreachable code -#endif // _CPPUNWIND - -#ifndef ATLSOAP_NOWININET - #include - #ifndef ATLSOAPINET_CLIENT - #define ATLSOAPINET_CLIENT _T("VCSoapClient") - #endif -#endif - -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "msxml2.lib") - #ifndef ATLSOAP_NOWININET - #pragma comment(lib, "wininet.lib") - #endif -#endif - -#define _ATLSOAP_MAKEWIDESTR( str ) L ## str -#define ATLSOAP_MAKEWIDESTR( str ) _ATLSOAP_MAKEWIDESTR( str ) - - -#pragma pack(push,_ATL_PACKING) -namespace ATL -{ - -ATL_NOINLINE inline void AtlSoapTraceXML(LPBYTE pdwData, DWORD dwLen) -{ - HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); - if (hStdOut != INVALID_HANDLE_VALUE) - { - DWORD dwWritten; - WriteFile(hStdOut, - "\n-----------------------------------------------------------------\n", - sizeof("\n-----------------------------------------------------------------\n")-1, - &dwWritten, NULL); - - WriteFile(hStdOut, pdwData, dwLen, &dwWritten, NULL); - - WriteFile(hStdOut, - "\n-----------------------------------------------------------------\n", - sizeof("\n-----------------------------------------------------------------\n")-1, - &dwWritten, NULL); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// -// IStreamImpl - stub IStream implementation class -// -//////////////////////////////////////////////////////////////////////////////// - -class IStreamImpl : public IStream -{ -public: - - HRESULT __stdcall Read(void * /*pDest*/, ULONG /*nMaxLen*/, ULONG * /*pnRead*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Write(const void * /*pv*/, ULONG /*cb*/, ULONG * /*pcbWritten*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Seek(LARGE_INTEGER /*dlibMove*/, DWORD /*dwOrigin*/, - ULARGE_INTEGER * /*pLibNewPosition*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall SetSize(ULARGE_INTEGER /*libNewSize*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall CopyTo(IStream * /*pStream*/, ULARGE_INTEGER /*cb*/, - ULARGE_INTEGER * /*pcbRead*/, ULARGE_INTEGER * /*pcbWritten*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Commit(DWORD /*grfCommitFlags*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Revert() - { - return E_NOTIMPL; - } - - HRESULT __stdcall LockRegion(ULARGE_INTEGER /*libOffset*/, ULARGE_INTEGER /*cb*/, DWORD /*dwLockType*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall UnlockRegion(ULARGE_INTEGER /*libOffset*/, ULARGE_INTEGER /*cb*/, DWORD /*dwLockType*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Stat(STATSTG * /*pstatstg*/, DWORD /*grfStatFlag*/) - { - return E_NOTIMPL; - } - - HRESULT __stdcall Clone(IStream ** /*ppstm*/) - { - return E_NOTIMPL; - } -}; // class IStreamImpl - -//////////////////////////////////////////////////////////////////////////////// -// -// CStreamOnServerContext -// -//////////////////////////////////////////////////////////////////////////////// - -class CStreamOnServerContext : public IStreamImpl -{ -public: - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_IStream) || - InlineIsEqualGUID(riid, IID_ISequentialStream)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - -private: - - IHttpServerContext * m_pServerContext; - DWORD m_dwBytesRead; - -public: - - CStreamOnServerContext(IHttpServerContext *pServerContext = NULL) - : m_pServerContext(pServerContext), m_dwBytesRead(0) - { - } - - void SetServerContext(IHttpServerContext *pServerContext) - { - ATLASSUME( m_pServerContext == NULL ); - - m_pServerContext = pServerContext; - } - - HRESULT __stdcall Read(void *pDest, ULONG nMaxLen, ULONG *pnRead) - { - ATLENSURE( pDest != NULL ); - ATLASSUME( m_pServerContext != NULL ); - - DWORD dwToRead = __min(m_pServerContext->GetTotalBytes()-m_dwBytesRead, nMaxLen); - if (ReadClientData(m_pServerContext, (LPSTR) pDest, &dwToRead, m_dwBytesRead) != FALSE) - { - m_dwBytesRead+= dwToRead; - - if (pnRead != NULL) - { - *pnRead = dwToRead; - } - - return S_OK; - } - - ATLTRACE( _T("ATLSOAP: CStreamOnServerContext::Read -- ReadClientData failed.\r\n") ); - - return E_FAIL; - } -}; // class CStreamOnServerContext - -//////////////////////////////////////////////////////////////////////////////// -// -// CReadStreamOnSocket -// -//////////////////////////////////////////////////////////////////////////////// - -template -class CReadStreamOnSocket : public IStreamImpl -{ -public: - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_IStream) || - InlineIsEqualGUID(riid, IID_ISequentialStream)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - -private: - - CAtlHttpClientT * m_pSocket; - LPCSTR m_szBuffer; - LPCSTR m_szCurr; - long m_nBodyLen; - -public: - - CReadStreamOnSocket() - : m_pSocket(NULL), m_szBuffer(NULL), m_szCurr(NULL), m_nBodyLen(0) - { - } - - BOOL Init(CAtlHttpClientT *pSocket) - { - ATLENSURE( pSocket != NULL ); - - m_pSocket = pSocket; - m_szBuffer = (LPCSTR) pSocket->GetBody(); - - ATLSOAP_TRACE( (LPBYTE) pSocket->GetBody(), pSocket->GetBodyLength() ); - - if (m_szBuffer != NULL) - { - m_szCurr = m_szBuffer; - m_nBodyLen = pSocket->GetBodyLength(); - if (m_nBodyLen != 0) - { - return TRUE; - } - } - - ATLTRACE( _T("ATLSOAP: CReadStreamOnSocket::Init failed.\r\n") ); - - return FALSE; - } - - HRESULT __stdcall Read(void *pDest, ULONG nMaxLen, ULONG *pnRead) - { - ATLASSERT( pDest != NULL ); - ATLASSUME( m_pSocket != NULL ); - ATLASSUME( m_szBuffer != NULL ); - - if (pnRead != NULL) - { - *pnRead = 0; - } - - long nRead = (int) (m_szCurr-m_szBuffer); - if (nRead < m_nBodyLen) - { - long nLength = __min((int)(m_nBodyLen-nRead), (LONG) nMaxLen); - Checked::memcpy_s(pDest, nMaxLen, m_szCurr, nLength); - m_szCurr+= nLength; - - if (pnRead != NULL) - { - *pnRead = (ULONG) nLength; - } - } - - return S_OK; - } -}; // class CReadStreamOnSocket - -//////////////////////////////////////////////////////////////////////////////// -// -// CWriteStreamOnCString -// -//////////////////////////////////////////////////////////////////////////////// - -class CWriteStreamOnCString : public IWriteStream -{ - -public: - CStringA m_str; - - virtual ~CWriteStreamOnCString() - { - } - - HRESULT WriteStream(LPCSTR szOut, int nLen, LPDWORD pdwWritten) - { - ATLENSURE_RETURN( szOut != NULL ); - - if (nLen < 0) - { - nLen = (int) strlen(szOut); - } - - _ATLTRY - { - m_str.Append(szOut, nLen); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - if (pdwWritten != NULL) - { - *pdwWritten = (DWORD) nLen; - } - - return S_OK; - } - - HRESULT FlushStream() - { - return S_OK; - } - - void Cleanup() - { - m_str.Empty(); - } -}; // class CWriteStreamOnCString - -//////////////////////////////////////////////////////////////////////////////// -// -// Namespaces -// -//////////////////////////////////////////////////////////////////////////////// - -#define SOAPENV_NAMESPACEA "http://schemas.xmlsoap.org/soap/envelope/" -#define SOAPENV_NAMESPACEW ATLSOAP_MAKEWIDESTR( SOAPENV_NAMESPACEA ) - -#define SOAPENC_NAMESPACEA "http://schemas.xmlsoap.org/soap/encoding/" -#define SOAPENC_NAMESPACEW ATLSOAP_MAKEWIDESTR( SOAPENC_NAMESPACEA ) - -#define XSI_NAMESPACEA "http://www.w3.org/2001/XMLSchema-instance" -#define XSI_NAMESPACEW ATLSOAP_MAKEWIDESTR( XSI_NAMESPACEA ) - -#define XSD_NAMESPACEA "http://www.w3.org/2001/XMLSchema" -#define XSD_NAMESPACEW ATLSOAP_MAKEWIDESTR( XSD_NAMESPACEA ) - -#ifndef ATLSOAP_GENERIC_NAMESPACE -#define ATLSOAP_GENERIC_NAMESPACE L"http://www.tempuri.org" -#endif - -//////////////////////////////////////////////////////////////////////////////// -// -// Helpers -// -//////////////////////////////////////////////////////////////////////////////// - -inline HRESULT GetAttribute( - __in ISAXAttributes *pAttributes, - __in_ecount(cchName) const wchar_t *wszAttrName, __in int cchName, - __out_ecount_part(*pcchValue, *pcchValue) const wchar_t **pwszValue, __inout int *pcchValue, - __in_ecount_opt(cchNamespace) wchar_t *wszNamespace = NULL, __in int cchNamespace = 0) -{ - if (!pAttributes || !wszAttrName || !pwszValue || !pcchValue) - { - return E_INVALIDARG; - } - - *pwszValue = NULL; - *pcchValue = 0; - if (!wszNamespace) - { - return (pAttributes->getValueFromQName(wszAttrName, cchName, pwszValue, pcchValue) == S_OK ? S_OK : E_FAIL); - } - return (pAttributes->getValueFromName(wszNamespace, cchNamespace, - wszAttrName, cchName, pwszValue, pcchValue) == S_OK ? S_OK : E_FAIL); -} - -inline HRESULT GetAttribute( - __in ISAXAttributes *pAttributes, - __in_ecount(cchName) const wchar_t *wszAttrName, __in int cchName, - __inout CStringW &strValue, - __in_ecount_opt(cchNamespace) wchar_t *wszNamespace = NULL, __in int cchNamespace = 0) -{ - const wchar_t *wszValue = NULL; - int cchValue = 0; - - if (!pAttributes || !wszAttrName) - { - return E_INVALIDARG; - } - - HRESULT hr; - if (!wszNamespace) - { - hr = (pAttributes->getValueFromQName(wszAttrName, cchName, &wszValue, &cchValue) == S_OK ? S_OK : E_FAIL); - } - else - { - hr = (pAttributes->getValueFromName(wszNamespace, cchNamespace, - wszAttrName, cchName, &wszValue, &cchValue) == S_OK ? S_OK : E_FAIL); - } - - if (hr == S_OK) - { - _ATLTRY - { - strValue.SetString(wszValue, cchValue); - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: GetAttribute -- out of memory.\r\n") ); - - hr = E_OUTOFMEMORY; - } - } - - return hr; -} - -inline const wchar_t *SkipWhitespace(const wchar_t *wsz) -{ - while (*wsz && iswspace(*wsz)) - ++wsz; - return wsz; -} - -} // namespace ATL -#pragma pack(pop) - -//////////////////////////////////////////////////////////////////////////////// -// -// BLOB data type - use this struct when you want to send BLOB data -// the attribute provider and proxy generator will only properly special -// case blob data when using this struct. -// -//////////////////////////////////////////////////////////////////////////////// - -[ export ] -typedef struct _tagATLSOAP_BLOB -{ - unsigned long size; - unsigned char *data; -} ATLSOAP_BLOB; - -#ifndef _ATL_SOAP_NO_PARAMETER_VALIDATIONS -#define _ATL_VALIDATE_PARAMETER_END(p)\ - do \ - { \ - if(*(p) !='\0') \ - return E_FAIL; \ - } while(0) -#else -#define _ATL_VALIDATE_PARAMETER_END(p) -#endif - -// All non-integral types have specializations which -// will be called. The following function will be called -// only for integral types - -#pragma push_macro("max") -#pragma push_macro("min") -#undef max -#undef min -template -inline HRESULT AtlGetSAXValue(T * pVal , const wchar_t * wsz , int cch ) -{ - __int64 nVal = *pVal; - if (FAILED(AtlGetSAXValue(&nVal, wsz, cch))) - return E_FAIL; - -#ifndef _ATL_SOAP_NO_PARAMETER_VALIDATIONS - if(nVal < std::numeric_limits::min() || nVal > std::numeric_limits::max()) - return E_FAIL; -#endif - - *pVal = T(nVal); - return S_OK; - - -} -#pragma pop_macro("max") -#pragma pop_macro("min") - -//////////////////////////////////////////////////////////////////////////////// -// -// AtlGetXMLValue (for IXMLDOMDocument) - get the real type from the XML data -// -/////////////////////////////////////////////////////////////////////////////// - -// -// generic IXMLDOMNode template function -// delegates to AtlGetSAXValue -// -template -inline HRESULT AtlGetXMLValue(IXMLDOMNode *pParam, T *pVal) -{ - CComBSTR bstrVal; - HRESULT hr = AtlGetXMLValue(pParam, &bstrVal); - if (SUCCEEDED(hr)) - { - hr = AtlGetSAXValue(pVal, bstrVal, bstrVal.Length()); - } - - return hr; -} - -// specialization for BSTR -template <> -inline HRESULT AtlGetXMLValue(IXMLDOMNode *pParam, BSTR *pbstrVal) -{ - if (pParam == NULL) - { - return E_INVALIDARG; - } - if (pbstrVal == NULL) - { - return E_POINTER; - } - - CComPtr spChild; - if (pParam->get_firstChild(&spChild) == S_OK) - { - CComPtr spXmlChild; - if (spChild->get_firstChild(&spXmlChild) == S_OK) - { - return (pParam->get_xml(pbstrVal) == S_OK ? S_OK : E_FAIL); - } - } - - return (pParam->get_text(pbstrVal) == S_OK) ? S_OK : E_FAIL; -} - -//////////////////////////////////////////////////////////////////////////////// -// -// AtlGetSAXValue - (for SAX or generic) get the real type from the XML data -// -//////////////////////////////////////////////////////////////////////////////// - -template <> -inline HRESULT AtlGetSAXValue(bool *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLENSURE( wsz != NULL ); - - if (!pVal) - { - return E_POINTER; - } - - *pVal = false; - - HRESULT hr = E_FAIL; - switch (wsz[0]) - { - case L'1': - { - if (cch==1) - { - *pVal = true; - hr = S_OK; - } - break; - } - case L'0': - { - if (cch==1) - { - *pVal = false; - hr = S_OK; - } - break; - } - case L't': - { - if (cch==sizeof("true")-1 && !wcsncmp(wsz, L"true", cch)) - { - *pVal = true; - hr = S_OK; - } - break; - } - case L'f': - { - if (cch==sizeof("false")-1 && !wcsncmp(wsz, L"false", cch)) - { - *pVal = false; - hr = S_OK; - } - break; - } - } - - return hr; -} - -template <> -inline HRESULT AtlGetSAXValue<__int64>(__int64 *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLENSURE_RETURN( wsz != NULL ); - - if (!pVal) - { - return E_POINTER; - } - - _ATLTRY - { - CFixedStringT wstr(wsz, cch); - const wchar_t *pStart = ATL::SkipWhitespace(static_cast(wstr)); - const wchar_t *pEnd; - - __int64 i = 0; - errno_t errnoValue = AtlStrToNum(&i, pStart, const_cast(&pEnd), 10); - if (errnoValue == ERANGE) - { - return E_FAIL;//overflow or underflow case - } - pEnd = ATL::SkipWhitespace(pEnd); - _ATL_VALIDATE_PARAMETER_END(pEnd); - *pVal = i; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; -} - -template <> -inline HRESULT AtlGetSAXValue(unsigned __int64 *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLENSURE_RETURN( wsz != NULL ); - - if (!pVal) - { - return E_POINTER; - } - - _ATLTRY - { - CFixedStringT wstr(wsz, cch); - const wchar_t *pStart = ATL::SkipWhitespace(static_cast(wstr)); - const wchar_t *pEnd; - - unsigned __int64 i = 0; - errno_t errnoValue = AtlStrToNum(&i, pStart, const_cast(&pEnd), 10); - if (errnoValue == ERANGE) - { - return E_FAIL;//overflow or underflow case - } - pEnd = ATL::SkipWhitespace(pEnd); - _ATL_VALIDATE_PARAMETER_END(pEnd); - *pVal = i; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; -} -template <> -inline HRESULT AtlGetSAXValue(double *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLENSURE_RETURN( wsz != NULL ); - - if (!pVal) - { - return E_POINTER; - } - - if ((cch == 3) && (wsz[0]==L'I') && (!wcsncmp(wsz, L"INF", cch))) - { - *(((int *) pVal)+0) = 0x0000000; - *(((int *) pVal)+1) = 0x7FF00000; - } - else if ((cch == 3) && (wsz[0]==L'N') && (!wcsncmp(wsz, L"NaN", cch))) - { - *(((int *) pVal)+0) = 0x0000000; - *(((int *) pVal)+1) = 0xFFF80000; - } - else if ((cch == 4) && (wsz[1]==L'I') && (!wcsncmp(wsz, L"-INF", cch))) - { - *(((int *) pVal)+0) = 0x0000000; - *(((int *) pVal)+1) = 0xFFF00000; - } - else - { - errno_t errnoValue = 0; - - _ATLTRY - { - CFixedStringT wstr(wsz, cch); - const wchar_t *pStart = ATL::SkipWhitespace(static_cast(wstr)); - const wchar_t *pEnd; - double d = 0.0; - errnoValue = AtlStrToNum(&d, pStart, const_cast(&pEnd)); - pEnd = ATL::SkipWhitespace(pEnd); - _ATL_VALIDATE_PARAMETER_END(pEnd); - *pVal = d; - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - if ((*pVal == -HUGE_VAL) || (*pVal == HUGE_VAL) || (errnoValue == ERANGE)) - { - return E_FAIL; - } - } - - return S_OK; -} - -template <> -inline HRESULT AtlGetSAXValue(float *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLASSERT( wsz != NULL ); - - if (!pVal) - { - return E_POINTER; - } - - double d = *pVal; - if (SUCCEEDED(AtlGetSAXValue(&d, wsz, cch))) - { -#ifdef _ATL_SOAP_PARAMETER_VALIDATIONS - if(d > FLT_MAX || d < -FLT_MAX) - return E_FAIL; -#endif - *pVal = (float) d; - return S_OK; - } - - return E_FAIL; -} - -template <> -inline HRESULT AtlGetSAXValue(BSTR *pVal, __in_z const wchar_t *wsz, int cch) -{ - ATLASSERT( wsz != NULL ); - - if (pVal == NULL) - { - return E_POINTER; - } - - *pVal = SysAllocStringLen(wsz, cch); - - return ((*pVal != NULL) ? S_OK : E_OUTOFMEMORY); -} - -inline HRESULT AtlGetSAXBlobValue( - ATLSOAP_BLOB *pVal, - const wchar_t *wsz, - int cch, - IAtlMemMgr *pMemMgr, - bool bHex = false) -{ - ATLENSURE_RETURN( wsz != NULL ); - ATLENSURE_RETURN( pMemMgr != NULL ); - - if (pVal == NULL) - { - return E_POINTER; - } - - if (pVal->data != NULL) - { - return E_INVALIDARG; - } - - pVal->data = NULL; - pVal->size = 0; - - int nLength = AtlUnicodeToUTF8(wsz, cch, NULL, 0); - - if (nLength != 0) - { - char * pSrc = (char *) pMemMgr->Allocate(nLength); - if (pSrc != NULL) - { - nLength = AtlUnicodeToUTF8(wsz, cch, pSrc, nLength); - if (nLength != 0) - { - pVal->data = (unsigned char *) pMemMgr->Allocate(nLength); - if (pVal->data != NULL) - { - BOOL bRet; - int nDataLength = nLength; - if (!bHex) - { - bRet = Base64Decode(pSrc, nLength, pVal->data, &nDataLength); - } - else - { - bRet = AtlHexDecode(pSrc, nLength, pVal->data, &nDataLength); - } - if (bRet) - { - pVal->size = nDataLength; - } - } - } - - pMemMgr->Free(pSrc); - } - } - - if (pVal->size == 0) - { - if (pVal->data != NULL) - { - pMemMgr->Free(pVal->data); - pVal->data = NULL; - } - } - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////////////// -// -// AtlGenXMLValue template and specializations -// -//////////////////////////////////////////////////////////////////////////////// - -template -inline HRESULT AtlGenXMLValue(__in IWriteStream *pStream, __in T *pVal) -{ - if ((pStream == NULL) || (pVal == NULL)) - { - return E_INVALIDARG; - } - - // - // delegate to CWriteStreamHelper - // - CWriteStreamHelper s(pStream); - - return (s.Write(*pVal) == TRUE ? S_OK : E_FAIL); -} - -#ifdef _NATIVE_WCHAR_T_DEFINED -template <> -inline HRESULT AtlGenXMLValue(__in IWriteStream *pStream, __in wchar_t *pVal) -{ - return AtlGenXMLValue(pStream, (unsigned short *)pVal); -} -#endif - -template <> -inline HRESULT AtlGenXMLValue(__in IWriteStream *pStream, __deref_inout_z wchar_t **pVal) -{ - if ((pStream == NULL) || (*pVal == NULL)) - { - return E_INVALIDARG; - } - - wchar_t *wszWrite = *pVal; - int nSrcLen = (int)wcslen(*pVal); - int nCnt = EscapeXML(*pVal, nSrcLen, NULL, 0); - if (nCnt > nSrcLen) - { - nCnt++; - wszWrite = (wchar_t *)calloc((nCnt),sizeof(wchar_t)); - if (wszWrite == NULL) - { - return E_OUTOFMEMORY; - } - - nCnt = EscapeXML(*pVal, nSrcLen, wszWrite, nCnt); - if (nCnt == 0) - { - free(wszWrite); - return E_FAIL; - } - wszWrite[nCnt] = L'\0'; - nSrcLen = nCnt; - } - - nCnt = AtlUnicodeToUTF8(wszWrite, nSrcLen, NULL, 0); - HRESULT hr = E_FAIL; - if ((nCnt == 0) || (nCnt == nSrcLen)) - { - CWriteStreamHelper s(pStream); - - hr = (s.Write(wszWrite) == TRUE ? S_OK : E_FAIL); - } - else - { - nCnt++; - CHeapPtr szWrite; - szWrite.AllocateBytes((size_t)(nCnt)); - if (szWrite != NULL) - { - nCnt = AtlUnicodeToUTF8(wszWrite, nSrcLen, szWrite, nCnt); - if (nCnt != 0) - { - hr = pStream->WriteStream(szWrite, nCnt, NULL); - } - } - else - { - ATLTRACE( _T("ATLSOAP: AtlGenXMLValue -- out of memory.\r\n") ); - - hr = E_OUTOFMEMORY; - } - } - - if (wszWrite != *pVal) - { - free(wszWrite); - } - - return hr; -} - -template <> -inline HRESULT AtlGenXMLValue(IWriteStream *pStream, double *pVal) -{ - if ((pStream == NULL) || (pVal == NULL)) - { - return E_INVALIDARG; - } - - HRESULT hr; - switch (_fpclass(*pVal)) - { - case _FPCLASS_SNAN: - case _FPCLASS_QNAN: - { - hr = pStream->WriteStream("NaN", 3, NULL); - break; - } - case _FPCLASS_NINF: - { - hr = pStream->WriteStream("-INF", 4, NULL); - break; - } - case _FPCLASS_PINF: - { - hr = pStream->WriteStream("INF", 3, NULL); - break; - } - case _FPCLASS_NZ: - { - hr = pStream->WriteStream("-0", 2, NULL); - break; - } - default: - { - /*** - * 2 = sign + decimal point - * ndec = decimal digits - * 5 = exponent letter (e or E), exponent sign, three digits exponent - * 1 = extra space for rounding - * 1 = string terminator '\0' - ***/ - const int ndec = 512; - CHAR szBuf[ndec+9]; - szBuf[0] = '\0'; - Checked::gcvt_s(szBuf, _countof(szBuf), *pVal, ndec); - size_t nLen = strlen(szBuf); - if (nLen && szBuf[nLen-1] == '.') - { - szBuf[--nLen] = '\0'; - } - - hr = pStream->WriteStream(szBuf, (int)nLen, NULL); - break; - } - } - - return hr; -} - -template <> -inline HRESULT AtlGenXMLValue(IWriteStream *pStream, float *pVal) -{ - if ((pStream == NULL) || (pVal == NULL)) - { - return E_INVALIDARG; - } - - double d = *pVal; - - return AtlGenXMLValue(pStream, &d); -} - -template <> -inline HRESULT AtlGenXMLValue(IWriteStream *pStream, bool *pVal) -{ - if ((pStream == NULL) || (pVal == NULL)) - { - return E_INVALIDARG; - } - - if (*pVal == true) - { - return pStream->WriteStream("true", sizeof("true")-1, NULL); - } - - return pStream->WriteStream("false", sizeof("false")-1, NULL); -} - -inline HRESULT AtlGenXMLBlobValue( - IWriteStream *pStream, - ATLSOAP_BLOB *pVal, - IAtlMemMgr *pMemMgr, - bool bHex = false) -{ - if ((pStream == NULL) || (pVal == NULL) || (pMemMgr == NULL)) - { - return E_INVALIDARG; - } - - HRESULT hr = E_FAIL; - int nLength; - if (!bHex) - { - nLength = Base64EncodeGetRequiredLength(pVal->size, ATLSOAP_BASE64_FLAGS); - } - else - { - nLength = AtlHexEncodeGetRequiredLength(pVal->size); - } - - char *pEnc = (char *) pMemMgr->Allocate(nLength); - if (pEnc != NULL) - { - BOOL bRet; - if (!bHex) - { - bRet = Base64Encode(pVal->data, pVal->size, pEnc, &nLength, ATLSOAP_BASE64_FLAGS); - } - else - { - bRet = AtlHexEncode(pVal->data, pVal->size, pEnc, &nLength); - } - if (bRet) - { - hr = pStream->WriteStream(pEnc, nLength, NULL); - } - - pMemMgr->Free(pEnc); - } - - return hr; -} - -template -inline HRESULT AtlCleanupValue(T * /*pVal*/) -{ - return S_OK; -} - -inline HRESULT AtlCleanupBlobValue(ATLSOAP_BLOB *pVal, IAtlMemMgr *pMemMgr) -{ - if ((pVal == NULL) || (pMemMgr == NULL)) - { - return E_INVALIDARG; - } - - if (pVal->data != NULL) - { - pMemMgr->Free(pVal->data); - pVal->data = NULL; - pVal->size = 0; - } - - return S_OK; -} - -template <> -inline HRESULT AtlCleanupValue(ATLSOAP_BLOB *pVal) -{ - ATLTRACE( _T("Warning: AtlCleanupValue was called -- assuming CRT allocator.\r\n") ); - - if (pVal == NULL) - { - return E_INVALIDARG; - } - - if (pVal->data != NULL) - { - free(pVal->data); - pVal->data = NULL; - pVal->size = 0; - } - - return S_OK; -} - -template <> -inline HRESULT AtlCleanupValue(BSTR *pVal) -{ - if (pVal == NULL) - { - // should never happen - ATLASSERT( FALSE ); - return E_INVALIDARG; - } - - if ((*pVal) != NULL) - { - // null strings are okay - SysFreeString(*pVal); - *pVal = NULL; - } - - return S_OK; -} - -template -inline HRESULT AtlCleanupValueEx(T *pVal, IAtlMemMgr *pMemMgr) -{ - pMemMgr; - - return AtlCleanupValue(pVal); -} - -template <> -inline HRESULT AtlCleanupValueEx(ATLSOAP_BLOB *pVal, IAtlMemMgr *pMemMgr) -{ - return AtlCleanupBlobValue(pVal, pMemMgr); -} - -// single dimensional arrays -template -inline HRESULT AtlCleanupArray(T *pArray, int nCnt) -{ - if (pArray == NULL) - { - return E_INVALIDARG; - } - - for (int i=0; i -inline HRESULT AtlCleanupArrayEx(T *pArray, int nCnt, IAtlMemMgr *pMemMgr) -{ - if (pArray == NULL) - { - return E_INVALIDARG; - } - - for (int i=0; i -inline HRESULT AtlCleanupArrayMD(T *pArray, const int *pDims) -{ - if ((pArray == NULL) || (pDims == NULL)) - { - return E_INVALIDARG; - } - - // calculate size - int nCnt = 1; - for (int i=1; i<=pDims[0]; i++) - { - nCnt*= pDims[i]; - } - - return AtlCleanupArray(pArray, nCnt); -} - -template -inline HRESULT AtlCleanupArrayMDEx(T *pArray, const int *pDims, IAtlMemMgr *pMemMgr) -{ - if ((pArray == NULL) || (pDims == NULL)) - { - return E_INVALIDARG; - } - - // calculate size - int nCnt = 1; - for (int i=1; i<=pDims[0]; i++) - { - nCnt*= pDims[i]; - } - - return AtlCleanupArrayEx(pArray, nCnt, pMemMgr); -} - - -#pragma pack(push,_ATL_PACKING) -namespace ATL -{ - -//////////////////////////////////////////////////////////////////////////////// -// -// CSAXSoapErrorHandler -// -//////////////////////////////////////////////////////////////////////////////// - -class CSAXSoapErrorHandler : public ISAXErrorHandler -{ -private: - - CFixedStringT m_strParseError; - -public: - virtual ~CSAXSoapErrorHandler() - { - } - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (!ppv) - { - return E_POINTER; - } - - if (InlineIsEqualGUID(riid, __uuidof(ISAXErrorHandler)) || - InlineIsEqualGUID(riid, __uuidof(IUnknown))) - { - *ppv = static_cast(this); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - - const CStringW& GetParseError() - { - return m_strParseError; - } - - HRESULT __stdcall error( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) - { - (pLocator); - (wszErrorMessage); - (hrErrorCode); - - ATLTRACE( _T("ATLSOAP: parse error: %ws\r\n"), wszErrorMessage ); - - _ATLTRY - { - m_strParseError = wszErrorMessage; - } - _ATLCATCHALL() - { - return E_FAIL; - } - - return hrErrorCode; - } - - HRESULT __stdcall fatalError( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) - { - (pLocator); - (wszErrorMessage); - (hrErrorCode); - - ATLTRACE( _T("ATLSOAP: fatal parse error: %ws\r\n"), wszErrorMessage ); - - _ATLTRY - { - m_strParseError = wszErrorMessage; - } - _ATLCATCHALL() - { - return E_FAIL; - } - - return hrErrorCode; - } - - HRESULT __stdcall ignorableWarning( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) - { - (pLocator); - (wszErrorMessage); - (hrErrorCode); - - ATLTRACE( _T("ATLSOAP: ignorable warning: %ws\r\n"), wszErrorMessage ); - - return hrErrorCode; - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// -// ISAXContentHandlerImpl -// -//////////////////////////////////////////////////////////////////////////////// - -class ISAXContentHandlerImpl : - public ISAXContentHandler -{ -public: - - // - // ISAXContentHandler interface - // - - HRESULT __stdcall putDocumentLocator(ISAXLocator * /*pLocator*/) - { - return S_OK; - } - - HRESULT __stdcall startDocument() - { - return S_OK; - } - - HRESULT __stdcall endDocument() - { - return S_OK; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t * /*wszPrefix*/, - int /*cchPrefix*/, - const wchar_t * /*wszUri*/, - int /*cchUri*/) - { - return S_OK; - } - - HRESULT __stdcall endPrefixMapping( - const wchar_t * /*wszPrefix*/, - int /*cchPrefix*/) - { - return S_OK; - } - - HRESULT __stdcall startElement( - const wchar_t * /*wszNamespaceUri*/, - int /*cchNamespaceUri*/, - const wchar_t * /*wszLocalName*/, - int /*cchLocalName*/, - const wchar_t * /*wszQName*/, - int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) - { - return S_OK; - } - - HRESULT __stdcall endElement( - const wchar_t * /*wszNamespaceUri*/, - int /*cchNamespaceUri*/, - const wchar_t * /*wszLocalName*/, - int /*cchLocalName*/, - const wchar_t * /*wszQName*/, - int /*cchQName*/) - { - return S_OK; - } - - HRESULT __stdcall characters( - const wchar_t * /*wszChars*/, - int /*cchChars*/) - { - return S_OK; - } - - HRESULT __stdcall ignorableWhitespace( - const wchar_t * /*wszChars*/, - int /*cchChars*/) - { - return S_OK; - } - - HRESULT __stdcall processingInstruction( - const wchar_t * /*wszTarget*/, - int /*cchTarget*/, - const wchar_t * /*wszData*/, - int /*cchData*/) - { - return S_OK; - } - - HRESULT __stdcall skippedEntity( - const wchar_t * /*wszName*/, - int /*cchName*/) - { - return S_OK; - } -}; // class ISAXContentHandlerImpl - -//////////////////////////////////////////////////////////////////////////////// -// -// SAX skip element handler utility class -// (skip an element and all its child elements) -// -//////////////////////////////////////////////////////////////////////////////// - -class CSkipHandler : public ISAXContentHandlerImpl -{ -public: - virtual ~CSkipHandler() - { - } - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_ISAXContentHandler)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - -private: - - DWORD m_dwReset; - CComPtr m_spReader; - CComPtr m_spParent; - - DWORD DisableReset(DWORD dwCnt = 1) - { - m_dwReset += dwCnt; - - return m_dwReset; - } - - DWORD EnableReset() - { - if (m_dwReset > 0) - { - --m_dwReset; - } - - return m_dwReset; - } - -public: - - CSkipHandler(ISAXContentHandler *pParent = NULL, ISAXXMLReader *pReader = NULL) - : m_spParent(pParent), m_spReader(pReader), m_dwReset(1) - { - } - - void SetParent(ISAXContentHandler *pParent) - { - m_spParent = pParent; - } - void DetachParent() - { - m_spParent.Detach(); - } - - void SetReader(ISAXXMLReader *pReader) - { - m_spReader = pReader; - } - - HRESULT __stdcall startElement( - const wchar_t * /*wszNamespaceUri*/, - int /*cchNamespaceUri*/, - const wchar_t * /*wszLocalName*/, - int /*cchLocalName*/, - const wchar_t * /*wszQName*/, - int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) - { - DisableReset(); - return S_OK; - } - - HRESULT __stdcall endElement( - const wchar_t * /*wszNamespaceUri*/, - int /*cchNamespaceUri*/, - const wchar_t * /*wszLocalName*/, - int /*cchLocalName*/, - const wchar_t * /*wszQName*/, - int /*cchQName*/) - { - if (EnableReset() == 0) - { - m_spReader->putContentHandler(m_spParent); - } - - return S_OK; - } -}; // class CSkipHandler - - -//////////////////////////////////////////////////////////////////////////////// -// -// SAX string builder class -// -//////////////////////////////////////////////////////////////////////////////// - -class CSAXStringBuilder : public ISAXContentHandlerImpl -{ -public: - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_ISAXContentHandler)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - -private: - - ISAXContentHandler * m_pParent; - ISAXXMLReader * m_pReader; - DWORD m_dwReset; - CFixedStringT m_str; - - DWORD DisableReset(DWORD dwReset = 1) - { - m_dwReset+= dwReset; - - return m_dwReset; - } - - DWORD EnableReset() - { - if (m_dwReset > 0) - { - --m_dwReset; - } - - return m_dwReset; - } - -public: - - CSAXStringBuilder(ISAXXMLReader *pReader = NULL, ISAXContentHandler *pParent = NULL) - :m_pReader(pReader), m_pParent(pParent), m_dwReset(0) - { - } - - virtual ~CSAXStringBuilder() - { - } - - void SetReader(ISAXXMLReader *pReader) - { - m_pReader = pReader; - } - - void SetParent(ISAXContentHandler *pParent) - { - m_pParent = pParent; - } - - const CStringW& GetString() - { - return m_str; - } - - void Clear() - { - m_str.Empty(); - m_dwReset = 0; - } - - HRESULT __stdcall startElement( - const wchar_t * /*wszNamespaceUri*/, - int /*cchNamespaceUri*/, - const wchar_t * /*wszLocalName*/, - int /*cchLocalName*/, - const wchar_t *wszQName, - int cchQName, - ISAXAttributes *pAttributes) - { - if (m_dwReset == 0) - { - // if there is unescaped, nested XML, must disable - // an additional time for the first element - DisableReset(); - } - DisableReset(); - - int nAttrs = 0; - HRESULT hr = pAttributes->getLength(&nAttrs); - - _ATLTRY - { - if (SUCCEEDED(hr)) - { - m_str.Append(L"<", 1); - m_str.Append(wszQName, cchQName); - - const wchar_t *wszAttrNamespaceUri = NULL; - const wchar_t *wszAttrLocalName = NULL; - const wchar_t *wszAttrQName = NULL; - const wchar_t *wszAttrValue = NULL; - int cchAttrUri = 0; - int cchAttrLocalName = 0; - int cchAttrQName = 0; - int cchAttrValue = 0; - - for (int i=0; igetName(i, &wszAttrNamespaceUri, &cchAttrUri, - &wszAttrLocalName, &cchAttrLocalName, &wszAttrQName, &cchAttrQName); - - if (FAILED(hr)) - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::startElement -- MSXML error.\r\n") ); - - break; - } - - m_str.Append(L" ", 1); - m_str.Append(wszAttrQName, cchAttrQName); - - hr = pAttributes->getValue(i, &wszAttrValue, &cchAttrValue); - - if (FAILED(hr)) - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::startElement -- MSXML error.\r\n") ); - - break; - } - - m_str.Append(L"=\"", sizeof("=\"")-1); - if (cchAttrValue != 0) - { - m_str.Append(wszAttrValue, cchAttrValue); - } - m_str.Append(L"\"", 1); - } - - if (SUCCEEDED(hr)) - { - m_str.Append(L">", 1); - } - } - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::startElement -- out of memory.\r\n") ); - - hr = E_OUTOFMEMORY; - } - - return hr; - } - - HRESULT __stdcall endElement( - const wchar_t * wszNamespaceUri, - int cchNamespaceUri, - const wchar_t * wszLocalName, - int cchLocalName, - const wchar_t *wszQName, - int cchQName) - { - HRESULT hr = S_OK; - _ATLTRY - { - if (EnableReset() == 0) - { - hr = m_pParent->characters((LPCWSTR) m_str, m_str.GetLength()); - if (SUCCEEDED(hr)) - { - hr = m_pParent->endElement(wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, wszQName, cchQName); - } - - m_pReader->putContentHandler(m_pParent); - } - - if (m_dwReset > 0) - { - m_str.Append(L"", 1); - } - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::endElement -- out of memory.\r\n") ); - - hr = E_OUTOFMEMORY; - } - - return hr; - } - - HRESULT __stdcall characters( - const wchar_t *wszChars, - int cchChars) - { - _ATLTRY - { - m_str.Append(wszChars, cchChars); - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::characters -- out of memory.\r\n") ); - - return E_OUTOFMEMORY; - } - - return S_OK; - } - - HRESULT __stdcall ignorableWhitespace( - const wchar_t *wszChars, - int cchChars) - { - _ATLTRY - { - m_str.Append(wszChars, cchChars); - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSAXStringBuilder::ignorableWhitespace -- out of memory.\r\n") ); - - return E_OUTOFMEMORY; - } - - return S_OK; - } -}; // class CSAXStringBuilder - -} // namespace ATL -#pragma pack(pop) - -//////////////////////////////////////////////////////////////////////////////// -// -// SOAP data structure definitions -// -//////////////////////////////////////////////////////////////////////////////// - -// -// ***************************** WARNING ***************************** -// THESE STRUCTURES ARE INTERNAL ONLY, FOR USE WITH THE ATL SERVER SOAP -// ATTRIBUTES. USERS SHOULD NOT USE THESE TYPES DIRECTLY. ABSOLUTELY NO -// GUARANTEES ARE MADE ABOUT BACKWARD COMPATIBILITY FOR DIRECT USE OF -// THESE TYPES. -// - -//////////////////////////////////////////////////////////////////////////////// -// -// BEGIN PRIVATE DEFINITIONS -// -//////////////////////////////////////////////////////////////////////////////// - -inline HRESULT AtlSoapGetArraySize(ISAXAttributes *pAttributes, size_t *pnSize, - const wchar_t **pwszTypeStart = NULL, const wchar_t **pwszTypeEnd = NULL) -{ - if (pnSize == NULL) - { - return E_POINTER; - } - - if (pAttributes == NULL) - { - return E_INVALIDARG; - } - - *pnSize = 0; - - HRESULT hr = S_OK; - - _ATLTRY - { - const wchar_t *wszTmp; - int cch; - - hr = GetAttribute(pAttributes, L"arrayType", sizeof("arrayType")-1, - &wszTmp, &cch, SOAPENC_NAMESPACEW, sizeof(SOAPENC_NAMESPACEA)-1); - - if ((SUCCEEDED(hr)) && (wszTmp != NULL)) - { - hr = E_FAIL; - - CFixedStringT wstrArrayType(wszTmp, cch); - const wchar_t *wsz = static_cast(wstrArrayType); - - const wchar_t *wszTypeStart = NULL; - const wchar_t *wszTypeEnd = NULL; - - // skip spaces - while (iswspace(*wsz) != 0) - { - wsz++; - } - - // no need to walk the string if the caller is not interested - if ((pwszTypeStart != NULL) && (pwszTypeEnd != NULL)) - { - wszTypeStart = wsz; - wszTypeEnd = wcschr(wszTypeStart, L':'); - if (wszTypeEnd != NULL) - { - wszTypeStart = wszTypeEnd+1; - } - } - - // SOAP Section 5 encodings are of the form: - // :arrayType="[dim1(,dim_i)*] - // for example: SOAP-ENC:arrayType="xsd:string[2,4]" - - wsz = wcschr(wsz, L'['); - if (wsz != NULL) - { - wszTypeEnd = wsz-1; - if (wsz[1] == ']') - { - return S_FALSE; - } - - *pnSize = 1; - - // get the size of each dimension - while (wsz != NULL) - { - wsz++; - int nDim = _wtoi(wsz); - if (nDim < 0) - { - hr = E_FAIL; - break; - } - *pnSize *= (size_t) nDim; - if (!nDim) - { - break; - } - - wsz = wcschr(wsz, L','); - } - - if ((pwszTypeStart != NULL) && (pwszTypeEnd != NULL)) - { - *pwszTypeStart = wszTypeStart; - *pwszTypeEnd = wszTypeEnd; - } - - hr = S_OK; - } - } - else - { - // not a section-5 encoding - hr = S_FALSE; - } - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - - return hr; -} - -inline size_t AtlSoapGetArrayDims(const int *pDims) -{ - if (pDims == NULL) - { - return 0; - } - - size_t nRet = 1; - for (int i=1; i<=pDims[0]; i++) - { - nRet *= pDims[i]; - } - - return nRet; -} - -enum SOAPFLAGS -{ - SOAPFLAG_NONE = 0x00000000, - SOAPFLAG_IN = 0x00000001, - SOAPFLAG_OUT = 0x00000002, - SOAPFLAG_RETVAL = 0x00000004, - SOAPFLAG_DYNARR = 0x00000008, - SOAPFLAG_FIXEDARR = 0x00000010, - SOAPFLAG_MUSTUNDERSTAND = 0x00000020, - SOAPFLAG_UNKSIZE = 0x00000040, - SOAPFLAG_READYSTATE = 0x00000080, - SOAPFLAG_FIELD = 0x00000100, - SOAPFLAG_NOMARSHAL = 0x00000200, - SOAPFLAG_NULLABLE = 0x00000400, - SOAPFLAG_DOCUMENT = 0x00000800, - SOAPFLAG_RPC = 0x00001000, - SOAPFLAG_LITERAL = 0x00002000, - SOAPFLAG_ENCODED = 0x00004000, - SOAPFLAG_PID = 0x00008000, - SOAPFLAG_PAD = 0x00010000, - SOAPFLAG_CHAIN = 0x00020000, - SOAPFLAG_SIZEIS = 0x00040000, - SOAPFLAG_DYNARRWRAPPER = 0x00080000 -}; - -enum SOAPMAPTYPE -{ - SOAPMAP_ERR = 0, - SOAPMAP_ENUM, - SOAPMAP_FUNC, - SOAPMAP_STRUCT, - SOAPMAP_UNION, - SOAPMAP_HEADER, - SOAPMAP_PARAM -}; - -struct _soapmap; - -struct _soapmapentry -{ - ULONG nHash; - const char * szField; - const WCHAR * wszField; - int cchField; - int nVal; - DWORD dwFlags; - - size_t nOffset; - const int * pDims; - - const _soapmap * pChain; - - int nSizeIs; - - ULONG nNamespaceHash; - const char *szNamespace; - const wchar_t *wszNamespace; - int cchNamespace; -}; - -struct _soapmap -{ - ULONG nHash; - const char * szName; - const wchar_t * wszName; - int cchName; - int cchWName; - SOAPMAPTYPE mapType; - const _soapmapentry * pEntries; - size_t nElementSize; - size_t nElements; - int nRetvalIndex; - - DWORD dwCallFlags; - - ULONG nNamespaceHash; - const char *szNamespace; - const wchar_t *wszNamespace; - int cchNamespace; -}; - -enum SOAPTYPES -{ - SOAPTYPE_ERR = -2, - SOAPTYPE_UNK = -1, - SOAPTYPE_STRING = 0, - SOAPTYPE_BOOLEAN, - SOAPTYPE_FLOAT, - SOAPTYPE_DOUBLE, - SOAPTYPE_DECIMAL, - SOAPTYPE_DURATION, - SOAPTYPE_HEXBINARY, - SOAPTYPE_BASE64BINARY, - SOAPTYPE_ANYURI, - SOAPTYPE_ID, - SOAPTYPE_IDREF, - SOAPTYPE_ENTITY, - SOAPTYPE_NOTATION, - SOAPTYPE_QNAME, - SOAPTYPE_NORMALIZEDSTRING, - SOAPTYPE_TOKEN, - SOAPTYPE_LANGUAGE, - SOAPTYPE_IDREFS, - SOAPTYPE_ENTITIES, - SOAPTYPE_NMTOKEN, - SOAPTYPE_NMTOKENS, - SOAPTYPE_NAME, - SOAPTYPE_NCNAME, - SOAPTYPE_INTEGER, - SOAPTYPE_NONPOSITIVEINTEGER, - SOAPTYPE_NEGATIVEINTEGER, - SOAPTYPE_LONG, - SOAPTYPE_INT, - SOAPTYPE_SHORT, - SOAPTYPE_BYTE, - SOAPTYPE_NONNEGATIVEINTEGER, - SOAPTYPE_UNSIGNEDLONG, - SOAPTYPE_UNSIGNEDINT, - SOAPTYPE_UNSIGNEDSHORT, - SOAPTYPE_UNSIGNEDBYTE, - SOAPTYPE_POSITIVEINTEGER, - SOAPTYPE_DATETIME, - SOAPTYPE_TIME, - SOAPTYPE_DATE, - SOAPTYPE_GMONTH, - SOAPTYPE_GYEARMONTH, - SOAPTYPE_GYEAR, - SOAPTYPE_GMONTHDAY, - SOAPTYPE_GDAY, - - SOAPTYPE_USERBASE = 0x00001000 -}; - -inline ULONG AtlSoapHashStr(const char * sz) -{ - ULONG nHash = 0; - while (*sz != 0) - { - nHash = (nHash<<5)+nHash+(*sz); - sz++; - } - - return nHash; -} - -inline ULONG AtlSoapHashStr(const wchar_t * sz) -{ - ULONG nHash = 0; - while (*sz != 0) - { - nHash = (nHash<<5)+nHash+(*sz); - sz++; - } - - return nHash; -} - -inline ULONG AtlSoapHashStr(const char * sz, int cch) -{ - ULONG nHash = 0; - for (int i=0; i m_spReader; - CSAXStringBuilder m_stringBuilder; - CSkipHandler m_skipHandler; - - const wchar_t *m_wszSoapPrefix; - int m_cchSoapPrefix; - -public: - virtual ~CSoapFaultParser() - { - m_skipHandler.DetachParent(); - } - - // IUnknown interface - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_ISAXContentHandler)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - - // constructor - - CSoapFaultParser(CSoapFault *pFault, ISAXXMLReader *pReader) - :m_pFault(pFault), m_dwState(STATE_ERROR), m_spReader(pReader) - { - ATLASSERT( pFault != NULL ); - ATLASSERT( pReader != NULL ); - } - - // ISAXContentHandler interface - HRESULT __stdcall startElement( - const wchar_t * wszNamespaceUri, - int cchNamespaceUri, - const wchar_t * wszLocalName, - int cchLocalName, - const wchar_t * /*wszQName*/, - int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) - { - struct _faultmap - { - const wchar_t *wszTag; - int cchTag; - DWORD dwState; - }; - - const static _faultmap s_faultParseMap[] = - { - { L"Envelope", sizeof("Envelope")-1, CSoapFaultParser::STATE_ENVELOPE }, - { L"Body", sizeof("Body")-1, CSoapFaultParser::STATE_BODY }, - { L"Header", sizeof("Header")-1, CSoapFaultParser::STATE_BODY }, - { L"Fault", sizeof("Fault")-1, CSoapFaultParser::STATE_START }, - { L"faultcode", sizeof("faultcode")-1, CSoapFaultParser::STATE_FAULTCODE }, - { L"faultstring", sizeof("faultstring")-1, CSoapFaultParser::STATE_FAULTSTRING }, - { L"faultactor", sizeof("faultactor")-1, CSoapFaultParser::STATE_FAULTACTOR }, - { L"detail", sizeof("detail")-1, CSoapFaultParser::STATE_DETAIL } - }; - - if (m_spReader.p == NULL) - { - ATLTRACE( _T("ATLSOAP: CSoapFaultParser::startElement -- ISAXXMLReader is NULL.\r\n" ) ); - - return E_INVALIDARG; - } - - m_dwState &= ~STATE_RESET; - for (int i=0; i<(sizeof(s_faultParseMap)/sizeof(s_faultParseMap[0])); i++) - { - if ((cchLocalName == s_faultParseMap[i].cchTag) && - (!wcsncmp(wszLocalName, s_faultParseMap[i].wszTag, cchLocalName))) - { - DWORD dwState = s_faultParseMap[i].dwState; - if ((dwState & (STATE_START | STATE_ENVELOPE | STATE_BODY)) == 0) - { - m_stringBuilder.SetReader(m_spReader); - m_stringBuilder.SetParent(this); - - m_stringBuilder.Clear(); - m_spReader->putContentHandler( &m_stringBuilder ); - } - else - { - if ((dwState <= m_dwState) || - (cchNamespaceUri != sizeof(SOAPENV_NAMESPACEA)-1) || - (wcsncmp(wszNamespaceUri, SOAPENV_NAMESPACEW, cchNamespaceUri))) - { - ATLTRACE( _T("ATLSOAP: CSoapFaultParser::startElement -- malformed SOAP fault.\r\n" ) ); - - return E_FAIL; - } - } - - m_dwState = dwState; - return S_OK; - } - } - if (m_dwState > STATE_START) - { - m_dwState = STATE_SKIP; - m_skipHandler.SetReader(m_spReader); - m_skipHandler.SetParent(this); - - m_spReader->putContentHandler( &m_skipHandler ); - return S_OK; - } - - ATLTRACE( _T("ATLSOAP: CSoapFaultParser::startElement -- malformed SOAP fault.\r\n" ) ); - - return E_FAIL; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t * wszPrefix, - int cchPrefix, - const wchar_t * wszUri, - int cchUri) - { - if ((cchUri == sizeof(SOAPENV_NAMESPACEA)-1) && - (!wcsncmp(wszUri, SOAPENV_NAMESPACEW, cchUri))) - { - m_wszSoapPrefix = wszPrefix; - m_cchSoapPrefix = cchPrefix; - } - - return S_OK; - } - - HRESULT __stdcall characters( - const wchar_t * wszChars, - int cchChars); -}; - -extern __declspec(selectany) const int ATLS_SOAPFAULT_CNT = 4; - -class CSoapFault -{ -private: - - struct _faultcode - { - const wchar_t *wsz; - int cch; - const wchar_t *wszFaultString; - int cchFaultString; - SOAP_ERROR_CODE errCode; - }; - - static const _faultcode s_faultCodes[]; - -public: - - // members - SOAP_ERROR_CODE m_soapErrCode; - CStringW m_strFaultCode; - CStringW m_strFaultString; - CStringW m_strFaultActor; - CStringW m_strDetail; - - CSoapFault() - : m_soapErrCode(SOAP_E_UNK) - { - } - - HRESULT SetErrorCode( - const wchar_t *wsz, - const wchar_t *wszSoapPrefix, - int cch = -1, - int cchSoapPrefix = -1, - bool bSetFaultString = true) - { - if ((wsz == NULL) || (wszSoapPrefix == NULL)) - { - return E_INVALIDARG; - } - - if (cch == -1) - { - cch = (int) wcslen(wsz); - } - - while (*wsz && iswspace(*wsz)) - { - ++wsz; - --cch; - } - - if (cchSoapPrefix == -1) - { - cchSoapPrefix = (int) wcslen(wszSoapPrefix); - } - - const wchar_t *wszLocalName = wcschr(wsz, L':'); - if (wszLocalName == NULL) - { - // faultCode must be QName - - ATLTRACE( _T("ATLSOAP: CSoapFault::SetErrorCode -- faultCode is not a QName.\r\n" ) ); - - return E_FAIL; - } - - // make sure the namespace of the fault is the - // SOAPENV namespace - if ((cchSoapPrefix != (int)(wszLocalName-wsz)) || - (wcsncmp(wsz, wszSoapPrefix, cchSoapPrefix))) - { - ATLTRACE( _T("ATLSOAP: CSoapFault::SetErrorCode -- fault namespace is incorrect.\r\n" ) ); - - return E_FAIL; - } - - wszLocalName++; - cch -= (int) (wszLocalName-wsz); - - _ATLTRY - { - for (int i=0; i spReader; - if (pReader != NULL) - { - spReader = pReader; - } - else - { - if (FAILED(spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER))) - { - ATLTRACE( _T("ATLSOAP: CSoapFault::ParseFault -- CoCreateInstance of SAXXMLReader failed.\r\n" ) ); - - return E_FAIL; - } - } - - Clear(); - CSoapFaultParser parser(const_cast(this), spReader); - spReader->putContentHandler(&parser); - - CComVariant varStream; - varStream = static_cast(pStream); - - HRESULT hr = spReader->parse(varStream); - spReader->putContentHandler(NULL); - return hr; - } - - HRESULT GenerateFault(IWriteStream *pWriteStream) - { - if ((pWriteStream == NULL) || (m_soapErrCode == SOAP_E_UNK)) - { - return E_INVALIDARG; - } - - ATLASSERT( (m_soapErrCode == SOAP_E_UNK) || - (m_soapErrCode == SOAP_E_VERSION_MISMATCH) || - (m_soapErrCode == SOAP_E_MUST_UNDERSTAND) || - (m_soapErrCode == SOAP_E_CLIENT) || - (m_soapErrCode == SOAP_E_SERVER) ); - - HRESULT hr = S_OK; - _ATLTRY - { - const wchar_t *wszFaultCode = NULL; - if (m_strFaultCode.GetLength() == 0) - { - for (int i=0; i<4; i++) - { - if (s_faultCodes[i].errCode == m_soapErrCode) - { - if (m_strFaultString.GetLength() == 0) - { - m_strFaultString.SetString(s_faultCodes[i].wszFaultString, - s_faultCodes[i].cchFaultString); - } - - wszFaultCode = s_faultCodes[i].wsz; - break; - } - } - } - - if (wszFaultCode == NULL) - { - if (m_strFaultCode.GetLength() != 0) - { - wszFaultCode = m_strFaultCode; - } - else - { - ATLTRACE( _T("CSoapFault::GenerateFault -- missing/invalid fault code.\r\n") ); - return E_FAIL; - } - } - - const LPCSTR s_szErrorFormat = - "" - "" - "" - "SOAP:%ws" - "%ws" - "%s%ws%s" - "%ws" - "" - "" - ""; - - CStringA strFault; - strFault.Format(s_szErrorFormat, wszFaultCode, m_strFaultString, - m_strFaultActor.GetLength() ? "" : "", m_strFaultActor, - m_strFaultActor.GetLength() ? "" : "", - m_strDetail); - - hr = pWriteStream->WriteStream(strFault, strFault.GetLength(), NULL); - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSoapFault::GenerateFault -- out of memory.\r\n" ) ); - hr = E_OUTOFMEMORY; - } - - return hr; - } - - void Clear() - { - m_soapErrCode = SOAP_E_UNK; - m_strFaultCode.Empty(); - m_strFaultString.Empty(); - m_strFaultActor.Empty(); - m_strDetail.Empty(); - } -}; // class CSoapFault - -#define DECLARE_SOAP_FAULT(__name, __faultstring, __errcode) \ - { L ## __name, sizeof(__name)-1, L ## __faultstring, sizeof(__faultstring), __errcode }, - -__declspec(selectany) const CSoapFault::_faultcode CSoapFault::s_faultCodes[] = -{ - DECLARE_SOAP_FAULT("VersionMismatch", "SOAP Version Mismatch Error", SOAP_E_VERSION_MISMATCH) - DECLARE_SOAP_FAULT("MustUnderstand", "SOAP Must Understand Error", SOAP_E_MUST_UNDERSTAND) - DECLARE_SOAP_FAULT("Client", "SOAP Invalid Request", SOAP_E_CLIENT) - DECLARE_SOAP_FAULT("Server", "SOAP Server Application Faulted", SOAP_E_SERVER) -}; - -ATL_NOINLINE inline HRESULT __stdcall CSoapFaultParser::characters( - const wchar_t * wszChars, - int cchChars) -{ - if (m_pFault == NULL) - { - return E_INVALIDARG; - } - - if (m_dwState & STATE_RESET) - { - return S_OK; - } - - HRESULT hr = E_FAIL; - _ATLTRY - { - switch (m_dwState) - { - case STATE_FAULTCODE: - if (m_pFault->m_soapErrCode == SOAP_E_UNK) - { - hr = m_pFault->SetErrorCode(wszChars, m_wszSoapPrefix, - cchChars, m_cchSoapPrefix, false); - } - break; - case STATE_FAULTSTRING: - if (m_pFault->m_strFaultString.GetLength() == 0) - { - m_pFault->m_strFaultString.SetString(wszChars, cchChars); - hr = S_OK; - } - break; - case STATE_FAULTACTOR: - if (m_pFault->m_strFaultActor.GetLength() == 0) - { - m_pFault->m_strFaultActor.SetString(wszChars, cchChars); - hr = S_OK; - } - break; - case STATE_DETAIL: - if (m_pFault->m_strDetail.GetLength() == 0) - { - m_pFault->m_strDetail.SetString(wszChars, cchChars); - hr = S_OK; - } - break; - case STATE_START: case STATE_ENVELOPE : case STATE_BODY : case STATE_SKIP: - hr = S_OK; - break; - default: - // should never get here - ATLASSERT( FALSE ); - break; - } - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSoapFaultParser::characters -- out of memory.\r\n" ) ); - - hr = E_OUTOFMEMORY; - } - - m_dwState |= STATE_RESET; - - return hr; -} - -//////////////////////////////////////////////////////////////////////////////// -// -// CSoapRootHandler - the class that does most of the work -// -//////////////////////////////////////////////////////////////////////////////// - -#ifndef ATLSOAP_STACKSIZE - // 16 will be plenty for the 99% case - #define ATLSOAP_STACKSIZE 16 -#endif - -#ifndef ATLSOAP_GROWARRAY - #define ATLSOAP_GROWARRAY 10 -#endif - -class CSoapRootHandler : public ISAXContentHandlerImpl -{ -private: - - friend class _CSDLGenerator; - - // - // state constants - // - const static DWORD SOAP_START = 0; - const static DWORD SOAP_ENVELOPE = 1; - const static DWORD SOAP_HEADERS = 2; - const static DWORD SOAP_BODY = 3; - const static DWORD SOAP_PARAMS = 4; - const static DWORD SOAP_CALLED = 5; - const static DWORD SOAP_RESPONSE = 6; - const static DWORD SOAP_HEADERS_DONE = 7; - - // - // hash values for SOAP namespaces and elements - // - const static ULONG SOAP_ENV = 0x5D3574E2; - const static ULONG SOAP_ENC = 0xBD62724B; - const static ULONG ENVELOPE = 0xDBE6009E; - const static ULONG HEADER = 0xAF4DFFC9; - const static ULONG BODY = 0x0026168E; - - // - // XSD Names - // - struct XSDEntry - { - wchar_t * wszName; - char * szName; - int cchName; - }; - - const static XSDEntry s_xsdNames[]; - - // - // CBitVector - a dynamically sized bit vector class - // - class CBitVector - { - private: - - // 64 bits will handle the 99% case - unsigned __int64 m_nBits; - - // when we need to grow - unsigned __int64 * m_pBits; - - size_t m_nSize; - - bool Grow(size_t nIndex) - { - // Think carefully - // In our current implementation, CHAR_BIT==8, and sizeof(m_nBits)==8. Easy to confuse the two. - - // We do math in bits, so this is our max size - ATLENSURE(nIndex= m_nSize) - { - return false; - } - - size_t i = nIndex/(sizeof(m_nBits)*CHAR_BIT); - size_t nBits = nIndex-i*(sizeof(m_nBits)*CHAR_BIT); - return ((m_pBits[i] >> nBits) & 0x01); - } - - bool SetBit(size_t nIndex) - { - if (nIndex >= m_nSize) - { - if (!Grow(nIndex)) - { - return false; - } - } - - size_t i = nIndex/(sizeof(m_nBits)*CHAR_BIT); - size_t nBits = nIndex-i*(sizeof(m_nBits)*CHAR_BIT); - m_pBits[i] |= (((unsigned __int64) 1) << nBits); - - return true; - } - - void Clear() - { - if (m_pBits == &m_nBits) - { - m_nBits = 0; - } - else - { - memset(m_pBits, 0x00, (m_nSize/CHAR_BIT)); - } - } - - ~CBitVector() - { - if (m_pBits != &m_nBits) - { - free(m_pBits); - } - - m_pBits = &m_nBits; - m_nSize = sizeof(m_nBits)*CHAR_BIT; - } - - void RelocateFixup() - { - if (m_nSize <= sizeof(m_nBits)*CHAR_BIT) - { - m_pBits = &m_nBits; - } - } - }; // class CBitVector - - // - // Parsing State - // - struct ParseState - { - void *pvElement; - DWORD dwFlags; - size_t nAllocSize; - size_t nExpectedElements; - size_t nElement; - const _soapmap *pMap; - const _soapmapentry *pEntry; - - // mark when we get an item - CBitVector vec; - - size_t nDepth; - - ParseState(void *pvElement_ = NULL, DWORD dwFlags_ = 0, - size_t nAllocSize_ = 0, size_t nExpectedElements_ = 0, - size_t nElement_ = 0, const _soapmap *pMap_ = NULL, - const _soapmapentry *pEntry_ = NULL) - : pvElement(pvElement_), dwFlags(dwFlags_), nAllocSize(nAllocSize_), - nExpectedElements(nExpectedElements_), nElement(nElement_), pMap(pMap_), - pEntry(pEntry_), nDepth(0) - { - vec.Clear(); - } - - ParseState(const ParseState& that) - { - pvElement = that.pvElement; - dwFlags = that.dwFlags; - nAllocSize = that.nAllocSize; - nExpectedElements = that.nExpectedElements; - nElement = that.nElement; - pMap = that.pMap; - pEntry = that.pEntry; - nDepth = that.nDepth; - vec.Clear(); - } - - ~ParseState() - { - pvElement = NULL; - dwFlags = 0; - nAllocSize = 0; - nExpectedElements = 0; - nElement = 0; - pMap = NULL; - pEntry = NULL; - nDepth = 0; - vec.Clear(); - } - - void RelocateFixup() - { - vec.RelocateFixup(); - } - }; // struct ParseState - - class CParseStateElementTraits : public CDefaultElementTraits - { - public: - // CBitVector relocate fixup - static void RelocateElements( ParseState* pDest, ParseState* pSrc, size_t nElements ) - { - CDefaultElementTraits::RelocateElements(pDest, pSrc, nElements); - - // fixup CBitVector - for (size_t i=0; iWriteStream("", - - sizeof("")-1, - - NULL); - } - - HRESULT StartHeaders(IWriteStream *pStream, const _soapmap *pMap) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - HRESULT hr = pStream->WriteStream("dwCallFlags & (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) != - (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) - { - // qualify document/literal by default - // For this version, ATL Server will not respect - // the elementForm* attributes in an XSD schema - - hr = pStream->WriteStream(" xmlns=\"", sizeof(" xmlns=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(pMap->szNamespace, pMap->cchNamespace, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\">", sizeof("\">")-1, NULL); - } - } - } - else - { - // rpc/encoded - hr = pStream->WriteStream(">", sizeof(">")-1, NULL); - } - } - return hr; - } - - HRESULT EndHeaders(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - return pStream->WriteStream("", sizeof("")-1, NULL); - } - - virtual HRESULT StartBody(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - return pStream->WriteStream( - "", sizeof("")-1, NULL); - } - - HRESULT EndBody(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - return pStream->WriteStream("", sizeof("")-1, NULL); - } - - HRESULT EndEnvelope(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - return pStream->WriteStream("", sizeof("")-1, NULL); - } - - virtual HRESULT StartMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) = 0; - virtual HRESULT EndMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) = 0; - - virtual HRESULT StartEntry(IWriteStream *pStream, const _soapmap *pMap, const _soapmapentry *pEntry) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - - // output name - HRESULT hr = pStream->WriteStream("<", 1, NULL); - if (SUCCEEDED(hr)) - { - const char *szHeaderNamespace = NULL; - int cchHeaderNamespace = 0; - - if ((pMap != NULL) && (pMap->mapType == SOAPMAP_HEADER) && - ((pEntry->pChain != NULL) && - (pEntry->pChain->szNamespace !=NULL)) || - (pEntry->szNamespace != NULL)) - { - hr = pStream->WriteStream("snp:", sizeof("snp:")-1, NULL); - if (SUCCEEDED(hr)) - { - szHeaderNamespace = pEntry->pChain ? - pEntry->pChain->szNamespace : pEntry->szNamespace; - - cchHeaderNamespace = pEntry->pChain ? - pEntry->pChain->cchNamespace : pEntry->cchNamespace; - } - } - - if (SUCCEEDED(hr)) - { - if ((pEntry->dwFlags & SOAPFLAG_RETVAL)==0) - { - hr = pStream->WriteStream(pEntry->szField, pEntry->cchField, NULL); - } - else - { - hr = pStream->WriteStream("return", sizeof("return")-1, NULL); - } - if (SUCCEEDED(hr)) - { - if (szHeaderNamespace != NULL) - { - ATLASSERT( cchHeaderNamespace != 0 ); - - hr = pStream->WriteStream(" xmlns:snp=\"", sizeof(" xmlns:snp=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(szHeaderNamespace, cchHeaderNamespace, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\"", sizeof("\"")-1, NULL); - } - } - } - } - } - } - if (SUCCEEDED(hr)) - { - if (pEntry->dwFlags & SOAPFLAG_MUSTUNDERSTAND) - { - // output mustUnderstand - hr = pStream->WriteStream(" soap:mustUnderstand=\"1\"", sizeof(" soap:mustUnderstand=\"1\"")-1, NULL); - } - } - return hr; - } - - HRESULT EndEntry(IWriteStream *pStream, const _soapmap *pMap, const _soapmapentry *pEntry) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - - HRESULT hr = pStream->WriteStream("mapType == SOAPMAP_HEADER) && - ((pEntry->pChain != NULL) && - (pEntry->pChain->szNamespace !=NULL)) || - (pEntry->szNamespace != NULL)) - { - hr = pStream->WriteStream("snp:", sizeof("snp:")-1, NULL); - } - if ((pEntry->dwFlags & SOAPFLAG_RETVAL)==0) - { - hr = pStream->WriteStream(pEntry->szField, pEntry->cchField, NULL); - } - else - { - hr = pStream->WriteStream("return", sizeof("return")-1, NULL); - } - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - return hr; - } - }; // class CResponseGenerator - - class CDocLiteralGenerator : public CResponseGenerator - { - public: - - HRESULT StartMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - HRESULT hr = S_OK; - // output type name - hr = pStream->WriteStream("<", 1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(pMap->szName, pMap->cchName, NULL); - if (SUCCEEDED(hr)) - { - if ((pMap->mapType == SOAPMAP_FUNC) && - (bClient == false) && - (pMap->dwCallFlags & SOAPFLAG_PID)) - { - hr = pStream->WriteStream("Response", sizeof("Response")-1, NULL); - if (FAILED(hr)) - { - return hr; - } - } - - if (pMap->mapType == SOAPMAP_FUNC) - { - hr = pStream->WriteStream(" xmlns=\"", sizeof(" xmlns=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(pMap->szNamespace, pMap->cchNamespace, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\">", sizeof("\">")-1, NULL); - } - } - } - else - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - } - return hr; - } - - HRESULT EndMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - HRESULT hr = pStream->WriteStream("WriteStream(pMap->szName, pMap->cchName, NULL); - if (SUCCEEDED(hr)) - { - if ((pMap->mapType == SOAPMAP_FUNC) && - (bClient == false) && - (pMap->dwCallFlags & SOAPFLAG_PID)) - { - hr = pStream->WriteStream("Response", sizeof("Response")-1, NULL); - if (FAILED(hr)) - { - return hr; - } - } - hr = pStream->WriteStream(">", 1, NULL); - } - } - - return hr; - } - - }; // class CDocLiteralGenerator - - class CPIDGenerator : public CDocLiteralGenerator - { - }; - - class CPADGenerator : public CDocLiteralGenerator - { - public: - - virtual HRESULT StartEntry(IWriteStream *pStream, const _soapmap *pMap, const _soapmapentry *pEntry) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - - HRESULT hr = __super::StartEntry(pStream, pMap, pEntry); - if (SUCCEEDED(hr) && (pMap->dwCallFlags & SOAPFLAG_PAD)) - { - hr = pStream->WriteStream(" xmlns=\"", sizeof(" xmlns=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(pMap->szNamespace, pMap->cchNamespace, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\"", sizeof("\"")-1, NULL); - } - } - } - - return hr; - } - }; // class CPADGenerator - - class CRpcEncodedGenerator : public CResponseGenerator - { - public: - - HRESULT StartBody(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - return pStream->WriteStream( - "", - sizeof("")-1, NULL); - } - - HRESULT StartMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - (bClient); // unused for rpc/encoded - - HRESULT hr = pStream->WriteStream("WriteStream(pMap->szName, pMap->cchName, NULL); - if (SUCCEEDED(hr)) - { - if (pMap->mapType == SOAPMAP_FUNC) - { - hr = pStream->WriteStream(" xmlns:snp=\"", sizeof(" xmlns:snp=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - ATLASSERT( pMap->szNamespace != NULL ); - hr = pStream->WriteStream(pMap->szNamespace, pMap->cchNamespace, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\">", sizeof("\">")-1, NULL); - } - } - } - else - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - } - return hr; - } - - HRESULT EndMap(IWriteStream *pStream, const _soapmap *pMap, bool bClient) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - (bClient); // unused for rpc/encoded - - HRESULT hr = pStream->WriteStream("WriteStream(pMap->szName, pMap->cchName, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - - return hr; - } - }; // class CRpcEncodedGenerator - - // - // members - // - CAtlArray m_stateStack; - size_t m_nState; - - DWORD m_dwState; - - CComPtr m_spReader; - - CSAXStringBuilder m_stringBuilder; - CSkipHandler m_skipHandler; - - IAtlMemMgr * m_pMemMgr; - - static CCRTHeap m_crtHeap; - - bool m_bClient; - - void *m_pvParam; - - bool m_bNullCheck; - bool m_bChildCheck; - bool m_bCharacters; - size_t m_nDepth; - - typedef CFixedStringT REFSTRING; - - // used for rpc/encoded messages with href's - typedef CAtlMap > REFMAP; - REFMAP m_refMap; - - // - // Implementation helpers - // - - HRESULT PushState(void *pvElement = NULL, const _soapmap *pMap = NULL, - const _soapmapentry *pEntry = NULL, DWORD dwFlags = 0, size_t nAllocSize = 0, - size_t nExpectedElements = 0, size_t nElement = 0) - { - if (m_stateStack.IsEmpty()) - { - // 16 will be plenty for the 99% case - if (!m_stateStack.SetCount(0, 16)) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::PushState -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - } - - size_t nCnt = m_stateStack.GetCount(); - m_nState = m_stateStack.Add(); - if (m_stateStack.GetCount() <= nCnt) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::PushState -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - - ParseState &state = m_stateStack[m_nState]; - - state.pvElement = pvElement; - state.dwFlags = dwFlags; - state.nAllocSize = nAllocSize; - state.nExpectedElements = nExpectedElements; - state.nElement = nElement; - state.pMap = pMap; - state.pEntry = pEntry; - state.nDepth = m_nDepth; - - return S_OK; - } - - ParseState& GetState() - { - return m_stateStack[m_nState]; - } - - void PopState(bool bForce = false) - { - if ((m_nState != 0) || (bForce != false)) - { - m_stateStack.RemoveAt(m_nState); - --m_nState; - } - } - - BOOL IsEqualElement(int cchLocalNameCheck, const wchar_t *wszLocalNameCheck, - int cchNamespaceUriCheck, const wchar_t *wszNamespaceUriCheck, - int cchLocalName, const wchar_t *wszLocalName, - int cchNamespaceUri, const wchar_t *wszNamespaceUri) - { - ATLENSURE(wszLocalName); - ATLENSURE(wszLocalNameCheck); - ATLENSURE(wszNamespaceUri); - ATLENSURE(wszNamespaceUriCheck); - - if (cchLocalName == cchLocalNameCheck && - cchNamespaceUri == cchNamespaceUriCheck && - !wcsncmp(wszLocalName, wszLocalNameCheck, cchLocalName) && - !wcsncmp(wszNamespaceUri, wszNamespaceUriCheck, cchNamespaceUri)) - { - return TRUE; - } - - return FALSE; - } - - ATL_FORCEINLINE BOOL IsEqualString(const wchar_t *wszStr1, int cchStr1, const wchar_t *wszStr2, int cchStr2) - { - ATLENSURE( wszStr1 != NULL ); - ATLENSURE( wszStr2 != NULL ); - ATLENSURE( cchStr1 >= 0 ); - ATLENSURE( cchStr2 >= 0 ); - - if (cchStr1 == cchStr2) - { - return !wcsncmp(wszStr1, wszStr2, cchStr2); - } - return FALSE; - } - - ATL_FORCEINLINE BOOL IsEqualStringHash(const wchar_t *wszStr1, int cchStr1, ULONG nHash1, - const wchar_t *wszStr2, int cchStr2, ULONG nHash2) - { - ATLENSURE( wszStr1 != NULL ); - ATLENSURE( wszStr2 != NULL ); - ATLENSURE( cchStr1 >= 0 ); - ATLENSURE( cchStr2 >= 0 ); - - if (nHash1 == nHash2) - { - return IsEqualString(wszStr1, cchStr1, wszStr2, cchStr2); - } - - return FALSE; - } - - BOOL IsEqualElement(int cchLocalNameCheck, const wchar_t *wszLocalNameCheck, - int cchLocalName, const wchar_t *wszLocalName) - { - if (cchLocalName == cchLocalNameCheck && - !wcsncmp(wszLocalName, wszLocalNameCheck, cchLocalName)) - { - return TRUE; - } - - return FALSE; - } - - void SetOffsetValue(void *pBase, void *pSrc, size_t nOffset) - { - void **ppDest = (void **)(((unsigned char *)pBase)+nOffset); - *ppDest = pSrc; - } - - bool IsRpcEncoded() - { - if ((m_stateStack[0].pMap->dwCallFlags & (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) == - (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) - { - return true; - } - return false; - } - - - HRESULT ValidateArrayEntry( - ParseState& state, - const wchar_t *wszLocalName, - int cchLocalName) - { - (cchLocalName); - (wszLocalName); - - ATLASSERT( state.pEntry != NULL ); - - // SOAP Section 5.4.2 - - // check number of elements - if (state.nElement == state.nExpectedElements) - { - // too many elements - if ((state.dwFlags & SOAPFLAG_UNKSIZE)==0) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::ValidateArrayEntry -- too many elements.\r\n" ) ); - return E_FAIL; - } - - ATLASSERT( IsRpcEncoded() == false ); - - // see if we need to allocate more - if (state.nElement == state.nAllocSize) - { - unsigned char **ppArr = (unsigned char **)state.pvElement; - size_t nNewElement=0; - HRESULT hr=E_FAIL; - if(FAILED(hr=::ATL::AtlMultiply(&nNewElement, state.nElement, static_cast(2)))) - { - return hr; - } - hr = AllocateArray(state.pEntry, (void **)ppArr, __max(nNewElement, ATLSOAP_GROWARRAY), state.nElement); - - if (SUCCEEDED(hr)) - { - state.nAllocSize = __max((state.nElement)*2, ATLSOAP_GROWARRAY); - } - - return hr; - } - } - - return S_OK; - } - - HRESULT CheckID( - const wchar_t *wszNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - ISAXAttributes *pAttributes) - { - (cchLocalName); - (wszLocalName); - (wszNamespaceUri); - ATLASSERT( pAttributes != NULL ); - - const wchar_t *wsz = NULL; - int cch = 0; - - HRESULT hr = GetAttribute(pAttributes, L"id", sizeof("id")-1, &wsz, &cch); - if ((hr == S_OK) && (wsz != NULL)) - { - const REFMAP::CPair *p = NULL; - _ATLTRY - { - REFSTRING strRef(wsz, cch); - p = m_refMap.Lookup(strRef); - if (p == NULL) - { - return S_FALSE; - } - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckID -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - - ATLASSERT( IsRpcEncoded() == true ); - - const ParseState& state = p->m_value; - - // disallow href-chaining - hr = CheckHref(state.pEntry, state.pvElement, pAttributes); - if (hr != S_FALSE) - { - return E_FAIL; - } - - hr = S_OK; - - // do array stuff - if (state.dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) - { - hr = GetSection5Info(state, state.pEntry, pAttributes); - } - else - { - // only structs and arrays are allowed for hrefs - ATLASSERT( state.pEntry->pChain != NULL ); - ATLASSERT( state.pEntry->pChain->mapType == SOAPMAP_STRUCT ); - - // structs must have child entries - m_bChildCheck = state.pEntry->pChain->nElements != 0; - - if (S_OK != PushState(state.pvElement, state.pEntry->pChain, state.pEntry, - state.dwFlags, 0, state.pEntry->pChain->nElements)) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckID -- out of memory.\n" ) ); - hr = E_OUTOFMEMORY; - } - } - - m_refMap.DisableAutoRehash(); - m_refMap.RemoveAtPos(const_cast(p)); - m_refMap.EnableAutoRehash(); - - return hr; - } - - return S_FALSE; - } - - HRESULT GetElementEntry( - ParseState& state, - const wchar_t *wszNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - ISAXAttributes *pAttributes, - const _soapmapentry **ppEntry) - { - ATLENSURE_RETURN( state.pMap != NULL ); - ATLENSURE_RETURN( ppEntry != NULL ); - - *ppEntry = NULL; - const _soapmapentry *pEntries = state.pMap->pEntries; - DWORD dwIncludeFlags; - DWORD dwExcludeFlags; - - HRESULT hr = CheckID(wszNamespaceUri, wszLocalName, cchLocalName, pAttributes); - if (hr != S_FALSE) - { - if (hr == S_OK) - { - hr = S_FALSE; - } - return hr; - } - - if (m_bClient != false) - { - dwIncludeFlags = SOAPFLAG_OUT; - dwExcludeFlags = SOAPFLAG_IN; - } - else - { - dwIncludeFlags = SOAPFLAG_IN; - dwExcludeFlags = SOAPFLAG_OUT; - } - - ULONG nHash = AtlSoapHashStr(wszLocalName, cchLocalName); - - for (size_t i=0; pEntries[i].nHash != 0; i++) - { - if (nHash == pEntries[i].nHash && - ((pEntries[i].dwFlags & dwIncludeFlags) || - ((pEntries[i].dwFlags & dwExcludeFlags) == 0)) && - IsEqualElement(pEntries[i].cchField, pEntries[i].wszField, - cchLocalName, wszLocalName)/* && - !wcscmp(wszNamespaceUri, wszNamespace)*/) - { - // check bit vector - - if (state.vec.GetBit(i) == false) - { - if (state.vec.SetBit(i) == false) - { - return E_OUTOFMEMORY; - } - } - else - { - // already received this element - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::GetElementEntry -- duplicate element was sent.\r\n" ) ); - - return E_FAIL; - } - - state.nElement++; - *ppEntry = &pEntries[i]; - - return S_OK; - } - } - - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::GetElementEntry -- element not found: %.*ws.\r\n" ), cchLocalName, wszLocalName ); - - return E_FAIL; - } - - HRESULT CheckMustUnderstandHeader(ISAXAttributes *pAttributes) - { - ATLASSERT( pAttributes != NULL ); - - const wchar_t* wszMustUnderstand; - int cchMustUnderstand; - bool bMustUnderstand= false; - - if (SUCCEEDED(GetAttribute(pAttributes, L"mustUnderstand", sizeof("mustUnderstand")-1, - &wszMustUnderstand, &cchMustUnderstand, - SOAPENV_NAMESPACEW, sizeof(SOAPENV_NAMESPACEA)-1)) && - (wszMustUnderstand != NULL)) - { - if (FAILED(AtlGetSAXValue(&bMustUnderstand, wszMustUnderstand, cchMustUnderstand))) - { - bMustUnderstand = true; - } - } - - if (bMustUnderstand == false) - { - ATLASSERT( GetReader() != NULL ); - - m_skipHandler.SetReader(GetReader()); - m_skipHandler.SetParent(this); - - return GetReader()->putContentHandler( &m_skipHandler ); - } - else - { - SoapFault(SOAP_E_MUST_UNDERSTAND, NULL, 0); - } - - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckMustUnderstandHeader -- unknown \"mustUnderstand\" SOAP Header was received.\r\n" ) ); - - return E_FAIL; - } - - HRESULT AllocateArray( - const _soapmapentry *pEntry, - void **ppArr, size_t nElements, - size_t nCurrElements = 0) - { - ATLENSURE_RETURN( ppArr != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - - size_t nElementSize; - if (pEntry->nVal != SOAPTYPE_UNK) - { - nElementSize = AtlSoapGetElementSize((SOAPTYPES) pEntry->nVal); - } - else // UDT - { - ATLENSURE_RETURN( pEntry->pChain != NULL ); - nElementSize = pEntry->pChain->nElementSize; - } - if (nElementSize != 0) - { - if (*ppArr == NULL) - { - ATLASSERT( nCurrElements == 0 ); - size_t nBytes=0; - HRESULT hr=S_OK; - if( FAILED(hr=::ATL::AtlMultiply(&nBytes, nElementSize, nElements))) - { - return hr; - } - *ppArr = m_pMemMgr->Allocate(nBytes); - } - else // *ppArr != NULL - { - ATLASSERT( nCurrElements != 0 ); - size_t nBytes=0; - HRESULT hr=S_OK; - if( FAILED(hr=::ATL::AtlAdd(&nBytes, nElements, nCurrElements)) || - FAILED(hr=::ATL::AtlMultiply(&nBytes, nElementSize, nBytes))) - { - return hr; - } - *ppArr = m_pMemMgr->Reallocate(*ppArr, nBytes); - } - } - else - { - // internal error - ATLASSERT( FALSE ); - return E_FAIL; - } - - if (*ppArr == NULL) - { - return E_OUTOFMEMORY; - } - - memset(((unsigned char *)(*ppArr))+(nCurrElements*nElementSize), 0x00, nElements*nElementSize); - - return S_OK; - } - - HRESULT GetSection5Info( - const ParseState& state, - const _soapmapentry *pEntry, - ISAXAttributes *pAttributes) - { - ATLENSURE_RETURN( pEntry != NULL ); - ATLENSURE_RETURN( pAttributes != NULL ); - - HRESULT hr; - if (IsRpcEncoded() != false) - { - // check for href - // we ONLY do this for rpc/encoded (required for interop) - // NOTE: ATL Server does not support object graphs, so - // only single-reference elements are allowed - hr = CheckHref(pEntry, state.pvElement, pAttributes, - pEntry->dwFlags, SOAPFLAG_READYSTATE); - if (hr != S_FALSE) - { - return hr; - } - } - - size_t nElements; - DWORD dwFlags = 0; - hr = AtlSoapGetArraySize(pAttributes, &nElements); - if (FAILED(hr)) - { - return hr; - } - - size_t nAllocSize = 0; - size_t nElementsPush = 0; - - if (pEntry->dwFlags & SOAPFLAG_DYNARR) - { - // set size_is value - ATLENSURE_RETURN( state.pMap != NULL ); - int *pnSizeIs = (int *)(((unsigned char *)state.pvElement)+ - (state.pMap->pEntries[pEntry->nSizeIs].nOffset)); - - if (hr != S_OK) - { - if (IsRpcEncoded()) - { - // rpc/encoded requires soapenc:arrayType attribute - return E_FAIL; - } - - nElements = ATLSOAP_GROWARRAY; - nAllocSize = ATLSOAP_GROWARRAY; - dwFlags |= SOAPFLAG_UNKSIZE; - *pnSizeIs = 0; - } - else - { - *pnSizeIs = (int)nElements; - if (nElements == 0) - { - // soapenc:arrayType="type[0]" - // treat as null array - - m_bNullCheck = true; - - // push an emtpy state - return PushState(); - } - - nElementsPush = nElements; - } - void *p = NULL; - hr = AllocateArray(pEntry, &p, nElements); - if (hr != S_OK) - { - return hr; - } - - SetOffsetValue(state.pvElement, p, pEntry->nOffset); - } - else - { - // for fixed-size arrays, we know the number of elements - ATLASSERT( pEntry->dwFlags & SOAPFLAG_FIXEDARR ); - if (hr == S_OK) - { - if (nElements != AtlSoapGetArrayDims(pEntry->pDims)) - { - return E_FAIL; - } - } - else - { - hr = S_OK; - nElements = AtlSoapGetArrayDims(pEntry->pDims); - } - nElementsPush = nElements; - } - - dwFlags |= pEntry->dwFlags; - - // push element with array flag - - if (S_OK != PushState(((unsigned char *)state.pvElement)+pEntry->nOffset, - state.pMap, pEntry, dwFlags & ~SOAPFLAG_READYSTATE, nAllocSize, nElementsPush)) - { - return E_OUTOFMEMORY; - } - - m_bChildCheck = true; - - return S_OK; - } - - void * UpdateArray(ParseState& state, const _soapmapentry *pEntry) - { - ATLENSURE(pEntry); - - size_t nSize; - void *pVal = NULL; - - if (pEntry->nVal != SOAPTYPE_UNK) - { - nSize = AtlSoapGetElementSize((SOAPTYPES) pEntry->nVal); - } - else - { - ATLENSURE( pEntry->pChain != NULL ); - - nSize = pEntry->pChain->nElementSize; - } - - if (state.dwFlags & SOAPFLAG_FIXEDARR) - { - unsigned char *ppArr = (unsigned char *)state.pvElement; - pVal = ppArr+(state.nElement*nSize); - } - else - { - ATLASSERT( state.dwFlags & SOAPFLAG_DYNARR ); - - unsigned char **ppArr = (unsigned char **)state.pvElement; - pVal = (*ppArr)+(state.nElement*nSize); - if (state.dwFlags & SOAPFLAG_UNKSIZE) - { - ATLASSERT( IsRpcEncoded() == false ); - - // need to use the previous state's pvElement to update the size_is value - ATLASSUME( m_nState > 0 ); - int *pnSizeIs = (int *)(((unsigned char *)m_stateStack[m_nState-1].pvElement)+ - (state.pMap->pEntries[pEntry->nSizeIs].nOffset)); - - // update size_is parameter - *pnSizeIs = (int)(state.nElement+1); - state.nExpectedElements++; - } - } - state.nElement++; - - return pVal; - } - - HRESULT ProcessString(const _soapmapentry *pEntry, void *pVal) - { - ATLENSURE_RETURN( pEntry != NULL ); - - // set to the string builder class - - ATLASSERT( GetReader() != NULL ); - - m_stringBuilder.SetReader(GetReader()); - m_stringBuilder.SetParent(this); - - m_stringBuilder.Clear(); - GetReader()->putContentHandler( &m_stringBuilder ); - - if (S_OK != PushState(pVal, NULL, pEntry, SOAPFLAG_READYSTATE | pEntry->dwFlags)) - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - - HRESULT CheckHref( - const _soapmapentry *pEntry, - void *pVal, - ISAXAttributes *pAttributes, - DWORD dwIncludeFlags = 0, - DWORD dwExcludeFlags = 0) - { - ATLASSERT( pEntry != NULL ); - ATLASSERT( pVal != NULL ); - ATLASSERT( pAttributes != NULL ); - - const wchar_t *wsz = NULL; - int cch = 0; - - HRESULT hr = GetAttribute(pAttributes, L"href", sizeof("href")-1, &wsz, &cch); - if ((hr == S_OK) && (wsz != NULL)) - { - // only allow hrefs on structs and arrays - if (((pEntry->dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR))==0) && - (pEntry->pChain == NULL || pEntry->pChain->mapType != SOAPMAP_STRUCT)) - { - ATLTRACE( _T("ATL Server only allows href's on arrays and structs.\r\n") ); - - return E_FAIL; - } - - ATLASSERT( IsRpcEncoded() == true ); - - _ATLTRY - { - if (*wsz == L'#') - { - wsz++; - cch--; - } - - REFSTRING strRef(wsz, cch); - if (m_refMap.Lookup(strRef) != NULL) - { - // ATL Server does not support multi-reference objects - ATLASSERT( FALSE ); - return E_FAIL; - } - - ParseState& currState = GetState(); - if ((currState.pEntry != NULL) && (currState.pEntry->dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR))) - { - // it is an array item - ATLASSERT( currState.nElement != 0 ); - - // exclude array flags for href'd array elements - dwExcludeFlags |= SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR; - } - - ParseState state; - state.pvElement = pVal; - state.dwFlags = (pEntry->dwFlags | dwIncludeFlags) & ~dwExcludeFlags; - state.nExpectedElements = 0; - - state.nElement = 0; - state.pMap = GetState().pMap; - state.pEntry = pEntry; - - if (!m_refMap.SetAt(strRef, state)) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckHref -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - - // make sure there are no child elements - m_bNullCheck = true; - - // push an emtpy state - return PushState(); - } - _ATLCATCHALL() - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckHref -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - } - - return S_FALSE; - } - - HRESULT ProcessUDT( - const _soapmapentry *pEntry, - void *pVal) - { - ATLENSURE_RETURN( pEntry != NULL ); - ATLENSURE_RETURN( pVal != NULL ); - ATLENSURE_RETURN( pEntry->nVal != SOAPTYPE_ERR ); - ATLENSURE_RETURN( pEntry->nVal != SOAPTYPE_USERBASE ); - - // if it is a complex type, get the chain entry - // and push the new state on the stack - - DWORD dwFlags = pEntry->dwFlags; - if (pEntry->pChain->mapType != SOAPMAP_ENUM) - { - // struct - dwFlags &= ~(SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR); - m_bChildCheck = pEntry->pChain->nElements != 0; - } - else - { - // enum - dwFlags |= SOAPFLAG_READYSTATE; - - // enums must not have child elements - m_bNullCheck = true; - - // enums must be specified - m_bCharacters = true; - } - - if (S_OK != PushState(pVal, pEntry->pChain, pEntry, dwFlags, 0, pEntry->pChain->nElements)) - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - HRESULT ChainEntry( - const ParseState& state, - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - ISAXAttributes *pAttributes) - { - ATLENSURE_RETURN( state.pMap != NULL ); - - // PAD is only supported on the client - const _soapmap *pMap = state.pMap; - if ((pMap->dwCallFlags & SOAPFLAG_CHAIN)==0) - { - return S_FALSE; - } - - ATLENSURE_RETURN( pMap->dwCallFlags & SOAPFLAG_PAD ); - ATLASSUME( m_bClient == true ); - ATLENSURE_RETURN( pMap->nElements == 1 ); - const _soapmapentry *pEntries = pMap->pEntries; - ATLENSURE_RETURN( pEntries != NULL ); - - int nIndex; - if (pEntries[0].dwFlags & SOAPFLAG_OUT) - { - nIndex = 0; - } - else - { - nIndex = 1; - } - - const _soapmapentry *pEntry = &pEntries[nIndex]; - ATLENSURE_RETURN( pEntry->nHash != 0 ); - ATLENSURE_RETURN( pEntry->pChain != NULL ); - - if (S_OK != PushState(state.pvElement, pEntry->pChain, pEntry, pEntry->dwFlags, 0, pEntry->pChain->nElements)) - { - return E_OUTOFMEMORY; - } - - return ProcessParams(wszNamespaceUri, cchNamespaceUri, wszLocalName, cchLocalName, pAttributes); - } - - HRESULT IsNullEntry(const _soapmapentry *pEntry, ISAXAttributes *pAttributes) - { - ATLASSERT( pEntry != NULL ); - ATLASSERT( pAttributes != NULL ); - - HRESULT hr = E_FAIL; - bool bNull = false; - const wchar_t *wszNull = NULL; - int cchNull = 0; - hr = GetAttribute(pAttributes, L"nil", sizeof("nil")-1, &wszNull, &cchNull, - XSI_NAMESPACEW, sizeof(XSI_NAMESPACEA)-1); - if ((hr == S_OK) && (wszNull != NULL)) - { - hr = AtlGetSAXValue(&bNull, wszNull, cchNull); - if (hr == S_OK) - { - if (bNull != false) - { - if (pEntry->dwFlags & SOAPFLAG_NULLABLE) - { - m_bNullCheck = true; - - // push an emtpy state - return PushState(); - } - - // non-nullable element - return E_FAIL; - } - } - } - - return S_FALSE; - } - - HRESULT ProcessParams( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - ISAXAttributes *pAttributes) - { - (wszNamespaceUri); - (cchNamespaceUri); - - if (m_stateStack.IsEmpty()) - { - if (m_dwState == SOAP_HEADERS) - { - return CheckMustUnderstandHeader(pAttributes); - } - - return E_FAIL; - } - - ParseState &state = GetState(); - - ATLASSERT( state.pvElement != NULL ); - HRESULT hr = E_FAIL; - const _soapmapentry *pEntry = NULL; - - // if array element - if (state.dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) - { - hr = ValidateArrayEntry(state, wszLocalName, cchLocalName); - - if (SUCCEEDED(hr)) - { - pEntry = state.pEntry; - } - else - { - return hr; - } - } - else // not an array element - { - // special-case for PAD with type= - hr = ChainEntry(state, wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, pAttributes); - - if (hr == S_FALSE) - { - hr = GetElementEntry(state, wszNamespaceUri, wszLocalName, cchLocalName, pAttributes, &pEntry); - if (hr != S_OK) - { - if (hr == S_FALSE) - { - hr = S_OK; - } - else if (m_dwState == SOAP_HEADERS) - { - hr = CheckMustUnderstandHeader(pAttributes); - } - return hr; - } - - ATLASSERT( pEntry != NULL ); - } - else - { - return hr; - } - } - - hr = IsNullEntry(pEntry, pAttributes); - if (hr != S_FALSE) - { - return hr; - } - hr = S_OK; - ATLENSURE_RETURN(pEntry); - // if is array - if (((pEntry->pDims != NULL) || (pEntry->dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR))) && - ((state.dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) == 0)) - { - // get SOAP section-5 info (if it is there) - return GetSection5Info(state, pEntry, pAttributes); - } - else - { - // if it is a simple type, push a new (ready) state on the stack - void *pVal; - if (state.dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) - { - pVal = UpdateArray(state, pEntry); - ATLASSERT( pVal != NULL ); - } - else - { - pVal = (((unsigned char *)state.pvElement)+pEntry->nOffset); - } - - if (IsRpcEncoded() != false) - { - // check for href - // we ONLY do this for rpc/encoded (required for interop) - // NOTE: ATL Server does not support object graphs, so - // only single-reference elements are allowed - hr = CheckHref(pEntry, pVal, pAttributes); - if (hr != S_FALSE) - { - return hr; - } - hr = S_OK; - } - - if (pEntry->nVal != SOAPTYPE_UNK) - { - // simple types should not have child elements - m_bNullCheck = true; - - // if it is a string - if ((pEntry->nVal == SOAPTYPE_STRING) || (pEntry->nVal == SOAPTYPE_BASE64BINARY)) - { - hr = ProcessString(pEntry, pVal); - } - else - { - // expect characters for all non-string simple types - m_bCharacters = true; - - // basic simple type - if (S_OK != PushState(pVal, NULL, pEntry, SOAPFLAG_READYSTATE | pEntry->dwFlags)) - { - hr = E_OUTOFMEMORY; - } - } - } - else - { - hr = ProcessUDT(pEntry, pVal); - if (pEntry->dwFlags & (SOAPFLAG_DYNARRWRAPPER)) - { - // We're moving to the **first** entry in the dynamic array wrapper. - // We know it is the first entry because the dynamic array wrapper is created - // by sproxy and it guarantees this layouts. - ++m_nDepth; - ProcessParams (wszNamespaceUri, cchNamespaceUri, pEntry->pChain->pEntries[0].wszField, - pEntry->pChain->pEntries[0].cchField, pAttributes); - } - } - } - - return hr; - } - - size_t GetSizeIsValue(void *pvParam, const _soapmap *pMap, const _soapmapentry *pEntry) - { - ATLENSURE( pvParam != NULL ); - ATLENSURE( pMap != NULL ); - ATLENSURE( pEntry != NULL ); - - int nSizeIs = pEntry->nSizeIs; - size_t nOffset = pMap->pEntries[nSizeIs].nOffset; - void *pVal = ((unsigned char *)pvParam)+nOffset; - - __int64 nVal = 0; - switch(pMap->pEntries[nSizeIs].nVal) - { - case SOAPTYPE_INTEGER: - case SOAPTYPE_NONPOSITIVEINTEGER: - case SOAPTYPE_NEGATIVEINTEGER: - case SOAPTYPE_LONG: - nVal = *((__int64 *)pVal); - break; - case SOAPTYPE_INT: - nVal = *((int *)pVal); - break; - case SOAPTYPE_SHORT: - nVal = *((short *)pVal); - break; - case SOAPTYPE_BYTE: - nVal = *((char *)pVal); - break; - case SOAPTYPE_POSITIVEINTEGER: - case SOAPTYPE_NONNEGATIVEINTEGER: - case SOAPTYPE_UNSIGNEDLONG: - unsigned __int64 n; - n = *((unsigned __int64 *)pVal); - if (n > _I64_MAX) - { - // come on ... - nVal = 0; - } - else - { - nVal = (__int64)n; - } - break; - case SOAPTYPE_UNSIGNEDINT: - nVal = *((unsigned int *)pVal); - break; - case SOAPTYPE_UNSIGNEDSHORT: - nVal = *((unsigned short *)pVal); - break; - case SOAPTYPE_UNSIGNEDBYTE: - nVal = *((unsigned char *)pVal); - break; - default: - nVal = 0; - } - - if (nVal < 0) - { - nVal = 0; - } - - return (size_t) nVal; - } - - HRESULT GenerateArrayInfo(const _soapmapentry *pEntry, const int *pDims, IWriteStream *pStream) - { - ATLENSURE_RETURN( pEntry != NULL ); - ATLENSURE_RETURN( pStream != NULL ); - - HRESULT hr = S_OK; - if (pEntry->nVal != SOAPTYPE_UNK) - { - // xsd type - hr = pStream->WriteStream(" soapenc:arrayType=\"xsd:", - sizeof(" soapenc:arrayType=\"xsd:")-1, NULL); - } - else - { - ATLENSURE_RETURN( pEntry->pChain != NULL ); - - hr = pStream->WriteStream(" xmlns:q1=\"", sizeof(" xmlns:q1=\"")-1, NULL); - if (SUCCEEDED(hr)) - { - if (pEntry->pChain->szNamespace != NULL) - { - hr = pStream->WriteStream(pEntry->pChain->szNamespace, pEntry->pChain->cchNamespace, NULL); - } - else - { - hr = pStream->WriteStream(GetNamespaceUriA(), -1, NULL); - } - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream("\"", 1, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(" soapenc:arrayType=\"q1:", - sizeof(" soapenc:arrayType=\"q1:")-1, NULL); - } - } - } - } - - if (FAILED(hr)) - { - return hr; - } - - if (pEntry->nVal != SOAPTYPE_UNK) - { - hr = pStream->WriteStream(s_xsdNames[pEntry->nVal].szName , - s_xsdNames[pEntry->nVal].cchName, NULL); - } - else - { - ATLASSERT( pEntry->pChain != NULL ); - - hr = pStream->WriteStream(pEntry->pChain->szName, pEntry->pChain->cchName, NULL); - } - - if (FAILED(hr)) - { - return hr; - } - - hr = pStream->WriteStream("[", 1, NULL); - if (FAILED(hr)) - { - return hr; - } - - CWriteStreamHelper s( pStream ); - for (int i=1; i<=pDims[0]; i++) - { - if (!s.Write(pDims[i]) || - ((i < pDims[0]) && (S_OK != pStream->WriteStream(", ", 2, NULL)))) - { - return E_FAIL; - } - } - - hr = pStream->WriteStream("]\"", 2, NULL); - if (FAILED(hr)) - { - return hr; - } - - return S_OK; - } - - HRESULT GenerateXSDWrapper(bool bStart, int nVal, bool bNull, IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - - HRESULT hr = pStream->WriteStream((bStart != false) ? "<" : "WriteStream(s_xsdNames[nVal].szName, - s_xsdNames[nVal].cchName, NULL); - if ((bNull != false) && (SUCCEEDED(hr))) - { - hr = pStream->WriteStream(" xsi:nil=\"1\"", sizeof(" xsi:nil=\"1\"")-1, NULL); - } - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - - return hr; - } - - HRESULT GenerateGenericWrapper(bool bStart, const _soapmap *pMap, IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - HRESULT hr = pStream->WriteStream((bStart != false) ? "<" : "WriteStream(pMap->szName, pMap->cchName, NULL); - if (SUCCEEDED(hr)) - { - hr = pStream->WriteStream(">", 1, NULL); - } - } - - return hr; - } - - HRESULT GetArrayInformation( - IWriteStream *pStream, - const _soapmap *pMap, - const _soapmapentry *pEntry, - void *pvParam, - size_t &nCnt, - size_t &nElementSize) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - ATLENSURE_RETURN( pvParam != NULL ); - - const int *pDims = NULL; - int arrDims[2] = { 0 }; - - if (pEntry->dwFlags & SOAPFLAG_FIXEDARR) - { - pDims = pEntry->pDims; - } - else - { - ATLASSERT( pEntry->dwFlags & SOAPFLAG_DYNARR ); - nCnt = GetSizeIsValue(pvParam, pMap, pEntry); - - if (nCnt == 0) - { - // array size should only be zero if array is NULL - // did you forget to set the array size? - ATLASSERT( FALSE ); - return E_FAIL; - } - - arrDims[0] = 1; - arrDims[1] = (int) nCnt; - - pDims = arrDims; - } - - // output array information - HRESULT hr = GenerateArrayInfo(pEntry, pDims, pStream); - if (FAILED(hr)) - { - return hr; - } - if (SUCCEEDED(hr)) - { - nCnt = AtlSoapGetArrayDims(pDims); - - // did you forget to set the size_is value? - ATLASSERT( nCnt != 0 ); - - if (pEntry->nVal != SOAPTYPE_UNK) - { - nElementSize = AtlSoapGetElementSize((SOAPTYPES) pEntry->nVal); - } - else - { - ATLENSURE_RETURN( pEntry->pChain != NULL ); - - nElementSize = pEntry->pChain->nElementSize; - } - } - - return hr; - } - - HRESULT GenerateEnum(IWriteStream *pStream, void *pVal, const _soapmapentry *pEntry, bool bArray) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pVal != NULL ); - ATLENSURE_RETURN( pEntry != NULL ); - - int nVal = *((int *)pVal); - const _soapmapentry *pEnumEntries = pEntry->pChain->pEntries; - - ATLENSURE_RETURN( pEnumEntries != NULL ); - size_t j; - HRESULT hr = E_FAIL; - for (j=0; pEnumEntries[j].nHash != 0; j++) - { - if (nVal == pEnumEntries[j].nVal) - { - hr = pStream->WriteStream(pEnumEntries[j].szField, pEnumEntries[j].cchField, NULL); - if ((bArray != false) && (SUCCEEDED(hr))) - { - hr = GenerateGenericWrapper(false, pEntry->pChain, pStream); - } - break; - } - } - - return hr; - } - - HRESULT GenerateHeaders(CResponseGenerator *pGenerator, const _soapmap *pMap, IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - - ATLENSURE_RETURN( pGenerator != NULL ); - - DWORD dwIncludeFlags = SOAPFLAG_OUT; - if (m_bClient != false) - { - dwIncludeFlags = SOAPFLAG_IN; - } - - size_t nCnt = 0; - for (size_t i=0; pMap->pEntries[i].nHash != 0; i++) - { - if (pMap->pEntries[i].dwFlags & dwIncludeFlags) - { - nCnt++; - } - } - - // no headers to be sent - if (nCnt == 0) - { - return S_OK; - } - - HRESULT hr = pGenerator->StartHeaders(pStream, pMap); - if (SUCCEEDED(hr)) - { - hr = GenerateResponseHelper(pGenerator, pMap, GetHeaderValue(), pStream); - if (SUCCEEDED(hr)) - { - hr = pGenerator->EndHeaders(pStream); - } - } - - return hr; - } - - bool IsNullElement(const _soapmapentry *pEntry, void *pVal, DWORD dwExcludeFlags=0) - { - ATLENSURE( pEntry != NULL ); - ATLENSURE( pVal != NULL ); - - bool bNull = false; - - DWORD dwFlags = pEntry->dwFlags & ~dwExcludeFlags; - - if (dwFlags & SOAPFLAG_DYNARR) - { - unsigned char **ppArr = (unsigned char **)pVal; - if (*ppArr == NULL) - { - bNull = true; - } - } - else if (pEntry->nVal == SOAPTYPE_STRING) - { - BSTR *pBSTR = (BSTR *)pVal; - if (*pBSTR == NULL) - { - bNull = true; - } - } - else if ((pEntry->nVal == SOAPTYPE_BASE64BINARY) || (pEntry->nVal == SOAPTYPE_HEXBINARY)) - { - if (((ATLSOAP_BLOB *)pVal)->data == NULL) - { - bNull = true; - } - } - - return bNull; - } - - HRESULT GenerateNull(IWriteStream *pStream) - { - ATLENSURE_RETURN( pStream != NULL ); - return pStream->WriteStream(" xsi:nil=\"1\"/>", sizeof(" xsi:nil=\"1\"/>")-1, NULL); - } - - HRESULT GenerateResponseHelper(CResponseGenerator *pGenerator, const _soapmap *pMap, void *pvParam, IWriteStream *pStream, - bool bArrayElement = false) - { - ATLENSURE_RETURN( pGenerator != NULL ); - ATLENSURE_RETURN( pMap != NULL ); - ATLENSURE_RETURN( pStream != NULL ); - - HRESULT hr = S_OK; - - if ((bArrayElement != false) && - ((pMap->dwCallFlags & SOAPFLAG_PAD)==0)) - { - hr = pGenerator->StartMap(pStream, pMap, m_bClient); - if (FAILED(hr)) - { - return hr; - } - } - - ATLENSURE_RETURN( pMap->pEntries != NULL ); - - const _soapmapentry *pEntries = pMap->pEntries; - size_t i; - - DWORD dwIncludeFlags; - DWORD dwExcludeFlags; - if (m_bClient != false) - { - dwIncludeFlags = SOAPFLAG_IN; - dwExcludeFlags = SOAPFLAG_OUT; - } - else - { - dwIncludeFlags = SOAPFLAG_OUT; - dwExcludeFlags = SOAPFLAG_IN; - } - - for (i=0; pEntries[i].nHash != 0; i++) - { - if (((pEntries[i].dwFlags & dwIncludeFlags) || - ((pEntries[i].dwFlags & dwExcludeFlags)==0)) && - ((pEntries[i].dwFlags & SOAPFLAG_NOMARSHAL)==0)) - { - hr = pGenerator->StartEntry(pStream, pMap, &pEntries[i]); - if (FAILED(hr)) - { - return hr; - } - - size_t nElementSize = 0; - size_t nCnt = 1; - - ATLASSERT( pvParam != NULL ); - - void *pvCurrent = ((unsigned char *)pvParam)+pEntries[i].nOffset; - - if (IsNullElement(&pEntries[i], pvCurrent)) - { - hr = GenerateNull(pStream); - if (SUCCEEDED(hr)) - { - continue; - } - return hr; - } - - bool bArray = (pEntries[i].dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) != 0; - if (bArray != false) - { - hr = GetArrayInformation(pStream, pMap, &pEntries[i], pvParam, nCnt, nElementSize); - } - - hr = pStream->WriteStream(">", 1, NULL); - if (FAILED(hr)) - { - return hr; - } - - for (size_t nElement=0; nElementmapType != SOAPMAP_ENUM) - { - // struct - hr = GenerateResponseHelper(pGenerator, pEntries[i].pChain, pVal, pStream, bArray); - } - else - { - if (bArray != false) - { - hr = GenerateGenericWrapper(true, pEntries[i].pChain, pStream); - if (FAILED(hr)) - { - return hr; - } - } - - hr = GenerateEnum(pStream, pVal, &pEntries[i], bArray); - } - } - } - - // output element close - if (SUCCEEDED(hr)) - { - hr = pGenerator->EndEntry(pStream, pMap, &pEntries[i]); - } - } - - if (FAILED(hr)) - { - return hr; - } - } - - if ((bArrayElement != false) && - ((pMap->dwCallFlags & SOAPFLAG_PAD)==0)) - { - // output type name - hr = pGenerator->EndMap(pStream, pMap, m_bClient); - } - - return hr; - } - - void CleanupHelper(const _soapmap *pMap, void *pvParam) - { - ATLENSURE( pMap != NULL ); - ATLENSURE( pMap->pEntries != NULL ); - - if (pvParam == NULL) - { - return; - } - - const _soapmapentry *pEntries = pMap->pEntries; - size_t i; - - for (i=0; pEntries[i].nHash != 0; i++) - { - if ((m_bClient != false) && ((pEntries[i].dwFlags & SOAPFLAG_OUT)==0)) - { - // skip in-only headers on the client - continue; - } - - void *pvCheck = ((unsigned char *)pvParam)+pEntries[i].nOffset; - if (IsNullElement(&pEntries[i], pvCheck)) - { - continue; - } - - size_t nElementSize = 0; - size_t nCnt = 1; - - const int *pDims = NULL; - int arrDims[2] = { 0 }; - - bool bArray = (pEntries[i].dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) != 0; - - if (bArray != false) - { - if (pEntries[i].dwFlags & SOAPFLAG_FIXEDARR) - { - pDims = pEntries[i].pDims; - } - else - { - ATLASSERT( pEntries[i].dwFlags & SOAPFLAG_DYNARR ); - nCnt = GetSizeIsValue(pvParam, pMap, &pEntries[i]); - - arrDims[0] = 1; - arrDims[1] = (int) nCnt; - - pDims = arrDims; - } - - nCnt = AtlSoapGetArrayDims(pDims); - - if (pEntries[i].nVal != SOAPTYPE_UNK) - { - nElementSize = AtlSoapGetElementSize((SOAPTYPES) pEntries[i].nVal); - } - else - { - ATLENSURE( pEntries[i].pChain != NULL ); - - nElementSize = pEntries[i].pChain->nElementSize; - } - } - - void *pvCurrent = ((unsigned char *)pvParam)+pEntries[i].nOffset; - - for (size_t nElement=0; nElementmapType != SOAPMAP_ENUM) - { - CleanupHelper(pEntries[i].pChain, pVal); - } - } - } - - if (pEntries[i].dwFlags & SOAPFLAG_DYNARR) - { - // free it - unsigned char **ppArr = (unsigned char **)pvCurrent; - - ATLENSURE( ppArr != NULL ); - - if (*ppArr != NULL) - { - m_pMemMgr->Free(*ppArr); - *ppArr = NULL; - } - } - } - } - - const _soapmap * GetSoapMapFromName( - const wchar_t * wszName, - int cchName = -1, - const wchar_t * wszNamespaceUri = NULL, - int cchNamespaceUri = -1, - int *pnVal = NULL, - bool bHeader = false) - { - (cchNamespaceUri); - - const _soapmap ** pEntry = NULL; - - if (bHeader == false) - { - pEntry = GetFunctionMap(); - } - else - { - pEntry = GetHeaderMap(); - } - - if (pEntry == NULL) - { - return NULL; - } - - if (cchName < 0) - { - cchName = (int)wcslen(wszName); - } - if ((cchNamespaceUri < 0) && (wszNamespaceUri != NULL)) - { - cchNamespaceUri = (int)wcslen(wszNamespaceUri); - } - - ULONG nFunctionHash = AtlSoapHashStr(wszName, cchName); - ULONG nNamespaceHash = wszNamespaceUri ? AtlSoapHashStr(wszNamespaceUri, cchNamespaceUri) : 0; - - int i; - for (i=0; pEntry[i] != NULL; i++) - { - if ((IsEqualStringHash(wszName, cchName, nFunctionHash, - pEntry[i]->wszName, pEntry[i]->cchWName, pEntry[i]->nHash) != FALSE) && - (!wszNamespaceUri || - IsEqualStringHash(wszNamespaceUri, cchNamespaceUri, nNamespaceHash, - pEntry[i]->wszNamespace, pEntry[i]->cchNamespace, pEntry[i]->nNamespaceHash) != FALSE)) - { - break; - } - } - - if (pnVal != NULL) - { - *pnVal = i; - } - return pEntry[i]; - } - - HRESULT CheckEndElement(const ParseState& state) - { - // check for all elements - if (state.nElement == state.nExpectedElements) - { - return S_OK; - } - - // error check for fixed arrays - if (state.dwFlags & SOAPFLAG_FIXEDARR) - { - return E_FAIL; - } - - // check for dynamic arrays - if (state.dwFlags & SOAPFLAG_DYNARR) - { - // check for dynamic arrays with known size - // (from soap:arrayType attribute) - if ((state.dwFlags & SOAPFLAG_UNKSIZE)==0) - { - return E_FAIL; - } - } - - DWORD dwIncludeFlags; - DWORD dwExcludeFlags; - - if (m_bClient != false) - { - dwIncludeFlags = SOAPFLAG_OUT; - dwExcludeFlags = SOAPFLAG_IN; - } - else - { - dwIncludeFlags = SOAPFLAG_IN; - dwExcludeFlags = SOAPFLAG_OUT; - } - - if (state.pMap != NULL) - { - // ensure all omitted elements were nullable elements or nomarshal elements - const _soapmapentry *pEntries = state.pMap->pEntries; - for (size_t i=0; pEntries[i].nHash != 0; i++) - { - if ((pEntries[i].dwFlags & dwIncludeFlags) || - ((pEntries[i].dwFlags & dwExcludeFlags)==0)) - { - if (state.vec.GetBit(i) == false) - { - if (((pEntries[i].dwFlags & (SOAPFLAG_NULLABLE | SOAPFLAG_NOMARSHAL))==0) && (pEntries[i].nVal != SOAPTYPE_UNK)) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckEndElement -- invalid number of elements for parameter/field\r\n") ); - return E_FAIL; - } - } - } - } - } - - return S_OK; - } - - HRESULT CheckSoapHeaders(const ParseState &state) - { - DWORD dwIncludeFlags; - DWORD dwExcludeFlags; - - if (m_bClient != false) - { - dwIncludeFlags = SOAPFLAG_OUT; - dwExcludeFlags = SOAPFLAG_IN; - } - else - { - dwIncludeFlags = SOAPFLAG_IN; - dwExcludeFlags = SOAPFLAG_OUT; - } - - if (state.pMap != NULL) - { - ATLASSERT( state.pMap->mapType == SOAPMAP_HEADER ); - - // ensure all omitted elements were nullable elements, nomarshal elements, or non-required elements - const _soapmapentry *pEntries = state.pMap->pEntries; - for (size_t i=0; pEntries[i].nHash != 0; i++) - { - if ((pEntries[i].dwFlags & dwIncludeFlags) || - ((pEntries[i].dwFlags & dwExcludeFlags)==0)) - { - if (state.vec.GetBit(i) == false) - { - bool bNoOmit = (pEntries[i].dwFlags & (SOAPFLAG_NULLABLE | SOAPFLAG_NOMARSHAL))==0; - - if ((bNoOmit != false) || - ((bNoOmit != false) && (pEntries[i].dwFlags & SOAPFLAG_MUSTUNDERSTAND))) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::CheckSoapHeaders -- missing header\r\n") ); - return E_FAIL; - } - } - } - } - } - - return S_OK; - } - - HRESULT CheckEndHeaders( - const wchar_t * wszNamespaceUri, - int cchNamespaceUri, - const wchar_t * wszLocalName, - int cchLocalName) - { - if (IsEqualElement(sizeof(SOAP_HEADERA)-1, SOAP_HEADERW, - sizeof(SOAPENV_NAMESPACEA)-1, SOAPENV_NAMESPACEW, - cchLocalName, wszLocalName, - cchNamespaceUri, wszNamespaceUri)) - { - m_dwState = SOAP_HEADERS_DONE; - return S_OK; - } - - // some sort of error - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::endElement -- invalid SOAP message format while processing headers.\r\n" ) ); - - return E_FAIL; - } - -protected: - - ISAXXMLReader * SetReader(ISAXXMLReader *pReader) - { - ISAXXMLReader *pPrevRdr = m_spReader; - m_spReader = pReader; - - return pPrevRdr; - } - - ISAXXMLReader * GetReader() - { - return m_spReader; - } - - HRESULT SetSoapMapFromName( - const wchar_t * wszName, - int cchName = -1, - const wchar_t * wszNamespaceUri = NULL, - int cchNamespaceUri = -1, - bool bHeader = false) - { - ATLENSURE_RETURN( wszName != NULL ); - - int nVal; - const _soapmap *pMap = NULL; - if (m_stateStack.GetCount() != 0) - { - ATLASSUME( m_stateStack[0].pMap != NULL ); - nVal = (int) m_stateStack[0].nAllocSize; - ATLASSERT( GetFunctionMap() != NULL ); - pMap = GetFunctionMap()[nVal]; - } - else - { - pMap = GetSoapMapFromName(wszName, cchName, - wszNamespaceUri, cchNamespaceUri, &nVal, bHeader); - } - - if (pMap == NULL) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::SetSoapMapFromName -- _soapmap not found for: %.*ws, with namespace %.*ws\r\n"), - (int)wcslen(wszName), wszName, wszNamespaceUri ? (int)wcslen(wszNamespaceUri) : 0, wszNamespaceUri ? wszNamespaceUri : L""); - - return E_FAIL; - } - - HRESULT hr = E_OUTOFMEMORY; - - // allocate the parameter struct - - void *pvParam = NULL; - if (bHeader != false) - { - pvParam = GetHeaderValue(); - } - else - { - if (m_bClient == false) - { - m_pvParam = m_pMemMgr->Allocate(pMap->nElementSize); - } - pvParam = m_pvParam; - } - - if (pvParam != NULL) - { - if (bHeader == false) - { - memset(pvParam, 0x00, pMap->nElementSize); - } - - // push initial state - - if (m_stateStack.GetCount() != 0) - { - m_stateStack.RemoveAll(); - } - - hr = PushState(pvParam, pMap, NULL, 0, nVal, pMap->nElements); - - if (FAILED(hr)) - { - if ((m_bClient == false) && (bHeader == false)) - { - m_pMemMgr->Free(pvParam); - } - } - } - -#ifdef _DEBUG - if (hr == E_OUTOFMEMORY) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::SetSoapMapFromName -- out of memory.\r\n" ) ); - } -#endif // _DEBUG - - return hr; - } - - // implementation - virtual const _soapmap ** GetFunctionMap() = 0; - virtual const _soapmap ** GetHeaderMap() = 0; - virtual const wchar_t * GetNamespaceUri() = 0; - virtual const char * GetServiceName() = 0; - virtual const char * GetNamespaceUriA() = 0; - virtual HRESULT CallFunction( - void *pvParam, - const wchar_t *wszLocalName, int cchLocalName, - size_t nItem) = 0; - virtual void * GetHeaderValue() = 0; - -public: - - CSoapRootHandler(ISAXXMLReader *pReader = NULL) - : m_pMemMgr(&m_crtHeap), m_spReader(pReader), m_bClient(false), - m_nState(0), m_pvParam(NULL), m_nDepth(0) - { - InitHandlerState(); - } - virtual ~CSoapRootHandler() - { - m_skipHandler.DetachParent(); - } - - IAtlMemMgr * SetMemMgr(IAtlMemMgr *pMemMgr) - { - IAtlMemMgr *pPrevMgr = m_pMemMgr; - m_pMemMgr = pMemMgr; - - return pPrevMgr; - } - - IAtlMemMgr * GetMemMgr() - { - return m_pMemMgr; - } - - // override this function to do SOAP Fault handling - virtual HRESULT SoapFault( - SOAP_ERROR_CODE /*errCode*/, - const wchar_t * /*wszDetail*/, - int /*cchDetail*/) - { - if (m_bClient != false) - { - return S_OK; - } - - // SOAP servers must implement this function - ATLASSERT( FALSE ); - return E_FAIL; - } - - // - // implementation - // - - void InitHandlerState() - { - m_bNullCheck = false; - m_bCharacters = false; - m_bChildCheck = false; - m_dwState = SOAP_START; - } - HRESULT __stdcall startDocument() - { - InitHandlerState(); - return S_OK; - } - - HRESULT __stdcall startElement( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - const wchar_t * wszQName, - int cchQName, - ISAXAttributes *pAttributes) - { - if (m_bNullCheck || m_bCharacters) - { - // make sure elements that aren't supposed to have child elements - // do not have child elements, and where we were expecting - // characters, we got them - return E_FAIL; - } - - m_bChildCheck = false; - ++m_nDepth; - - HRESULT hr = S_OK; - switch (m_dwState) - { - case SOAP_PARAMS: case SOAP_HEADERS: - { - hr = ProcessParams(wszNamespaceUri, cchNamespaceUri, wszLocalName, - cchLocalName, pAttributes); - - break; - } - case SOAP_START: case SOAP_ENVELOPE: case SOAP_HEADERS_DONE: - { - ULONG nNamespaceHash = AtlSoapHashStr(wszNamespaceUri, - cchNamespaceUri); - if (nNamespaceHash != SOAP_ENV) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::startElement -- incorrect SOAP-ENV namespace.\r\n" ) ); - - return E_FAIL; - } - - ULONG nElementHash = AtlSoapHashStr(wszLocalName, cchLocalName); - - if (nElementHash == ENVELOPE && - IsEqualElement( - sizeof(SOAP_ENVELOPEA)-1, SOAP_ENVELOPEW, - sizeof(SOAPENV_NAMESPACEA)-1, SOAPENV_NAMESPACEW, - cchLocalName, wszLocalName, - cchNamespaceUri, wszNamespaceUri)) - { - // Envelope must be first element in package - - if (m_dwState != SOAP_START) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::startElement -- invalid SOAP message format: \"Envelope\" in unexpected location.\r\n" ) ); - - hr = E_FAIL; - } - m_dwState = SOAP_ENVELOPE; - } - else if (nElementHash == HEADER && - IsEqualElement(sizeof(SOAP_HEADERA)-1, SOAP_HEADERW, - sizeof(SOAPENV_NAMESPACEA)-1, SOAPENV_NAMESPACEW, - cchLocalName, wszLocalName, - cchNamespaceUri, wszNamespaceUri)) - { - if (m_dwState != SOAP_ENVELOPE) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::startElement -- invalid SOAP message format: \"Headers\" in unexpected location.\r\n" ) ); - - hr = E_FAIL; - } - - m_dwState = SOAP_HEADERS; - } - else if (nElementHash == BODY && - IsEqualElement(sizeof(SOAP_BODYA)-1, SOAP_BODYW, - sizeof(SOAPENV_NAMESPACEA)-1, SOAPENV_NAMESPACEW, - cchLocalName, wszLocalName, - cchNamespaceUri, wszNamespaceUri)) - { - if (m_dwState == SOAP_START) - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::startElement -- invalid SOAP message format: \"Body\" in unexpected location.\r\n" ) ); - - hr = E_FAIL; - } - m_dwState = SOAP_BODY; - } - - break; - } - case SOAP_BODY: - { - hr = DispatchSoapCall(wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName); - - m_dwState = SOAP_PARAMS; - - if (SUCCEEDED(hr)) - { - if (GetState().pMap->dwCallFlags & SOAPFLAG_PAD) - { - hr = startElement(wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, wszQName, cchQName, - pAttributes); - } - } - - break; - } - -#ifdef _DEBUG - - default: - { - // should never get here -- internal error - ATLASSERT( FALSE ); - } - -#endif // _DEBUG - } - - return hr; - } - - HRESULT __stdcall characters( - const wchar_t *wszChars, - int cchChars) - { - m_bCharacters = false; - - // if it is a ready state, get the value - if (m_stateStack.IsEmpty() == false) - { - ParseState& state = GetState(); - if ((state.dwFlags & SOAPFLAG_READYSTATE) && - ((state.dwFlags & SOAPFLAG_SIZEIS)==0)) // don't marshal struct size_is elements -- should be filled in by array marshaling code - { - if ((state.pMap == NULL) || (state.pMap->mapType != SOAPMAP_ENUM)) - { - return AtlSoapGetElementValue(wszChars, cchChars, - state.pvElement, (SOAPTYPES)state.pEntry->nVal, GetMemMgr()); - } - else - { - // enum - - ATLASSERT( state.pMap != NULL ); - ATLASSERT( state.pMap->pEntries != NULL ); - - ULONG nHash = AtlSoapHashStr(wszChars, cchChars); - const _soapmapentry *pEntries = state.pMap->pEntries; - - size_t i; - for (i=0; pEntries[i].nHash != 0; i++) - { - if ((nHash == pEntries[i].nHash) && - (cchChars == pEntries[i].cchField) && - (!wcsncmp(wszChars, pEntries[i].wszField, cchChars))) - { - break; - } - } - - if (pEntries[i].nHash != 0) - { - *((int *)state.pvElement) = pEntries[i].nVal; - state.nElement++; - return S_OK; - } - - // no matching enum entry found - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::characters -- no matching enum entry found for: %.*ws.\r\n" ), cchChars, wszChars ); - - return E_FAIL; - } - } - } - - // otherwise, ignore - - return S_OK; - } - - HRESULT __stdcall endElement( - const wchar_t * wszNamespaceUri, - int cchNamespaceUri, - const wchar_t * wszLocalName, - int cchLocalName, - const wchar_t * /*wszQName*/, - int /*cchQName*/) - { - static bool bDynArrWrapper = false; - if (m_bCharacters) - { - return E_FAIL; - } - - m_bNullCheck = false; - - if (m_stateStack.IsEmpty() != false) - { - return S_OK; - } - - if (!bDynArrWrapper && (m_nState > 1)) - { - ParseState prevState = m_stateStack.GetAt(m_nState - 1); - ParseState curState = m_stateStack.GetAt(m_nState); - if (prevState.dwFlags & SOAPFLAG_DYNARRWRAPPER) - { - bDynArrWrapper = true; - endElement (wszNamespaceUri, cchNamespaceUri, curState.pEntry->wszField, - curState.pEntry->cchField, NULL, 0); - } - } - else - { - bDynArrWrapper = false; - } - - --m_nDepth; - - const ParseState& state = GetState(); - - if ((m_dwState == SOAP_HEADERS) && (m_stateStack.GetCount() == 1)) - { - return CheckEndHeaders(wszNamespaceUri, cchNamespaceUri, wszLocalName, cchLocalName); - } - - if (state.dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) - { - if (state.dwFlags & SOAPFLAG_READYSTATE) - { - PopState(); - } - - const ParseState& currstate = GetState(); - ATLENSURE_RETURN( currstate.pEntry != NULL ); - - if (m_nDepth == (currstate.nDepth-1)) - { - if (S_OK != CheckEndElement(currstate)) - { - // invalid number of elements - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::endElement -- invalid number of array elements for array parameter %.*ws.\r\n"), - currstate.pEntry->cchField, currstate.pEntry->wszField ); - - return E_FAIL; - } - - PopState(); - } - } - else - { - if (S_OK != CheckEndElement(state)) - { - return E_FAIL; - } - - PopState(); - } - - return S_OK; - } - - HRESULT SetClientStruct(void *pvParam, int nMapIndex) - { - ATLENSURE_RETURN( pvParam != NULL ); - ATLENSURE_RETURN( nMapIndex >= 0 ); - - // this is the params struct - // store for later use - m_pvParam = pvParam; - - const _soapmap ** pEntries = GetHeaderMap(); - ATLENSURE_RETURN( pEntries != NULL ); - - // push header value - return PushState(GetHeaderValue(), pEntries[nMapIndex], NULL, 0, nMapIndex, pEntries[nMapIndex]->nElements); - } - - void ResetClientState(bool bFull = false) - { - m_stateStack.RemoveAll(); - m_nState = 0; - if (bFull != false) - { - m_dwState = SOAP_START; - m_pvParam = NULL; - } - } - - HRESULT CreateReader() - { - return m_spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER); - } - - HRESULT InitializeSOAP(IServiceProvider *pProvider) - { - HRESULT hr = S_OK; - - if (m_spReader.p == NULL) - { - hr = E_FAIL; - if (pProvider != NULL) - { - IAtlMemMgr *pMemMgr = NULL; - hr = pProvider->QueryService(__uuidof(IAtlMemMgr), - __uuidof(IAtlMemMgr), (void **)&pMemMgr); - if ((SUCCEEDED(hr)) && (pMemMgr != NULL)) - { - SetMemMgr(pMemMgr); - } - - hr = pProvider->QueryService(__uuidof(ISAXXMLReader), - __uuidof(ISAXXMLReader), (void **)&m_spReader); - } - - if (FAILED(hr)) - { - hr = CreateReader(); - } - } - - if (SUCCEEDED(hr)) - { - hr = m_spReader->putContentHandler(this); - } - -#ifdef _DEBUG - else - { - ATLTRACE( _T("ATLSOAP: CSoapRootHandler::InitializeSOAP -- failed to get SAXXMLReader.\r\n" ) ); - } -#endif // _DEBUG - - return hr; - } - - void UninitializeSOAP() - { - if (m_spReader.p != NULL) - { - m_spReader->putContentHandler(NULL); - m_spReader.Release(); - } - } - - virtual HRESULT DispatchSoapCall(const wchar_t *wszNamespaceUri, - int cchNamespaceUri, const wchar_t *wszLocalName, - int cchLocalName) - { - HRESULT hr = S_OK; - - if (m_stateStack.IsEmpty() == false) - { - ATLASSUME( m_stateStack[0].pMap != NULL ); - - // check to see if all required and non-nullable SOAP headers were sent - if (m_stateStack[0].pMap->mapType == SOAPMAP_HEADER) - { - hr = CheckSoapHeaders(m_stateStack[0]); - } - if (SUCCEEDED(hr)) - { - hr = SetSoapMapFromName(wszLocalName, cchLocalName, - wszNamespaceUri, cchNamespaceUri); - } - } - else - { - // get the appropriate function map - hr = SetSoapMapFromName(wszLocalName, cchLocalName, - wszNamespaceUri, cchNamespaceUri); - - if (SUCCEEDED(hr)) - { - // set the SOAP Header map for the function - ATLASSUME( m_stateStack.IsEmpty() == false ); - - const _soapmap **ppHeaderMap = GetHeaderMap(); - ATLENSURE_RETURN( ppHeaderMap != NULL ); - - // create a temporary parse state for checking headers - ParseState state; - state.pMap = ppHeaderMap[m_stateStack[0].nAllocSize]; - ATLENSURE_RETURN( state.pMap != NULL ); - - // check to see if all required and non-nullable SOAP headers were sent - hr = CheckSoapHeaders(state); - } - } - - return hr; - } - - virtual HRESULT BeginParse(IStream *pStream) - { - ATLASSERT( pStream != NULL ); - - CComVariant varStream; - varStream = static_cast(pStream); - - HRESULT hr = m_spReader->parse(varStream); - if (SUCCEEDED(hr)) - { - if (m_refMap.GetCount() != 0) - { - hr = E_FAIL; - } - } - return hr; - } - - HRESULT CallFunctionInternal() - { - HRESULT hr = E_FAIL; - const ParseState& state = m_stateStack[0]; - hr = CallFunction( - state.pvElement, - state.pMap->wszName, - state.pMap->cchWName, - state.nAllocSize); - - return hr; - } - - virtual HRESULT GenerateResponse(IWriteStream *pStream) - { - ATLASSUME( m_stateStack.IsEmpty() == false ); - ATLASSUME( m_stateStack[0].pMap != NULL ); - ATLASSUME( m_stateStack[0].pvElement != NULL ); - - const ParseState& state = m_stateStack[0]; - - const _soapmap *pHeaderMap = NULL; - if (m_bClient == false) - { - const _soapmap **ppHeaderMap = GetHeaderMap(); - if (ppHeaderMap != NULL) - { - pHeaderMap = ppHeaderMap[state.nAllocSize]; - } - } - else - { - pHeaderMap = state.pMap; - } - - const _soapmap *pFuncMap = NULL; - if (m_bClient == false) - { - pFuncMap = state.pMap; - } - else - { - const _soapmap **ppFuncMap = GetFunctionMap(); - ATLENSURE_RETURN( ppFuncMap != NULL ); - pFuncMap = ppFuncMap[state.nAllocSize]; - } - - ATLENSURE_RETURN( pFuncMap != NULL ); - - CRpcEncodedGenerator rpcGen; - CPADGenerator padGen; - CPIDGenerator pidGen; - - CResponseGenerator *pGenerator = NULL; - - if ((pFuncMap->dwCallFlags & (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) == (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) - { - pGenerator = &rpcGen; - } - else if (pFuncMap->dwCallFlags & SOAPFLAG_PID) - { - ATLASSERT( (pFuncMap->dwCallFlags & (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL)) == (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL) ); - pGenerator = &pidGen; - } - else - { - ATLASSERT( (pFuncMap->dwCallFlags & (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL)) == (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL) ); - ATLASSERT( pFuncMap->dwCallFlags & SOAPFLAG_PAD ); - pGenerator = &padGen; - } - - HRESULT hr = pGenerator->StartEnvelope(pStream); - if (SUCCEEDED(hr)) - { - // generate headers if necessary - hr = GenerateHeaders(pGenerator, pHeaderMap, pStream); - if (SUCCEEDED(hr)) - { - hr = pGenerator->StartBody(pStream); - if (SUCCEEDED(hr)) - { - hr = GenerateResponseHelper(pGenerator, pFuncMap, m_pvParam, pStream, true); - if (SUCCEEDED(hr)) - { - hr = pGenerator->EndBody(pStream); - if (SUCCEEDED(hr)) - { - hr = pGenerator->EndEnvelope(pStream); - } - } - } - } - } - - return hr; - } - - virtual void Cleanup() - { - // cleanup headers - CleanupHeaders(); - - if ((m_stateStack.IsEmpty() == false) && (m_pvParam != NULL)) - { - const _soapmap **ppFuncMap = GetFunctionMap(); - ATLENSURE( ppFuncMap != NULL ); - - const _soapmap *pFuncMap = ppFuncMap[m_stateStack[0].nAllocSize]; - ATLENSURE( pFuncMap != NULL ); - - CleanupHelper(pFuncMap, m_pvParam); - if (m_bClient == false) - { - m_pMemMgr->Free(m_pvParam); - m_stateStack.RemoveAll(); - } - } - } - - virtual void CleanupHeaders() - { - if (m_stateStack.IsEmpty() == false) - { - const _soapmap **ppHeaderMap = GetHeaderMap(); - ATLENSURE( ppHeaderMap != NULL ); - - const _soapmap *pHeaderMap = ppHeaderMap[m_stateStack[0].nAllocSize]; - ATLENSURE( pHeaderMap != NULL ); - - CleanupHelper(pHeaderMap, GetHeaderValue()); - } - } - - void SetClient(bool bClient) - { - m_bClient = bClient; - } - -}; // class CSoapRootHandler - -#define DECLARE_XSD_ENTRY( __name ) \ - { L ## __name, __name, sizeof(__name)-1 }, - -__declspec(selectany) const CSoapRootHandler::XSDEntry CSoapRootHandler::s_xsdNames[] = -{ - DECLARE_XSD_ENTRY("string") - DECLARE_XSD_ENTRY("boolean") - DECLARE_XSD_ENTRY("float") - DECLARE_XSD_ENTRY("double") - DECLARE_XSD_ENTRY("decimal") - DECLARE_XSD_ENTRY("duration") - DECLARE_XSD_ENTRY("hexBinary") - DECLARE_XSD_ENTRY("base64Binary") - DECLARE_XSD_ENTRY("anyURI") - DECLARE_XSD_ENTRY("ID") - DECLARE_XSD_ENTRY("IDREF") - DECLARE_XSD_ENTRY("ENTITY") - DECLARE_XSD_ENTRY("NOTATION") - DECLARE_XSD_ENTRY("QName") - DECLARE_XSD_ENTRY("normalizedString") - DECLARE_XSD_ENTRY("token") - DECLARE_XSD_ENTRY("language") - DECLARE_XSD_ENTRY("IDREFS") - DECLARE_XSD_ENTRY("ENTITIES") - DECLARE_XSD_ENTRY("NMTOKEN") - DECLARE_XSD_ENTRY("NMTOKENS") - DECLARE_XSD_ENTRY("Name") - DECLARE_XSD_ENTRY("NCName") - DECLARE_XSD_ENTRY("integer") - DECLARE_XSD_ENTRY("nonPositiveInteger") - DECLARE_XSD_ENTRY("negativeInteger") - DECLARE_XSD_ENTRY("long") - DECLARE_XSD_ENTRY("int") - DECLARE_XSD_ENTRY("short") - DECLARE_XSD_ENTRY("byte") - DECLARE_XSD_ENTRY("nonNegativeInteger") - DECLARE_XSD_ENTRY("unsignedLong") - DECLARE_XSD_ENTRY("unsignedInt") - DECLARE_XSD_ENTRY("unsignedShort") - DECLARE_XSD_ENTRY("unsignedByte") - DECLARE_XSD_ENTRY("positiveInteger") - DECLARE_XSD_ENTRY("dateTime") - DECLARE_XSD_ENTRY("time") - DECLARE_XSD_ENTRY("date") - DECLARE_XSD_ENTRY("gMonth") - DECLARE_XSD_ENTRY("gYearMonth") - DECLARE_XSD_ENTRY("gYear") - DECLARE_XSD_ENTRY("gMonthDay") - DECLARE_XSD_ENTRY("gDay") -}; - -__declspec(selectany) CCRTHeap CSoapRootHandler::m_crtHeap; - -template -class CSoapHandler : - public CSoapRootHandler, - public CComObjectRootEx, - public IRequestHandlerImpl -{ -protected: - - HTTP_CODE m_hcErr; - CHttpResponse *m_pHttpResponse; - - // heap for SOAP requests - CWin32Heap m_heap; - - // default heap is COM heap (SOAP Servers can double as COM objects) - CComHeap m_comHeap; - -public: - - BEGIN_COM_MAP(CSoapHandler) - COM_INTERFACE_ENTRY(ISAXContentHandler) - COM_INTERFACE_ENTRY(IRequestHandler) - END_COM_MAP() - - CSoapHandler() - :m_pHttpResponse(NULL), m_hcErr(HTTP_SUCCESS) - { - SetMemMgr(&m_comHeap); - } - - void SetHttpError(HTTP_CODE hcErr) - { - m_hcErr = hcErr; - } - - HRESULT SoapFault( - SOAP_ERROR_CODE errCode, - const wchar_t *wszDetail, - int cchDetail) - { - ATLASSUME( m_pHttpResponse != NULL ); - - SetHttpError(AtlsHttpError(500, SUBERR_NO_PROCESS)); - - m_pHttpResponse->ClearHeaders(); - m_pHttpResponse->ClearContent(); - m_pHttpResponse->SetContentType("text/xml"); - m_pHttpResponse->SetStatusCode(500); - - CSoapFault fault; - if (wszDetail != NULL) - { - if (cchDetail < 0) - { - cchDetail = (int) wcslen(wszDetail); - } - - _ATLTRY - { - fault.m_strDetail.SetString(wszDetail, cchDetail); - } - _ATLCATCHALL() - { - ATLTRACE( _T("CSoapHandler::SoapFault -- out of memory.\r\n" ) ); - - return E_OUTOFMEMORY; - } - } - - fault.m_soapErrCode = errCode; - fault.GenerateFault(m_pHttpResponse); - return S_OK; - } - - HTTP_CODE InitializeHandler(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - m_hcErr = IRequestHandlerImpl::InitializeHandler(pRequestInfo, pProvider); - if (m_hcErr == HTTP_SUCCESS) - { - HRESULT hr = InitializeSOAP(m_spServiceProvider); - if (SUCCEEDED(hr)) - { - // try to use the per-thread heap - CIsapiWorker *pWorker = pRequestInfo->pExtension->GetThreadWorker(); - if (pWorker != NULL) - { - m_heap.Attach(pWorker->m_hHeap, false); - SetMemMgr(&m_heap); - } - - return m_hcErr; - } - } - - // some initialization failure - CHttpResponse HttpResponse(pRequestInfo->pServerContext); - m_pHttpResponse = &HttpResponse; - - SoapFault(SOAP_E_SERVER, NULL, 0); - - m_pHttpResponse = NULL; - - return m_hcErr; - } - - HTTP_CODE HandleRequest(AtlServerRequest *pRequestInfo, IServiceProvider * /*pProvider*/) - { - // SOAPACTION header is required per the SOAP 1.1 - // mainly so firewalls can filter on it. - char szBuf[ATL_URL_MAX_URL_LENGTH+1]; - szBuf[0] = '\0'; - DWORD dwLen = ATL_URL_MAX_URL_LENGTH; - if ( m_spServerContext->GetServerVariable("HTTP_SOAPACTION", szBuf, &dwLen) != FALSE ) - { - if ( dwLen >= 2 ) - { - // drop the last " - szBuf[dwLen-2] = '\0'; - char *szMethod = strrchr(szBuf, '#'); - if (szMethod != NULL) - { - _ATLTRY - { - // ignore return code here - SetSoapMapFromName(CA2W( szMethod+1 ), -1, GetNamespaceUri(), -1, true); - } - _ATLCATCHALL() - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - } - } - } - else - { - // SOAP requestion that use the HTTP transport - // must have a SOAPACTION header. - return HTTP_ERROR(500, ISE_SUBERR_SOAPNOSOAPACTION); - } - - // set the header map - CHttpResponse HttpResponse(pRequestInfo->pServerContext); - m_pHttpResponse = &HttpResponse; - - CStreamOnServerContext s(pRequestInfo->pServerContext); - -#ifdef _DEBUG - - CSAXSoapErrorHandler err; - GetReader()->putErrorHandler(&err); - -#endif // _DEBUG - - HRESULT hr = BeginParse(&s); - -#ifdef _DEBUG - // release the error handler - GetReader()->putErrorHandler(NULL); -#endif // _DEBUG - - if (FAILED(hr)) - { - Cleanup(); - if (m_hcErr == HTTP_SUCCESS) - { - SoapFault(SOAP_E_CLIENT, NULL, NULL); - } - - return m_hcErr; - } - - _ATLTRY - { - hr = CallFunctionInternal(); - } - _ATLCATCHALL() - { - // cleanup before propagating user exception - Cleanup(); - HttpResponse.Detach(); - _ATLRETHROW; - } - - if (FAILED(hr)) - { - Cleanup(); - HttpResponse.ClearHeaders(); - HttpResponse.ClearContent(); - if (m_hcErr != HTTP_SUCCESS) - { - HttpResponse.SetStatusCode(HTTP_ERROR_CODE(m_hcErr)); - return HTTP_SUCCESS_NO_PROCESS; - } - HttpResponse.SetStatusCode(500); - GenerateAppError(&HttpResponse, hr); - return AtlsHttpError(500, SUBERR_NO_PROCESS); - } - - HttpResponse.SetContentType("text/xml"); - hr = GenerateResponse(&HttpResponse); - Cleanup(); - if (FAILED(hr)) - { - SoapFault(SOAP_E_SERVER, NULL, 0); - return m_hcErr; - } - - return HTTP_SUCCESS; - } - - virtual ATL_NOINLINE HRESULT GenerateAppError(IWriteStream *pStream, HRESULT hr) - { - if (pStream == NULL) - { - return E_INVALIDARG; - } - - LPWSTR pwszMessage = NULL; - DWORD dwLen = ::FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, - NULL, hr, 0, (LPWSTR) &pwszMessage, 0, NULL); - - if (dwLen == 0) - { - pwszMessage = L"Application Error"; - } - - hr = SoapFault(SOAP_E_SERVER, pwszMessage, dwLen ? dwLen : -1); - if (dwLen != 0) - { - ::LocalFree(pwszMessage); - } - - return hr; - } - - void UninitializeHandler() - { - UninitializeSOAP(); - } -}; - - -// client error states -enum SOAPCLIENT_ERROR -{ - SOAPCLIENT_SUCCESS=0, // everything succeeded - SOAPCLIENT_INITIALIZE_ERROR, // initialization failed -- most likely an MSXML installation problem - SOAPCLIENT_OUTOFMEMORY, // out of memory - SOAPCLIENT_GENERATE_ERROR, // failed in generating the response - SOAPCLIENT_CONNECT_ERROR, // failed connecting to server - SOAPCLIENT_SEND_ERROR, // failed in sending message - SOAPCLIENT_SERVER_ERROR, // server error - SOAPCLIENT_SOAPFAULT, // a SOAP Fault was returned by the server - SOAPCLIENT_PARSEFAULT_ERROR, // failed in parsing SOAP fault - SOAPCLIENT_READ_ERROR, // failed in reading response - SOAPCLIENT_PARSE_ERROR // failed in parsing response -}; - -template -class CSoapSocketClientT -{ -private: - - CUrl m_url; - CWriteStreamOnCString m_writeStream; - CReadStreamOnSocket m_readStream; - DWORD m_dwTimeout; - - SOAPCLIENT_ERROR m_errorState; - -protected: - - virtual HRESULT GetClientReader(ISAXXMLReader **pReader) - { - if (pReader == NULL) - { - return E_POINTER; - } - *pReader = NULL; - - CComPtr spReader; - HRESULT hr = spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER); - if (SUCCEEDED(hr)) - { - *pReader = spReader.Detach(); - } - return hr; - } - -public: - - // note : not shared across stock client implementations - CAtlHttpClientT m_socket; - - CSoapFault m_fault; - - // constructor - CSoapSocketClientT(LPCTSTR szUrl) - : m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - TCHAR szTmp[ATL_URL_MAX_URL_LENGTH]; - if(AtlEscapeUrl(szUrl,szTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE)) - m_url.CrackUrl(szTmp); - } - - CSoapSocketClientT(LPCTSTR szServer, LPCTSTR szUri, ATL_URL_PORT nPort=80) - : m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - ATLASSERT( szServer != NULL ); - ATLASSERT( szUri != NULL ); - - m_url.SetUrlPath(szUri); - m_url.SetHostName(szServer); - m_url.SetPortNumber(nPort); - } - - ~CSoapSocketClientT() - { - CleanupClient(); - } - - SOAPCLIENT_ERROR GetClientError() - { - return m_errorState; - } - - void SetClientError(SOAPCLIENT_ERROR errorState) - { - m_errorState = errorState; - } - - IWriteStream * GetWriteStream() - { - return &m_writeStream; - } - - HRESULT GetReadStream(IStream **ppStream) - { - if (ppStream == NULL) - { - return E_POINTER; - } - - *ppStream = &m_readStream; - return S_OK; - } - - void CleanupClient() - { - m_writeStream.Cleanup(); - m_fault.Clear(); - SetClientError(SOAPCLIENT_SUCCESS); - } - - HRESULT SendRequest(LPCTSTR szAction) - { - HRESULT hr = E_FAIL; - _ATLTRY - { - // create extra headers to send with request - CFixedStringT strExtraHeaders(szAction); - strExtraHeaders.Append(_T("Accept: text/xml\r\n"), sizeof("Accept: text/xml\r\n")-1); - CAtlNavigateData navData; - navData.SetMethod(ATL_HTTP_METHOD_POST); - navData.SetPort(m_url.GetPortNumber()); - navData.SetExtraHeaders(strExtraHeaders); - navData.SetPostData((LPBYTE)(LPCSTR) m_writeStream.m_str, m_writeStream.m_str.GetLength(), _T("text/xml; charset=utf-8")); - - ATLSOAP_TRACE( (LPBYTE)(LPCSTR)m_writeStream.m_str, m_writeStream.m_str.GetLength() ); - - if (m_dwTimeout != 0) - { - navData.SetSocketTimeout(m_dwTimeout); - } - - if (m_socket.Navigate(&m_url, &navData) != false) - { - if (GetStatusCode() == 200) - { - hr = (m_readStream.Init(&m_socket) != FALSE ? S_OK : E_FAIL); - if (hr != S_OK) - { - SetClientError(SOAPCLIENT_READ_ERROR); - } - } - else if (GetStatusCode() == 202) - { - // for one-way methods - hr = S_OK; - } - else - { - SetClientError(SOAPCLIENT_SERVER_ERROR); - } - } - else if (GetStatusCode() == 500) - { - SetClientError(SOAPCLIENT_SOAPFAULT); - - // if returned 500, get the SOAP fault - if (m_readStream.Init(&m_socket) != FALSE) - { - CComPtr spReader; - if (SUCCEEDED(GetClientReader(&spReader))) - { - CComPtr spReadStream; - if (SUCCEEDED(GetReadStream(&spReadStream))) - { - if (FAILED(m_fault.ParseFault(spReadStream, spReader))) - { - SetClientError(SOAPCLIENT_PARSEFAULT_ERROR); - } - } - } - } - } - else - { - SetClientError(SOAPCLIENT_SEND_ERROR); - } - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - - return hr; - } - - HRESULT SetUrl(LPCTSTR szUrl) - { - TCHAR szTmp[ATL_URL_MAX_URL_LENGTH]; - if(!AtlEscapeUrl(szUrl,szTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE)) - { - return E_FAIL; - } - - return (m_url.CrackUrl(szTmp) != FALSE) ? S_OK : E_FAIL; - } - - HRESULT GetUrl(__out_ecount_part_z(*pdwLen, *pdwLen) LPTSTR szUrl, __inout LPDWORD pdwLen) - { - if ((szUrl == NULL) || (pdwLen == NULL)) - { - return E_INVALIDARG; - } - - return (m_url.CreateUrl(szUrl, pdwLen) != FALSE) ? S_OK : E_FAIL; - } - - HRESULT SetProxy(LPCTSTR szProxy = NULL, short nProxyPort = 80) - { - BOOL bRet = m_socket.SetProxy(szProxy, nProxyPort); - return (bRet != FALSE) ? S_OK : E_FAIL; - } - - void SetTimeout(DWORD dwTimeout) - { - m_dwTimeout = dwTimeout; - } - - int GetStatusCode() - { - return m_socket.GetStatus(); - } - -}; // CSoapSocketClientT - -#ifndef ATLSOAP_NOWININET - -class CReadStreamOnInet : public IStreamImpl -{ -public: - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_IStream) || - InlineIsEqualGUID(riid, IID_ISequentialStream)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - -private: - - HINTERNET m_hFile; - -public: - - CReadStreamOnInet() - :m_hFile(NULL) - { - } - - void Init(HINTERNET hFile) - { - m_hFile = hFile; - } - - HRESULT STDMETHODCALLTYPE Read(void *pDest, ULONG dwMaxLen, ULONG *pdwRead) - { - BOOL bRet = InternetReadFile(m_hFile, pDest, dwMaxLen, pdwRead); - return (bRet != FALSE) ? S_OK : E_FAIL; - } - -}; // CStreamOnInet - -class CSoapWininetClient -{ -private: - - CUrl m_url; - CWriteStreamOnCString m_writeStream; - CReadStreamOnInet m_readStream; - CString m_strProxy; - DWORD m_dwTimeout; - CFixedStringT m_strUrl; - SOAPCLIENT_ERROR m_errorState; - - void CloseAll() - { - if (m_hRequest != NULL) - { - InternetCloseHandle(m_hRequest); - m_hRequest = NULL; - } - if (m_hConnection != NULL) - { - InternetCloseHandle(m_hConnection); - m_hConnection = NULL; - } - if (m_hInternet != NULL) - { - InternetCloseHandle(m_hInternet); - m_hInternet = NULL; - } - } - - HRESULT ConnectToServer() - { - if (m_hConnection != NULL) - { - return S_OK; - } - - m_hInternet = InternetOpen( - ATLSOAPINET_CLIENT, - m_strProxy.GetLength() ? (INTERNET_OPEN_TYPE_PRECONFIG | INTERNET_OPEN_TYPE_PROXY) : INTERNET_OPEN_TYPE_PRECONFIG, - m_strProxy.GetLength() ? (LPCTSTR) m_strProxy : NULL, - NULL, 0); - - if (m_hInternet != NULL) - { - if (m_dwTimeout != 0) - { - InternetSetOption(m_hInternet, INTERNET_OPTION_CONNECT_TIMEOUT, - &m_dwTimeout, sizeof(m_dwTimeout)); - InternetSetOption(m_hInternet, INTERNET_OPTION_RECEIVE_TIMEOUT, - &m_dwTimeout, sizeof(m_dwTimeout)); - InternetSetOption(m_hInternet, INTERNET_OPTION_SEND_TIMEOUT, - &m_dwTimeout, sizeof(m_dwTimeout)); - } - m_hConnection = InternetConnect(m_hInternet, m_url.GetHostName(), - (INTERNET_PORT) m_url.GetPortNumber(), NULL, NULL, - INTERNET_SERVICE_HTTP, 0, NULL); - - if (m_hConnection != NULL) - { - return S_OK; - } - } - CloseAll(); - return E_FAIL; - } - -protected: - - virtual HRESULT GetClientReader(ISAXXMLReader **pReader) - { - if (pReader == NULL) - { - return E_POINTER; - } - *pReader = NULL; - - CComPtr spReader; - HRESULT hr = spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER); - if (SUCCEEDED(hr)) - { - *pReader = spReader.Detach(); - } - return hr; - } - -public: - - // note : not shared across stock client implementations - HINTERNET m_hInternet; - HINTERNET m_hConnection; - HINTERNET m_hRequest; - - CSoapFault m_fault; - - CSoapWininetClient(LPCTSTR szUrl) - :m_hInternet(NULL), m_hConnection(NULL), m_hRequest(NULL), m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - TCHAR szTmp[ATL_URL_MAX_URL_LENGTH]; - if(AtlEscapeUrl(szUrl,szTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE)) - { - if (m_url.CrackUrl(szTmp) != FALSE) - { - SetProxy(); - _ATLTRY - { - m_strUrl.SetString(m_url.GetUrlPath(), m_url.GetUrlPathLength()); - m_strUrl.Append(m_url.GetExtraInfo(), m_url.GetExtraInfoLength()); - } - _ATLCATCHALL() - { - } - } - } - } - - CSoapWininetClient(LPCTSTR szServer, LPCTSTR szUri, short nPort=80) - :m_hInternet(NULL), m_hConnection(NULL), m_hRequest(NULL), m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - if (m_url.SetHostName(szServer) != FALSE) - { - if (m_url.SetUrlPath(szUri) != FALSE) - { - if (m_url.SetPortNumber((ATL_URL_PORT) nPort) != FALSE) - { - _ATLTRY - { - m_strUrl.SetString(m_url.GetUrlPath(), m_url.GetUrlPathLength()); - m_strUrl.Append(m_url.GetExtraInfo(), m_url.GetExtraInfoLength()); - } - _ATLCATCHALL() - { - } - } - } - } - } - - virtual ~CSoapWininetClient() - { - CleanupClient(); - CloseAll(); - } - - SOAPCLIENT_ERROR GetClientError() - { - return m_errorState; - } - - void SetClientError(SOAPCLIENT_ERROR errorState) - { - m_errorState = errorState; - } - - IWriteStream * GetWriteStream() - { - return &m_writeStream; - } - - HRESULT GetReadStream(IStream **ppStream) - { - if (ppStream == NULL) - { - return E_POINTER; - } - - *ppStream = &m_readStream; - return S_OK; - } - - void CleanupClient() - { - m_writeStream.Cleanup(); - if (m_hRequest != NULL) - { - InternetCloseHandle(m_hRequest); - m_hRequest = NULL; - } - m_fault.Clear(); - SetClientError(SOAPCLIENT_SUCCESS); - } - - HRESULT SendRequest(LPCTSTR szAction) - { - if (ConnectToServer() != S_OK) - { - SetClientError(SOAPCLIENT_CONNECT_ERROR); - return E_FAIL; - } - - CString strHeaders; - _ATLTRY - { - strHeaders.Append(szAction); - strHeaders.Append(_T("Content-Type: text/xml; charset=utf-8\r\n")); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - static LPCTSTR s_szAcceptTypes[] = { _T("text/*"), NULL }; - m_hRequest = HttpOpenRequest(m_hConnection, _T("POST"), - m_strUrl, _T("HTTP/1.0"), NULL, - s_szAcceptTypes, - INTERNET_FLAG_NO_UI | INTERNET_FLAG_KEEP_CONNECTION | ((m_url.GetScheme() == ATL_URL_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0) - , NULL); - - if (m_hRequest != NULL) - { - if (FALSE != HttpSendRequest(m_hRequest, strHeaders, (DWORD) strHeaders.GetLength(), - (void *)(LPCSTR)m_writeStream.m_str, m_writeStream.m_str.GetLength())) - { - m_readStream.Init(m_hRequest); - if (GetStatusCode() != HTTP_STATUS_SERVER_ERROR) - { - return S_OK; - } - else - { - SetClientError(SOAPCLIENT_SOAPFAULT); - - CComPtr spReader; - if (SUCCEEDED(GetClientReader(&spReader))) - { - CComPtr spReadStream; - if (SUCCEEDED(GetReadStream(&spReadStream))) - { - if (FAILED(m_fault.ParseFault(spReadStream, spReader))) - { - SetClientError(SOAPCLIENT_PARSEFAULT_ERROR); - } - } - } - } - } - } - else - { - SetClientError(SOAPCLIENT_SEND_ERROR); - } - - return E_FAIL; - } - - HRESULT SetUrl(LPCTSTR szUrl) - { - CloseAll(); - TCHAR szTmp[ATL_URL_MAX_URL_LENGTH]; - if(!AtlEscapeUrl(szUrl,szTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE)) - { - return E_FAIL; - } - - if (m_url.CrackUrl(szTmp) != FALSE) - { - _ATLTRY - { - m_strUrl.SetString(m_url.GetUrlPath(), m_url.GetUrlPathLength()); - m_strUrl.Append(m_url.GetExtraInfo(), m_url.GetExtraInfoLength()); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - return S_OK; - } - return E_FAIL; - } - - HRESULT GetUrl(LPTSTR szUrl, LPDWORD pdwLen) - { - if ((szUrl == NULL) || (pdwLen == NULL)) - { - return E_INVALIDARG; - } - - return (m_url.CreateUrl(szUrl, pdwLen) != FALSE) ? S_OK : E_FAIL; - } - - HRESULT SetProxy(LPCTSTR szProxy = NULL, short nProxyPort = 80) - { - _ATLTRY - { - if (szProxy && szProxy[0]) - { - m_strProxy.Format(_T("http=http://%s:%d https=http://%s:%d"), szProxy, nProxyPort, szProxy, nProxyPort); - } - else - { - m_strProxy.Empty(); - } - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - - return S_OK; - } - - void SetTimeout(DWORD dwTimeout) - { - m_dwTimeout = dwTimeout; - } - - int GetStatusCode() - { - DWORD dwLen = 255; - TCHAR szBuf[256]; - if (HttpQueryInfo(m_hRequest, HTTP_QUERY_STATUS_CODE, szBuf, &dwLen, NULL)) - { - szBuf[dwLen] = '\0'; - return _ttoi(szBuf); - } - return 0; - } -}; // CSoapWininetClient -#endif - -#ifndef ATLSOAP_NOMSXML_INET -class CSoapMSXMLInetClient -{ -private: - - CUrl m_url; - CWriteStreamOnCString m_writeStream; - DWORD m_dwTimeout; - SOAPCLIENT_ERROR m_errorState; - - HRESULT ConnectToServer() - { - TCHAR szURL[ATL_URL_MAX_URL_LENGTH]; - DWORD dwLen = ATL_URL_MAX_URL_LENGTH; - HRESULT hr = E_FAIL; - - if (m_spHttpRequest) - return S_OK; - - if (!m_url.CreateUrl(szURL, &dwLen)) - return E_FAIL; - - - hr = m_spHttpRequest.CoCreateInstance(__uuidof(ServerXMLHTTP30)); - if (hr != S_OK) - return hr; - - CComVariant vEmpty; - hr = m_spHttpRequest->open( CComBSTR(L"POST"), - CComBSTR(szURL), - CComVariant(VARIANT_BOOL(VARIANT_FALSE)), - vEmpty, - vEmpty ); - if (hr != S_OK) - { - m_spHttpRequest.Release(); - return hr; - } - - return S_OK; - } - -protected: - - virtual HRESULT GetClientReader(ISAXXMLReader **pReader) - { - if (pReader == NULL) - { - return E_POINTER; - } - *pReader = NULL; - - CComPtr spReader; - HRESULT hr = spReader.CoCreateInstance(ATLS_SAXXMLREADER_CLSID, NULL, CLSCTX_INPROC_SERVER); - if (SUCCEEDED(hr)) - { - *pReader = spReader.Detach(); - } - return hr; - } - -public: - - // note : not shared across stock client implementations - CComPtr m_spHttpRequest; - - CSoapFault m_fault; - - CSoapMSXMLInetClient(LPCTSTR szUrl) - :m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - m_url.CrackUrl(szUrl); - } - - CSoapMSXMLInetClient(LPCTSTR szServer, LPCTSTR szUri, short nPort=80) - : m_dwTimeout(0), m_errorState(SOAPCLIENT_SUCCESS) - { - m_url.SetHostName(szServer); - m_url.SetUrlPath(szUri); - m_url.SetPortNumber((ATL_URL_PORT) nPort); - } - - virtual ~CSoapMSXMLInetClient() - { - CleanupClient(); - } - - SOAPCLIENT_ERROR GetClientError() - { - return m_errorState; - } - - void SetClientError(SOAPCLIENT_ERROR errorState) - { - m_errorState = errorState; - } - - IWriteStream * GetWriteStream() - { - return &m_writeStream; - } - - HRESULT GetReadStream(IStream **ppStream) - { - if (ppStream == NULL) - { - return E_POINTER; - } - - *ppStream = NULL; - HRESULT hr = E_FAIL; - - if (m_spHttpRequest) - { - VARIANT vResponseStream; - VariantInit(&vResponseStream); - hr = m_spHttpRequest->get_responseStream(&vResponseStream); - if (S_OK == hr) - { - hr = E_FAIL; - if ((vResponseStream.vt == VT_UNKNOWN) && (vResponseStream.punkVal != NULL)) - { - // we return the refcount with the pointer! - hr = vResponseStream.punkVal->QueryInterface(__uuidof(IStream), (void **)ppStream); - } - else - { - SetClientError(SOAPCLIENT_READ_ERROR); - } - } - VariantClear(&vResponseStream); - } - return hr; - } - - void CleanupClient() - { - m_writeStream.Cleanup(); - m_spHttpRequest.Release(); - m_fault.Clear(); - SetClientError(SOAPCLIENT_SUCCESS); - } - - HRESULT SendRequest(LPCTSTR szAction) - { - if (ConnectToServer() != S_OK) - { - SetClientError(SOAPCLIENT_CONNECT_ERROR); - return E_FAIL; - } - - // set the action header - LPCTSTR szColon = _tcschr(szAction, _T(':')); - if (szColon != NULL) - { - do - { - szColon++; - } while (_istspace(static_cast(*szColon))); - - if (FAILED(m_spHttpRequest->setRequestHeader( - CComBSTR( L"SOAPAction" ), CComBSTR( szColon )))) - { - SetClientError(SOAPCLIENT_SEND_ERROR); - return E_FAIL; - } - } // if SOAPAction header not properly formed, attempt to send anyway - - if (FAILED(m_spHttpRequest->setRequestHeader(CComBSTR( L"Content-Type" ), CComBSTR(L"text/xml; charset=utf-8")))) - { - SetClientError(SOAPCLIENT_SEND_ERROR); - return E_FAIL; - } - - // set timeout - if (m_dwTimeout != 0) - { - long nTimeout = (long) m_dwTimeout; - m_spHttpRequest->setTimeouts(nTimeout, nTimeout, nTimeout, nTimeout); - // reset timeout - m_dwTimeout = 0; - } - - CComVariant vBody(m_writeStream.m_str); - HRESULT hr = m_spHttpRequest->send(vBody); - if ((SUCCEEDED(hr)) && (GetStatusCode() == 500)) - { - hr = E_FAIL; - CComPtr spReader; - if (SUCCEEDED(GetClientReader(&spReader))) - { - SetClientError(SOAPCLIENT_SOAPFAULT); - - CComPtr spReadStream; - if (SUCCEEDED(GetReadStream(&spReadStream))) - { - if (FAILED(m_fault.ParseFault(spReadStream, spReader))) - { - SetClientError(SOAPCLIENT_PARSEFAULT_ERROR); - } - } - } - } - else if (FAILED(hr)) - { - SetClientError(SOAPCLIENT_SEND_ERROR); - } - - return hr; - } - - HRESULT SetUrl(LPCTSTR szUrl) - { - CleanupClient(); - return (m_url.CrackUrl(szUrl) != FALSE ? S_OK : E_FAIL); - } - - HRESULT GetUrl(LPTSTR szUrl, LPDWORD pdwLen) - { - if ((szUrl == NULL) || (pdwLen == NULL)) - { - return E_INVALIDARG; - } - - return (m_url.CreateUrl(szUrl, pdwLen) != FALSE) ? S_OK : E_FAIL; - } - - void SetTimeout(DWORD dwTimeout) - { - m_dwTimeout = dwTimeout; - } - - int GetStatusCode() - { - long lStatus; - if (m_spHttpRequest->get_status(&lStatus) == S_OK) - { - return (int) lStatus; - } - return 0; - } - - HRESULT SetProxy(LPCTSTR szProxy = NULL, short nProxyPort = 80) - { - (szProxy); - (nProxyPort); - - ATLTRACE( _T("CSoapMSXMLInetClient does not support SetProxy") ); - - return S_OK; - } -}; // CSoapMSXMLInetClient -#endif - - -class _CSDLGenerator : public ITagReplacerImpl<_CSDLGenerator> -{ -private: - - typedef CAtlMap > WSDLMAP; - typedef CAtlMap > HEADERMAP; - - HRESULT GenerateWSDLHelper(const _soapmap *pMap, WSDLMAP& structMap, WSDLMAP& enumMap) - { - ATLENSURE_RETURN( pMap != NULL ); - - const _soapmapentry *pEntries = pMap->pEntries; - ATLENSURE_RETURN( pEntries != NULL ); - - HRESULT hr = S_OK; - - for (int i=0; pEntries[i].nHash != 0; i++) - { - if (pEntries[i].nVal == SOAPTYPE_UNK) - { - ATLENSURE_RETURN( pEntries[i].pChain != NULL ); - - _ATLTRY - { - POSITION pos = NULL; - CStringA strName(pEntries[i].pChain->szName, pEntries[i].pChain->cchName); - if (pEntries[i].pChain->mapType == SOAPMAP_STRUCT) - { - pos = structMap.SetAt(strName, pEntries[i].pChain); - } - else if (pEntries[i].pChain->mapType == SOAPMAP_ENUM) - { - pos = enumMap.SetAt(strName, pEntries[i].pChain); - } - if (pos == NULL) - { - hr = E_OUTOFMEMORY; - break; - } - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - break; - } - - hr = GenerateWSDLHelper(pEntries[i].pChain, structMap, enumMap); - if (FAILED(hr)) - { - break; - } - } - } - - return hr; - } - - HTTP_CODE IsUDT(const _soapmapentry *pEntry) - { - ATLENSURE( pEntry != NULL ); - return (pEntry->nVal != SOAPTYPE_UNK) ? HTTP_S_FALSE : HTTP_SUCCESS; - } - - HTTP_CODE GetSoapDims(const _soapmapentry *pEntry) - { - ATLENSURE( pEntry != NULL ); - if (pEntry->pDims[0] != 0) - { - if (SUCCEEDED(m_pWriteStream->WriteStream("[", 1, NULL))) - { - for (int i=1; i<=pEntry->pDims[0]; i++) - { - if (m_writeHelper.Write(pEntry->pDims[i]) != FALSE) - { - if (i < pEntry->pDims[0]) - { - if (FAILED(m_pWriteStream->WriteStream(", ", 2, NULL))) - { - return HTTP_FAIL; - } - } - } - } - if (SUCCEEDED(m_pWriteStream->WriteStream("]", 1, NULL))) - { - return HTTP_SUCCESS; - } - } - } - return HTTP_FAIL; - } - - const _soapmap **m_pFuncs; - const _soapmap **m_pHeaders; - int m_nFunc; - int m_nParam; - int m_nHeader; - WSDLMAP m_structMap; - WSDLMAP m_enumMap; - POSITION m_currUDTPos; - int m_nCurrUDTField; - - HEADERMAP m_headerMap; - POSITION m_currHeaderPos; - - CWriteStreamHelper m_writeHelper; - - CStringA m_strServiceName; - CStringA m_strNamespaceUri; - - IWriteStream *m_pWriteStream; - - CComPtr m_spHttpServerContext; - - DWORD m_dwCallFlags; - -protected: - - void SetWriteStream(IWriteStream *pStream) - { - m_pWriteStream = pStream; - m_writeHelper.Attach(m_pWriteStream); - } - - void SetHttpServerContext(IHttpServerContext *pServerContext) - { - m_spHttpServerContext = pServerContext; - } - - static HTTP_CODE GetSoapType(int nVal, IWriteStream *pStream) - { - return (pStream->WriteStream(CSoapRootHandler::s_xsdNames[nVal].szName, - CSoapRootHandler::s_xsdNames[nVal].cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - - HRESULT InitializeSDL(CSoapRootHandler *pHdlr) - { - m_pFuncs = pHdlr->GetFunctionMap(); - - if (m_pFuncs == NULL) - { - return E_FAIL; - } - - ATLASSUME( m_pFuncs[0] != NULL ); - - m_dwCallFlags = m_pFuncs[0]->dwCallFlags; - - size_t i; - for (i=0; m_pFuncs[i] != NULL; i++) - { - const _soapmap *pMap = m_pFuncs[i]; - HRESULT hr = GenerateWSDLHelper(pMap, m_structMap, m_enumMap); - if (FAILED(hr)) - { - return hr; - } - } - - m_pHeaders = pHdlr->GetHeaderMap(); - if (m_pHeaders != NULL) - { - for (i=0; m_pHeaders[i] != NULL; i++) - { - const _soapmap *pMap = m_pHeaders[i]; - HRESULT hr = GenerateWSDLHelper(pMap, m_structMap, m_enumMap); - if (FAILED(hr)) - { - return hr; - } - } - - for (i=0; m_pHeaders[i] != NULL; i++) - { - const _soapmap *pMap = m_pHeaders[i]; - for (size_t j=0; pMap->pEntries[j].nHash != 0; j++) - { - HRESULT hr = S_OK; - _ATLTRY - { - if (m_headerMap.SetAt(pMap->pEntries[j].szField, &pMap->pEntries[j]) == NULL) - { - hr = E_OUTOFMEMORY; - } - } - _ATLCATCHALL() - { - hr = E_OUTOFMEMORY; - } - if (FAILED(hr)) - { - return hr; - } - } - } - } - - _ATLTRY - { - m_strServiceName = pHdlr->GetServiceName(); - m_strNamespaceUri = pHdlr->GetNamespaceUriA(); - } - _ATLCATCHALL() - { - return E_OUTOFMEMORY; - } - return S_OK; - } - - virtual const char * GetHandlerName() = 0; - -public: - - _CSDLGenerator() - :m_pFuncs(NULL), m_nFunc(-1), m_nParam(-1), - m_currUDTPos(NULL), m_nCurrUDTField(-1), - m_pWriteStream(NULL), m_nHeader(-1), m_currHeaderPos(NULL) - { - } - virtual ~_CSDLGenerator() - { - } - - HTTP_CODE OnGetURL() - { - char szURL[ATL_URL_MAX_URL_LENGTH]; - DWORD dwUrlSize = sizeof(szURL); - char szServer[ATL_URL_MAX_HOST_NAME_LENGTH]; - DWORD dwServerSize = sizeof(szServer); - char szHttps[16]; - DWORD dwHttpsLen = sizeof(szHttps); - char szPort[ATL_URL_MAX_PORT_NUMBER_LENGTH+1]; - DWORD dwPortLen = sizeof(szPort); - - if (m_spHttpServerContext->GetServerVariable("URL", szURL, &dwUrlSize) != FALSE) - { - if (m_spHttpServerContext->GetServerVariable("SERVER_NAME", szServer, &dwServerSize) != FALSE) - { - bool bHttps = false; - if ((m_spHttpServerContext->GetServerVariable("HTTPS", szHttps, &dwHttpsLen) != FALSE) && - (!_stricmp(szHttps, "ON"))) - { - bHttps = true; - } - - if (m_spHttpServerContext->GetServerVariable("SERVER_PORT", szPort, &dwPortLen) != FALSE) - { - _ATLTRY - { - CStringA strUrl; - strUrl.Format("http%s://%s:%s%s?Handler=%s", bHttps ? "s" : "", szServer, szPort, szURL, GetHandlerName()); - - CA2W wszUrl(strUrl); - wchar_t *pwszUrl = wszUrl; - HRESULT hr = AtlGenXMLValue(m_pWriteStream, &pwszUrl); - return SUCCEEDED(hr) ? HTTP_SUCCESS : HTTP_FAIL; - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } - } - } - return HTTP_FAIL; - } - - HTTP_CODE OnGetNamespace() - { - return (m_pWriteStream->WriteStream(m_strNamespaceUri, - m_strNamespaceUri.GetLength(), NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnGetNextFunction() - { - m_nFunc++; - if (m_pFuncs[m_nFunc] == NULL) - { - m_nFunc = -1; - return HTTP_S_FALSE; - } - return HTTP_SUCCESS; - } - - HTTP_CODE OnGetFunctionName() - { - return (m_pWriteStream->WriteStream(m_pFuncs[m_nFunc]->szName, - m_pFuncs[m_nFunc]->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetNextParameter() - { - ++m_nParam; - if (m_pFuncs[m_nFunc]->pEntries[m_nParam].nHash != 0) - { - if (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & SOAPFLAG_NOMARSHAL) - { - return OnGetNextParameter(); - } - return HTTP_SUCCESS; - } - m_nParam = -1; - return HTTP_S_FALSE; - } - - HTTP_CODE OnIsInParameter() - { - return (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & SOAPFLAG_IN) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetParameterName() - { - HRESULT hr = S_OK; - if (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & SOAPFLAG_RETVAL) - { - hr = m_pWriteStream->WriteStream("return", sizeof("return")-1, NULL); - } - else - { - hr = m_pWriteStream->WriteStream(m_pFuncs[m_nFunc]->pEntries[m_nParam].szField, - m_pFuncs[m_nFunc]->pEntries[m_nParam].cchField, NULL); - } - - return (hr == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnNotIsArrayParameter() - { - return (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) - ? HTTP_S_FALSE: HTTP_SUCCESS; - } - - HTTP_CODE OnIsParameterUDT() - { - return IsUDT(&m_pFuncs[m_nFunc]->pEntries[m_nParam]); - } - - HTTP_CODE OnGetParameterSoapType() - { - if (m_pFuncs[m_nFunc]->pEntries[m_nParam].nVal != SOAPTYPE_UNK) - { - return GetSoapType(m_pFuncs[m_nFunc]->pEntries[m_nParam].nVal, m_pWriteStream); - } - ATLASSUME( m_pFuncs[m_nFunc]->pEntries[m_nParam].pChain != NULL ); - return (m_pWriteStream->WriteStream(m_pFuncs[m_nFunc]->pEntries[m_nParam].pChain->szName, - m_pFuncs[m_nFunc]->pEntries[m_nParam].pChain->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsParameterDynamicArray() - { - return (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & SOAPFLAG_DYNARR) ? HTTP_SUCCESS: HTTP_S_FALSE; - } - - HTTP_CODE OnIsArrayParameter() - { - return (OnNotIsArrayParameter() != HTTP_SUCCESS) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsParameterOneDimensional() - { - return (m_pFuncs[m_nFunc]->pEntries[m_nParam].pDims[0] == 1) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetParameterArraySize() - { - return (m_writeHelper.Write(m_pFuncs[m_nFunc]->pEntries[m_nParam].pDims[1]) != FALSE) - ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnGetParameterArraySoapDims() - { - return GetSoapDims(&m_pFuncs[m_nFunc]->pEntries[m_nParam]); - } - - HTTP_CODE OnIsOutParameter() - { - return (m_pFuncs[m_nFunc]->pEntries[m_nParam].dwFlags & SOAPFLAG_OUT) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetNextEnum() - { - if (m_currUDTPos == NULL) - { - m_currUDTPos = m_enumMap.GetStartPosition(); - } - else - { - m_enumMap.GetNext(m_currUDTPos); - } - - return (m_currUDTPos != NULL) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetEnumName() - { - const _soapmap *pMap = m_enumMap.GetValueAt(m_currUDTPos); - return (m_pWriteStream->WriteStream(pMap->szName, pMap->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetNextEnumElement() - { - const _soapmap *pMap = m_enumMap.GetValueAt(m_currUDTPos); - ++m_nCurrUDTField; - if (pMap->pEntries[m_nCurrUDTField].nHash != 0) - { - return HTTP_SUCCESS; - } - m_nCurrUDTField = -1; - return HTTP_S_FALSE; - } - - HTTP_CODE OnGetEnumElementName() - { - const _soapmap *pMap = m_enumMap.GetValueAt(m_currUDTPos); - return (m_pWriteStream->WriteStream(pMap->pEntries[m_nCurrUDTField].szField, - pMap->pEntries[m_nCurrUDTField].cchField, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetNextStruct() - { - if (m_currUDTPos == NULL) - { - m_currUDTPos = m_structMap.GetStartPosition(); - } - else - { - m_structMap.GetNext(m_currUDTPos); - } - - return (m_currUDTPos != NULL) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetStructName() - { - const _soapmap *pMap = m_enumMap.GetValueAt(m_currUDTPos); - return (m_pWriteStream->WriteStream(pMap->szName, pMap->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetNextStructField() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - ++m_nCurrUDTField; - if (pMap->pEntries[m_nCurrUDTField].nHash != 0) - { - return HTTP_SUCCESS; - } - m_nCurrUDTField = -1; - return HTTP_S_FALSE; - } - - HTTP_CODE OnGetStructFieldName() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return (m_pWriteStream->WriteStream(pMap->pEntries[m_nCurrUDTField].szField, - pMap->pEntries[m_nCurrUDTField].cchField, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnNotIsArrayField() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return (pMap->pEntries[m_nCurrUDTField].dwFlags & (SOAPFLAG_FIXEDARR | SOAPFLAG_DYNARR)) ? HTTP_S_FALSE : HTTP_SUCCESS; - } - - HTTP_CODE OnIsFieldUDT() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return IsUDT(&pMap->pEntries[m_nCurrUDTField]); - } - - HTTP_CODE OnGetStructFieldSoapType() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - if (pMap->pEntries[m_nCurrUDTField].nVal != SOAPTYPE_UNK) - { - return GetSoapType(pMap->pEntries[m_nCurrUDTField].nVal, m_pWriteStream); - } - ATLASSERT( pMap->pEntries[m_nCurrUDTField].pChain != NULL ); - return (m_pWriteStream->WriteStream(pMap->pEntries[m_nCurrUDTField].pChain->szName, - pMap->pEntries[m_nCurrUDTField].pChain->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsArrayField() - { - return (OnNotIsArrayField() != HTTP_SUCCESS) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsFieldDynamicArray() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return (pMap->pEntries[m_nCurrUDTField].dwFlags & SOAPFLAG_DYNARR) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetFieldSizeIsName() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - int nIndex = pMap->pEntries[m_nCurrUDTField].nSizeIs; - ATLASSERT( nIndex >= 0 ); - return (m_pStream->WriteStream(pMap->pEntries[nIndex].szField, - pMap->pEntries[nIndex].cchField, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsFieldOneDimensional() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return (pMap->pEntries[m_nCurrUDTField].pDims[0] == 1) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetFieldArraySize() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return (m_writeHelper.Write(pMap->pEntries[m_nCurrUDTField].pDims[1]) != FALSE) ? - HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetFieldArraySoapDims() - { - const _soapmap *pMap = m_structMap.GetValueAt(m_currUDTPos); - return GetSoapDims(&pMap->pEntries[m_nCurrUDTField]); - } - - HTTP_CODE OnGetServiceName() - { - return (m_pWriteStream->WriteStream(m_strServiceName, - m_strServiceName.GetLength(), NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnGetNextHeader() - { - if (m_currHeaderPos == NULL) - { - m_currHeaderPos = m_headerMap.GetStartPosition(); - } - else - { - m_headerMap.GetNext(m_currHeaderPos); - } - - return (m_currHeaderPos != NULL) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsInHeader() - { - return (m_pHeaders[m_nFunc]->pEntries[m_nHeader].dwFlags & SOAPFLAG_IN) - ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsOutHeader() - { - return (m_pHeaders[m_nFunc]->pEntries[m_nHeader].dwFlags & SOAPFLAG_OUT) - ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsRequiredHeader() - { - return (m_pHeaders[m_nFunc]->pEntries[m_nHeader].dwFlags & SOAPFLAG_MUSTUNDERSTAND) - ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetHeaderName() - { - const _soapmapentry *pEntry = m_headerMap.GetValueAt(m_currHeaderPos); - return (m_pWriteStream->WriteStream(pEntry->szField, - pEntry->cchField, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnNotIsArrayHeader() - { - const _soapmapentry *pEntry = m_headerMap.GetValueAt(m_currHeaderPos); - return (pEntry->dwFlags & SOAPFLAG_FIXEDARR) ? HTTP_S_FALSE : HTTP_SUCCESS; - } - - HTTP_CODE OnIsHeaderUDT() - { - return IsUDT(m_headerMap.GetValueAt(m_currHeaderPos)); - } - - HTTP_CODE OnGetHeaderSoapType() - { - const _soapmapentry *pEntry = m_headerMap.GetValueAt(m_currHeaderPos); - if (pEntry->nVal != SOAPTYPE_UNK) - { - return GetSoapType(pEntry->nVal, m_pWriteStream); - } - ATLENSURE( pEntry->pChain != NULL ); - return (m_pWriteStream->WriteStream(pEntry->pChain->szName, - pEntry->pChain->cchName, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnIsHeaderOneDimensional() - { - const _soapmapentry *pEntry = m_headerMap.GetValueAt(m_currHeaderPos); - return (pEntry->pDims[0] == 1) ? HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetHeaderArraySize() - { - const _soapmapentry *pEntry = m_headerMap.GetValueAt(m_currHeaderPos); - return (m_writeHelper.Write(pEntry->pDims[1]) != FALSE) ? - HTTP_SUCCESS : HTTP_S_FALSE; - } - - HTTP_CODE OnGetHeaderArraySoapDims() - { - return GetSoapDims(m_headerMap.GetValueAt(m_currHeaderPos)); - } - - HTTP_CODE OnGetNextFunctionHeader() - { - ++m_nHeader; - if (m_pHeaders[m_nFunc]->pEntries[m_nHeader].nHash != 0) - { - if (m_pHeaders[m_nFunc]->pEntries[m_nHeader].dwFlags & SOAPFLAG_NOMARSHAL) - { - return OnGetNextHeader(); - } - return HTTP_SUCCESS; - } - m_nHeader = -1; - return HTTP_S_FALSE; - } - - HTTP_CODE OnGetFunctionHeaderName() - { - return (m_pWriteStream->WriteStream( - m_pHeaders[m_nFunc]->pEntries[m_nHeader].szField, - m_pHeaders[m_nFunc]->pEntries[m_nHeader].cchField, - NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE OnIsArrayHeader() - { - return (OnNotIsArrayHeader() == HTTP_SUCCESS) ? HTTP_S_FALSE : HTTP_SUCCESS; - } - - HTTP_CODE OnIsDocumentLiteral() - { - if ((m_dwCallFlags & (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL)) == - (SOAPFLAG_DOCUMENT | SOAPFLAG_LITERAL)) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; - } - - HTTP_CODE OnIsRpcEncoded() - { - if ((m_dwCallFlags & (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) == - (SOAPFLAG_RPC | SOAPFLAG_ENCODED)) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; - } - -#pragma warning (push) -#pragma warning (disable : 4640) // construction of local static object is not thread-safe - - BEGIN_REPLACEMENT_METHOD_MAP(_CSDLGenerator) - REPLACEMENT_METHOD_ENTRY("GetNamespace", OnGetNamespace) - REPLACEMENT_METHOD_ENTRY("GetNextFunction", OnGetNextFunction) - REPLACEMENT_METHOD_ENTRY("GetFunctionName", OnGetFunctionName) - REPLACEMENT_METHOD_ENTRY("GetNextParameter", OnGetNextParameter) - REPLACEMENT_METHOD_ENTRY("IsInParameter", OnIsInParameter) - REPLACEMENT_METHOD_ENTRY("GetParameterName", OnGetParameterName) - REPLACEMENT_METHOD_ENTRY("NotIsArrayParameter", OnNotIsArrayParameter) - REPLACEMENT_METHOD_ENTRY("IsParameterUDT", OnIsParameterUDT) - REPLACEMENT_METHOD_ENTRY("GetParameterSoapType", OnGetParameterSoapType) - REPLACEMENT_METHOD_ENTRY("IsParameterDynamicArray", OnIsParameterDynamicArray) - REPLACEMENT_METHOD_ENTRY("IsArrayParameter", OnIsArrayParameter) - REPLACEMENT_METHOD_ENTRY("IsParameterOneDimensional", OnIsParameterOneDimensional) - REPLACEMENT_METHOD_ENTRY("GetParameterArraySize", OnGetParameterArraySize) - REPLACEMENT_METHOD_ENTRY("GetParameterArraySoapDims", OnGetParameterArraySoapDims) - REPLACEMENT_METHOD_ENTRY("IsOutParameter", OnIsOutParameter) - REPLACEMENT_METHOD_ENTRY("GetNextEnum", OnGetNextEnum) - REPLACEMENT_METHOD_ENTRY("GetEnumName", OnGetEnumName) - REPLACEMENT_METHOD_ENTRY("GetNextEnumElement", OnGetNextEnumElement) - REPLACEMENT_METHOD_ENTRY("GetEnumElementName", OnGetEnumElementName) - REPLACEMENT_METHOD_ENTRY("GetNextStruct", OnGetNextStruct) - REPLACEMENT_METHOD_ENTRY("GetStructName", OnGetStructName) - REPLACEMENT_METHOD_ENTRY("GetNextStructField", OnGetNextStructField) - REPLACEMENT_METHOD_ENTRY("GetStructFieldName", OnGetStructFieldName) - REPLACEMENT_METHOD_ENTRY("NotIsArrayField", OnNotIsArrayField) - REPLACEMENT_METHOD_ENTRY("IsFieldUDT", OnIsFieldUDT) - REPLACEMENT_METHOD_ENTRY("GetStructFieldSoapType", OnGetStructFieldSoapType) - REPLACEMENT_METHOD_ENTRY("IsArrayField", OnIsArrayField) - REPLACEMENT_METHOD_ENTRY("IsFieldOneDimensional", OnIsFieldOneDimensional) - REPLACEMENT_METHOD_ENTRY("GetFieldArraySize", OnGetFieldArraySize) - REPLACEMENT_METHOD_ENTRY("GetFieldArraySoapDims", OnGetFieldArraySoapDims) - REPLACEMENT_METHOD_ENTRY("GetServiceName", OnGetServiceName) - REPLACEMENT_METHOD_ENTRY("GetURL", OnGetURL) - - REPLACEMENT_METHOD_ENTRY("GetNextHeader", OnGetNextHeader) - REPLACEMENT_METHOD_ENTRY("GetHeaderName", OnGetHeaderName) - REPLACEMENT_METHOD_ENTRY("NotIsArrayHeader", OnNotIsArrayHeader) - REPLACEMENT_METHOD_ENTRY("IsArrayHeader", OnIsArrayHeader) - REPLACEMENT_METHOD_ENTRY("IsHeaderUDT", OnIsHeaderUDT) - REPLACEMENT_METHOD_ENTRY("GetHeaderSoapType", OnGetHeaderSoapType) - REPLACEMENT_METHOD_ENTRY("IsHeaderOneDimensional", OnIsHeaderOneDimensional) - REPLACEMENT_METHOD_ENTRY("GetHeaderArraySize", OnGetHeaderArraySize) - REPLACEMENT_METHOD_ENTRY("GetHeaderArraySoapDims", OnGetHeaderArraySoapDims) - REPLACEMENT_METHOD_ENTRY("GetNextFunctionHeader", OnGetNextFunctionHeader) - REPLACEMENT_METHOD_ENTRY("GetFunctionHeaderName", OnGetFunctionHeaderName) - REPLACEMENT_METHOD_ENTRY("IsInHeader", OnIsInHeader) - REPLACEMENT_METHOD_ENTRY("IsOutHeader", OnIsOutHeader) - REPLACEMENT_METHOD_ENTRY("IsRequiredHeader", OnIsRequiredHeader) - - REPLACEMENT_METHOD_ENTRY("IsDocumentLiteral", OnIsDocumentLiteral) - REPLACEMENT_METHOD_ENTRY("IsRpcEncoded", OnIsRpcEncoded) - REPLACEMENT_METHOD_ENTRY("IsFieldDynamicArray", OnIsFieldDynamicArray) - REPLACEMENT_METHOD_ENTRY("GetFieldSizeIsName", OnGetFieldSizeIsName) - END_REPLACEMENT_METHOD_MAP() - -#pragma warning (pop) - -}; // class _CSDLGenerator - -template -class CSDLGenerator : - public _CSDLGenerator, - public IRequestHandlerImpl< CSDLGenerator >, - public CComObjectRootEx -{ -private: - -public: - typedef CSDLGenerator _sdlGenerator; - - BEGIN_COM_MAP(_sdlGenerator) - COM_INTERFACE_ENTRY(IRequestHandler) - COM_INTERFACE_ENTRY(ITagReplacer) - END_COM_MAP() - - HTTP_CODE InitializeHandler(AtlServerRequest *pRequestInfo, IServiceProvider *pServiceProvider) - { - IRequestHandlerImpl::InitializeHandler(pRequestInfo, pServiceProvider); - - CComObjectStack handler; - if (FAILED(InitializeSDL(&handler))) - { - return HTTP_FAIL; - } - - CStencil s; - HTTP_CODE hcErr = s.LoadFromString(s_szAtlsWSDLSrf, (DWORD) strlen(s_szAtlsWSDLSrf)); - if (hcErr == HTTP_SUCCESS) - { - hcErr = HTTP_FAIL; - CHttpResponse HttpResponse(pRequestInfo->pServerContext); - HttpResponse.SetContentType("text/xml"); - if (s.ParseReplacements(this) != false) - { - s.FinishParseReplacements(); - - SetStream(&HttpResponse); - SetWriteStream(&HttpResponse); - SetHttpServerContext(m_spServerContext); - - ATLASSERT( s.ParseSuccessful() != false ); - - hcErr = s.Render(this, &HttpResponse); - } - } - - return hcErr; - } - - const char * GetHandlerName() - { - return szHandlerName; - } -}; // class CSDLGenerator - -} // namespace ATL -#pragma pack(pop) - -#pragma warning(pop) - -#endif // __ATLSOAP_H__ diff --git a/ATL90/include/atlspriv.h b/ATL90/include/atlspriv.h deleted file mode 100644 index f278e47..0000000 --- a/ATL90/include/atlspriv.h +++ /dev/null @@ -1,1017 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSPRIV_H__ -#define __ATLSPRIV_H__ - -#pragma once -#include - -#ifndef _WINSOCK2API_ -#error Winsock2.h has to be included before including windows.h or use atlbase.h instead of windows.h -#endif - -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "ws2_32.lib") -#endif // !_ATL_NO_DEFAULT_LIBS - -#include -#include -#include -#include - -// ATL_SOCK_TIMEOUT defines the amount of time -// this socket will block the calling thread waiting -// for the socket before the call times out. -#ifndef ATL_SOCK_TIMEOUT - #define ATL_SOCK_TIMEOUT 10000 -#endif - -#define ATL_WINSOCK_VER MAKELONG(2,0) - -// This file contains unsupported code used in ATL implementation files. Most of -// this code is support code for various ATL Server functions. -#pragma pack(push,_ATL_PACKING) -namespace ATL{ - - // One of these objects can be created globally to turn -// on the socket stuff at CRT startup and shut it down -// on CRT term. -class _AtlWSAInit -{ -public: - _AtlWSAInit() throw() - { - m_dwErr = WSAEFAULT; - } - - bool Init() - { - if (!IsStarted()) - m_dwErr = WSAStartup(ATL_WINSOCK_VER, &m_stData); - - return m_dwErr == 0; - } - - bool IsStarted(){ return m_dwErr == 0; } - - ~_AtlWSAInit() throw() - { - if (!m_dwErr) - WSACleanup(); - } - - WSADATA m_stData; - DWORD m_dwErr; -}; - -#ifndef _ATL_NO_GLOBAL_SOCKET_STARTUP - __declspec(selectany)_AtlWSAInit g_HttpInit; -#endif - - -class ZEvtSyncSocket -{ -public: - ZEvtSyncSocket() throw(); - ~ZEvtSyncSocket() throw(); - operator SOCKET() throw(); - void Close() throw(); - void Term() throw(); - bool Create(const ADDRINFOT* pAI, WORD wFlags=0) throw(); - bool Create(int af, int st, int proto, WORD wFlags=0) throw(); - bool Connect(LPCTSTR szAddr, unsigned short nPort) throw(); - bool Connect(const SOCKADDR* psa, int len) throw(); - bool Connect(const ADDRINFOT *pAI) throw(); - bool Write(WSABUF *pBuffers, int nCount, DWORD *pdwSize) throw(); - bool Write(const unsigned char *pBuffIn, DWORD *pdwSize) throw(); - bool Read(const unsigned char *pBuff, DWORD *pdwSize) throw(); - bool Init(SOCKET hSocket, void * /*pData=NULL*/) throw(); - DWORD GetSocketTimeout() throw(); - DWORD SetSocketTimeout(DWORD dwNewTimeout) throw(); - bool SupportsScheme(ATL_URL_SCHEME scheme) throw(); - -protected: - DWORD m_dwCreateFlags; - WSAEVENT m_hEventRead; - WSAEVENT m_hEventWrite; - WSAEVENT m_hEventConnect; - - CComAutoCriticalSection m_csRead; - CComAutoCriticalSection m_csWrite; - SOCKET m_socket; - bool m_bConnected; - DWORD m_dwLastError; - DWORD m_dwSocketTimeout; -}; -inline bool _AtlIsHttpSpace(TCHAR c) -{ - return (c == 0x09 || - c == 0x0A || - c == 0x0D || - c == 0x20); -} - -// MIME helper functions - -extern __declspec(selectany) const DWORD ATL_MIME_DEFAULT_CP = 28591; - -// This function is used to create an CSMTPConnection-compatible recipient string -// from a recipient string that is in a CMimeMessage object. -inline BOOL AtlMimeMakeRecipientsString(_In_ LPCSTR szNames, _Out_z_cap_post_count_(*pdwLen, *pdwLen) LPSTR szRecipients, _Inout_ LPDWORD pdwLen) -{ - ATLENSURE(szNames != NULL); - ATLENSURE(szRecipients != NULL); - ATLENSURE(pdwLen != NULL); - - char ch; - DWORD dwLen = 0; - while ((ch = *szNames++) != '\0') - { - // Skip everything that is in double quotes - if (ch == '"') - { - while (*szNames && *szNames++ != '"'); - } - if (ch == '<') - { - // Extract the address from within the <> - while (*szNames && *szNames != '>') - { - if( dwLen >= *pdwLen ) - { - return FALSE; - } - *szRecipients++ = *szNames++; - dwLen++; - } - if( dwLen >= *pdwLen ) - { - return FALSE; - } - // End it with a comma - *szRecipients++ = ','; - dwLen++; - } - if (ch == '=') - { - // Skip any BEncoded or QEncoded parts - while (*szNames) - { - if (*szNames == '?' && *(szNames+1) == '=') - { - szNames+=2; - break; - } - szNames++; - } - } - szNames++; - } - if (dwLen != 0) - { - szRecipients--; - dwLen--; - } - *szRecipients = '\0'; - *pdwLen = dwLen; - - return TRUE; -} - -// AtlMimeCharsetFromCodePage, AtlMimeConvertString -// are MIME multilanguage support functions. - -// Get the MIME character set of the of the code page. The character set is copied -// into szCharset. - -#ifndef ATLSMTP_DEFAULT_CSET - #define ATLSMTP_DEFAULT_CSET "iso-8859-1" -#endif - -inline BOOL AtlMimeCharsetFromCodePage(_Out_z_cap_(cch) LPSTR szCharset, _In_ UINT uiCodePage, _In_opt_ IMultiLanguage* pMultiLanguage, _In_ size_t cch) throw() -{ - ATLASSERT(szCharset != NULL); - - if (!pMultiLanguage) - { - if ((uiCodePage == 0) || (uiCodePage == ATL_MIME_DEFAULT_CP)) - { - ATLASSERT(_countof(ATLSMTP_DEFAULT_CSET) <= cch); - Checked::strcpy_s(szCharset, cch, ATLSMTP_DEFAULT_CSET); - } - else - { - return FALSE; - } - } - else - { - if (uiCodePage == 0) - uiCodePage = GetACP(); - - HRESULT hr; - MIMECPINFO cpInfo; - memset(&cpInfo, 0x00, sizeof(cpInfo)); - -#ifdef __IMultiLanguage2_INTERFACE_DEFINED__ - - // if IMultiLanguage2 is available, use it - CComPtr spMultiLanguage2; - hr = pMultiLanguage->QueryInterface(__uuidof(IMultiLanguage2), (void **)&spMultiLanguage2); - if (FAILED(hr) || !spMultiLanguage2.p) - hr = pMultiLanguage->GetCodePageInfo(uiCodePage, &cpInfo); - else - hr = spMultiLanguage2->GetCodePageInfo(uiCodePage, - LANGIDFROMLCID(GetThreadLocale()), &cpInfo); - -#else // __IMultiLanguage2_INTERFACE_DEFINED__ - - hr = pMultiLanguage->GetCodePageInfo(uiCodePage, &cpInfo); - -#endif // __IMultiLanguage2_INTERFACE_DEFINED__ - - if (hr != S_OK) - return FALSE; - _ATLTRY - { - CW2A charSet(cpInfo.wszWebCharset); - if (strlen(charSet) >= cch) - return FALSE; - Checked::strcpy_s(szCharset, cch, charSet); - } - _ATLCATCHALL() - { - return FALSE; - } - } - - return TRUE; -} - -inline BOOL AtlMimeConvertStringW( - _In_ IMultiLanguage *pMultiLanguage, - _In_ UINT uiCodePage, - _In_ LPCWSTR wszIn, - _Out_z_cap_post_count_(*pnLen, *pnLen) LPSTR *ppszOut, - _Inout_ UINT *pnLen) throw() -{ - ATLENSURE_RETURN_VAL( pMultiLanguage != NULL, FALSE ); - ATLENSURE_RETURN_VAL( wszIn != NULL, FALSE ); - ATLENSURE_RETURN_VAL( ppszOut != NULL, FALSE ); - ATLENSURE_RETURN_VAL( pnLen != NULL, FALSE ); - - *ppszOut = NULL; - *pnLen = 0; - - if (uiCodePage == 0) - { - uiCodePage = GetACP(); - } - - DWORD dwMode = 0; - CHeapPtr pszOut; - - // get the length - HRESULT hr = pMultiLanguage->ConvertStringFromUnicode(&dwMode, uiCodePage, const_cast(wszIn), NULL, NULL, pnLen); - if (SUCCEEDED(hr)) - { - // allocate the buffer - if (pszOut.Allocate(*pnLen)) - { - dwMode = 0; - // do the conversion - hr = pMultiLanguage->ConvertStringFromUnicode(&dwMode, uiCodePage, const_cast(wszIn), NULL, pszOut, pnLen); - if (SUCCEEDED(hr)) - { - *ppszOut = pszOut.Detach(); - return TRUE; - } - } - } - - return FALSE; -} - -inline BOOL AtlMimeConvertStringA( - _In_ IMultiLanguage *pMultiLanguage, - _In_ UINT uiCodePage, - _In_ LPCSTR szIn, - _Out_z_cap_post_count_(*pnLen, *pnLen) LPSTR *ppszOut, - _Inout_ UINT *pnLen) throw() -{ - _ATLTRY - { - return AtlMimeConvertStringW(pMultiLanguage, uiCodePage, CA2W(szIn), ppszOut, pnLen); - } - _ATLCATCHALL() - { - return FALSE; - } -} - -#ifdef _UNICODE - #define AtlMimeConvertString AtlMimeConvertStringW -#else - #define AtlMimeConvertString AtlMimeConvertStringA -#endif - -class CStreamOnSequentialStream : - public IStream -{ - CComPtr m_spStream; -public: - CStreamOnSequentialStream(ISequentialStream *pStream) throw() - { - ATLASSERT(pStream); - m_spStream = pStream; - } - virtual ~CStreamOnSequentialStream() - { - } - - STDMETHOD(Read)(void *pv, ULONG cb, ULONG *pcbRead) throw() - { - if (!m_spStream) - return E_UNEXPECTED; - return m_spStream->Read(pv, cb, pcbRead); - } - - STDMETHOD(Write)(const void *pv, ULONG cb, ULONG *pcbWritten) throw() - { - if (!m_spStream) - return E_UNEXPECTED; - return m_spStream->Write(pv, cb, pcbWritten); - } - - STDMETHOD(Seek)(LARGE_INTEGER , DWORD , ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(SetSize)(ULARGE_INTEGER ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(CopyTo)(IStream *, ULARGE_INTEGER , ULARGE_INTEGER *, - ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Commit)(DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Revert)( void) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(LockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(UnlockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , - DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Stat)(STATSTG *, DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Clone)(IStream **) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(QueryInterface)(REFIID iid, void **ppUnk) throw() - { - *ppUnk = NULL; - if (::InlineIsEqualGUID(iid, IID_IUnknown) || - ::InlineIsEqualGUID(iid, IID_ISequentialStream) || - ::InlineIsEqualGUID(iid, IID_IStream)) - { - *ppUnk = (void*)(IStream*)this; - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef( void) throw() - { - return (ULONG)1; - } - - ULONG STDMETHODCALLTYPE Release( void) throw() - { - return (ULONG)1; - } -}; - -class CStreamOnByteArray : - public IStream -{ -public: - BYTE *m_pArray; - DWORD m_dwRead; - - CStreamOnByteArray(BYTE *pBytes) throw() - { - ATLASSERT(pBytes); - m_pArray = pBytes; - m_dwRead = 0; - } - - STDMETHOD(Read)(void *pv, ULONG cb, ULONG *pcbRead) throw() - { - if (!pv) - return E_INVALIDARG; - - if (cb == 0) - return S_OK; - - if (!m_pArray) - return E_UNEXPECTED; - - BYTE *pCurr = m_pArray; - pCurr += m_dwRead; - Checked::memcpy_s(pv, cb, pCurr, cb); - if (pcbRead) - *pcbRead = cb; - m_dwRead += cb; - return S_OK; - } - - STDMETHOD(Write)(const void* , ULONG , ULONG* ) throw() - { - return E_UNEXPECTED; - } - - STDMETHOD(Seek)(LARGE_INTEGER , DWORD , ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(SetSize)(ULARGE_INTEGER ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(CopyTo)(IStream *, ULARGE_INTEGER , ULARGE_INTEGER *, - ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Commit)(DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Revert)( void) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(LockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(UnlockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , - DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Stat)(STATSTG *, DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Clone)(IStream **) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(QueryInterface)(REFIID iid, void **ppUnk) throw() - { - *ppUnk = NULL; - if (::InlineIsEqualGUID(iid, IID_IUnknown) || - ::InlineIsEqualGUID(iid, IID_ISequentialStream) || - ::InlineIsEqualGUID(iid, IID_IStream)) - { - *ppUnk = (void*)(IStream*)this; - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef( void) throw() - { - return (ULONG)1; - } - - ULONG STDMETHODCALLTYPE Release( void) throw() - { - return (ULONG)1; - } -}; - -class CVariantStream : - public IStream -{ -public: - CVariantStream() throw() - { - m_nCurrRead = 0; - m_nVariantSize = 0; - m_nRef = 1; - } - virtual ~CVariantStream() - { - } - - // input variant is put into contained BYTE array. - HRESULT InsertVariant(const VARIANT *pVarIn) throw() - { - CComVariant vIn; - HRESULT hr = E_FAIL; - m_nCurrRead = 0; - m_nVariantSize = 0; - hr = vIn.Attach(const_cast(pVarIn)); - if (hr == S_OK) - { - hr = vIn.WriteToStream(static_cast(this)); - vIn.Detach(const_cast(pVarIn)); - } - return hr; - } - - // variant is read from contained byte array into - // out variant. - HRESULT RetrieveVariant(VARIANT *pVarOut) throw() - { - CComVariant vOut; - HRESULT hr = vOut.ReadFromStream(static_cast(this)); - if (hr == S_OK) - hr = vOut.Detach(pVarOut); - - m_nCurrRead = 0; - return hr; - } - - HRESULT LoadFromStream(ISequentialStream *stream) throw() - { - m_nCurrRead = 0; - CStreamOnSequentialStream stm(stream); - CComVariant v; - HRESULT hr = v.ReadFromStream(&stm); - if (hr == S_OK) - hr = v.WriteToStream(static_cast(this)); - return hr; - } - - ISequentialStream* GetStream() throw() - { - return static_cast(this); - } - - size_t GetVariantSize() throw() - { - return m_nVariantSize; - } - -// Implementation - // IStream implementation; - STDMETHOD(Read)(void *pv, ULONG cb, ULONG *pcbRead) throw() - { - if (!pv) - return E_INVALIDARG; - - if (cb == 0) - return S_OK; - - if (pcbRead) - *pcbRead = 0; - - if (!m_nVariantSize) - return S_OK; // nothing to do. - - size_t nLeft = m_nVariantSize - m_nCurrRead; - if (nLeft > 0) - { - size_t nRead = __min(nLeft, cb); - BYTE *pCurr = m_stream; - pCurr += m_nCurrRead; - Checked::memcpy_s(pv, cb, pCurr, nRead); - m_nCurrRead += nRead; - if (pcbRead) - *pcbRead = (ULONG)nRead; - } - - return S_OK; - } - - STDMETHOD(Write)(const void *pv, ULONG cb, ULONG *pcbWritten) throw() - { - HRESULT hr = E_OUTOFMEMORY; - if (!pv) - return E_INVALIDARG; - - if (cb == 0) - return S_OK; - - if (pcbWritten) - *pcbWritten = 0; - - ULONG newsz = cb + (ULONG)m_nVariantSize; - if (newsz < cb || newsz < m_nVariantSize) - { - return E_OUTOFMEMORY; - } - BYTE *pBytes = NULL; - ATLTRY(pBytes = m_stream.Reallocate(newsz)); - if (pBytes) - { - pBytes += m_nVariantSize; - Checked::memcpy_s(pBytes, cb, pv, cb); - if (pcbWritten) - *pcbWritten = cb; - m_nVariantSize += cb; - hr = S_OK; - } - return hr; - } - - STDMETHOD(Seek)(LARGE_INTEGER , DWORD , ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(SetSize)(ULARGE_INTEGER ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(CopyTo)(IStream *, ULARGE_INTEGER , ULARGE_INTEGER *, - ULARGE_INTEGER *) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Commit)(DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Revert)( void) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(LockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(UnlockRegion)(ULARGE_INTEGER , ULARGE_INTEGER , - DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Stat)(STATSTG *, DWORD ) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(Clone)(IStream **) throw() - { - return E_NOTIMPL; - } - - STDMETHOD(QueryInterface)(REFIID iid, void **ppUnk) throw() - { - *ppUnk = NULL; - if (::InlineIsEqualGUID(iid, IID_IUnknown)) - { - *ppUnk = (void*)(IUnknown*)this; - } - else if (::InlineIsEqualGUID(iid, IID_ISequentialStream)) - { - *ppUnk = (void*)(ISequentialStream*)this; - } - else if (::InlineIsEqualGUID(iid, IID_IStream)) - { - *ppUnk = (void*)(IStream*)this; - } - - if (*ppUnk) - { - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef( void) throw() - { - return (ULONG)1; - } - - ULONG STDMETHODCALLTYPE Release( void) throw() - { - return (ULONG)1; - } - - CTempBuffer m_stream; - size_t m_nVariantSize; - size_t m_nCurrRead; - long m_nRef; -}; - -// given a nCurrent and a pointer to a value representing the -// maximum value that has been seen in nCurrent, -// will update pnMax if nCurrent is greater -inline void AtlInterlockedUpdateMax(long nCurrent, long* pnMax) -{ - ATLENSURE(pnMax != NULL); - - long nMax; - long nOrigMax; - - do - { - nMax = *pnMax; - nOrigMax = 0; - if (nCurrent > nMax) - nOrigMax = InterlockedCompareExchange(pnMax, nCurrent, nMax); - } - while (nOrigMax != 0 && nOrigMax != nMax); -} - -// wrapper around InterlockedExchangeAdd -inline LONG AtlInterlockedExchangeAdd(_Inout_ long volatile* pAddend, _In_ long nValue) -{ -#if defined(_WIN64) && defined(_M_CEE) - - // We use System::Threading::Interlocked::Add because InterlockedExchangeAdd is an intrisinc not supported in managed code with 64bits compilers. - // System::Threading::Interlocked::Add returns the value after the addition, but we maintain the same semantics as InterlockedExchangeAdd. - _STATIC_ASSERT(sizeof(int) == sizeof(long)); - return (System::Threading::Interlocked::Add(*((int*)pAddend), nValue) - nValue); - -#else - - return InterlockedExchangeAdd(pAddend, nValue); - -#endif -} - -// SOAP helpers -#define _ATLSOAP_DECLARE_WSDL_SRF() \ -__if_not_exists(s_szAtlsWSDLSrf) \ -{ \ -extern __declspec(selectany) const char * const s_szAtlsWSDLSrf = \ -"\r\n" \ -"\r\n" \ -"\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -"{{while GetNextFunction}}\r\n" \ -"{{while GetNextParameter}}\r\n" \ -"{{if IsArrayParameter}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{endif}}\r\n" \ -"{{while GetNextHeader}}\r\n" \ -"{{if IsHeaderUDT}}\r\n" \ -"{{else}}\r\n" \ -"{{if IsArrayHeader}}\r\n" \ -"{{else}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endif}}\r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -"{{if IsArrayHeader}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{if IsDocumentLiteral}}\r\n" \ -"{{while GetNextFunction}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextParameter}}\r\n" \ -"{{if IsInParameter}}\r\n" \ -" \r\n" \ -"{{if IsArrayParameter}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextParameter}}\r\n" \ -"{{if IsOutParameter}}\r\n" \ -" \r\n" \ -"{{if IsArrayParameter}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -"{{endif}}\r\n" \ -"{{while GetNextEnum}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextEnumElement}}\r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -"{{while GetNextStruct}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextStructField}}\r\n" \ -" \r\n" \ -"{{if IsArrayField}}\r\n" \ -" \r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{else}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -"{{if IsDocumentLiteral}}\r\n" \ -"{{while GetNextHeader}}\r\n" \ -" \r\n" \ -"{{if IsArrayHeader}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{endif}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextFunction}}\r\n" \ -" \r\n" \ -"{{if IsDocumentLiteral}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -"{{while GetNextParameter}}\r\n" \ -"{{if IsInParameter}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{endif}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{if IsDocumentLiteral}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -"{{while GetNextParameter}}\r\n" \ -"{{if IsOutParameter}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -"{{endif}}\r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -"{{while GetNextHeader}}\r\n" \ -" \r\n" \ -"{{if IsDocumentLiteral}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{if IsRpcEncoded}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -"{{while GetNextFunction}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextFunction}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextFunctionHeader}}\r\n" \ -"{{if IsInHeader}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -"{{while GetNextFunctionHeader}}\r\n" \ -"{{if IsOutHeader}}\r\n" \ -" \r\n" \ -"{{endif}}\r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -"{{endwhile}}\r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -" \r\n" \ -""; \ -} - -#include -}; // namespace ATL -#pragma pack(pop) - -#endif // __ATLSPRIV_H__ diff --git a/ATL90/include/atlspriv.inl b/ATL90/include/atlspriv.inl deleted file mode 100644 index 9693d33..0000000 --- a/ATL90/include/atlspriv.inl +++ /dev/null @@ -1,361 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -///////////////////////////////////////////////////////////////////////////////// -// -// ZEvtSyncSocket -// ************ This is an implementation only class ************ -// Class ZEvtSyncSocket is a non-supported, implementation only -// class used by the ATL HTTP client class CAtlHttpClient. Do not -// use this class in your code. Use of this class is not supported by Microsoft. -// -///////////////////////////////////////////////////////////////////////////////// - -#ifndef __ATLSPRIV_INL__ -#define __ATLSPRIV_INL__ - -#pragma once - -#pragma warning(push) -#pragma warning(disable:4312) - -inline ZEvtSyncSocket::ZEvtSyncSocket() -{ - m_dwCreateFlags = WSA_FLAG_OVERLAPPED; - m_hEventRead = m_hEventWrite = m_hEventConnect = NULL; - m_socket = INVALID_SOCKET; - m_bConnected = false; - m_dwLastError = 0; - m_dwSocketTimeout = ATL_SOCK_TIMEOUT; - g_HttpInit.Init(); -} - -inline ZEvtSyncSocket::~ZEvtSyncSocket() -{ - Close(); -} - -inline ZEvtSyncSocket::operator SOCKET() -{ - return m_socket; -} - -inline void ZEvtSyncSocket::Close() -{ - if (m_socket != INVALID_SOCKET) - { - m_bConnected = false; - closesocket(m_socket); - m_socket = INVALID_SOCKET; - Term(); - } -} - -inline void ZEvtSyncSocket::Term() -{ - if (m_hEventRead) - { - WSACloseEvent(m_hEventRead); - m_hEventRead = NULL; - } - if (m_hEventWrite) - { - WSACloseEvent(m_hEventWrite); - m_hEventWrite = NULL; - } - if (m_hEventConnect) - { - WSACloseEvent(m_hEventConnect); - m_hEventConnect = NULL; - } - m_socket = INVALID_SOCKET; -} - -inline bool ZEvtSyncSocket::Create(const ADDRINFOT* pAI, WORD wFlags) -{ - return Create(pAI->ai_family, pAI->ai_socktype, pAI->ai_protocol, wFlags); -} - -inline bool ZEvtSyncSocket::Create(int af, int st, int proto, WORD wFlags) -{ - bool bRet = true; - if (m_socket != INVALID_SOCKET) - { - m_dwLastError = WSAEALREADY; - return false; // Must close this socket first - } - - m_socket = WSASocket(af, st, proto, NULL, 0, - wFlags | m_dwCreateFlags); - if (m_socket == INVALID_SOCKET) - { - m_dwLastError = ::WSAGetLastError(); - bRet = false; - } - else - bRet = Init(m_socket, NULL); - return bRet; -} - -inline bool ZEvtSyncSocket::Connect(LPCTSTR szAddr, unsigned short nPort) throw() -{ - if (m_bConnected) - return true; - - bool bRet = true; - CSocketAddr address; - // Find address information - if ((m_dwLastError = address.FindAddr(szAddr, nPort, 0, PF_UNSPEC, SOCK_STREAM, 0)) != ERROR_SUCCESS) - { - bRet = false; - } - else - { - bRet = Connect(address.GetAddrInfo()); - } - return bRet; -} - -inline bool ZEvtSyncSocket::Connect(const ADDRINFOT *pAI) -{ - if (m_socket == INVALID_SOCKET && !Create(pAI)) - return false; - - return Connect((SOCKADDR*)pAI->ai_addr, (int)pAI->ai_addrlen); -} - -inline bool ZEvtSyncSocket::Connect(const SOCKADDR* psa, int len) -{ - if (m_bConnected) - return true; // already connected - - DWORD dwLastError; - bool bRet = true; - - // if you try to connect the socket without - // creating it first it's reasonable to automatically - // try the create for you. - if (m_socket == INVALID_SOCKET) - return false; - - if (WSAConnect(m_socket, - psa, len, - NULL, NULL, NULL, NULL)) - { - dwLastError = WSAGetLastError(); - if (dwLastError != WSAEWOULDBLOCK) - { - m_dwLastError = dwLastError; - bRet = false; - } - else - { - dwLastError = WaitForSingleObject((HANDLE)m_hEventConnect, m_dwSocketTimeout); - if (dwLastError == WAIT_OBJECT_0) - { - // make sure there were no connection errors. - WSANETWORKEVENTS wse; - ZeroMemory(&wse, sizeof(wse)); - WSAEnumNetworkEvents(m_socket, NULL, &wse); - if (wse.iErrorCode[FD_CONNECT_BIT]!=0) - { - m_dwLastError = (DWORD)(wse.iErrorCode[FD_CONNECT_BIT]); - bRet = false; - } - } - else - bRet = false; - } - - } - - m_bConnected = bRet; - return bRet; -} - -inline bool ZEvtSyncSocket::Write(WSABUF *pBuffers, int nCount, DWORD *pdwSize) -{ - // if we aren't already connected we'll wait to see if the connect - // event happens - if (WAIT_OBJECT_0 != WaitForSingleObject((HANDLE)m_hEventConnect , m_dwSocketTimeout)) - { - m_dwLastError = WSAENOTCONN; - return false; // not connected - } - - // make sure we aren't already writing - if (WAIT_TIMEOUT == WaitForSingleObject((HANDLE)m_hEventWrite, 0)) - { - m_dwLastError = WSAEINPROGRESS; - return false; // another write on is blocking this socket - } - - bool bRet = true; - *pdwSize = 0; - WSAOVERLAPPED o; - m_csWrite.Lock(); - o.hEvent = m_hEventWrite; - WSAResetEvent(o.hEvent); - if (WSASend(m_socket, pBuffers, nCount, pdwSize, 0, &o, 0)) - { - DWORD dwLastError = WSAGetLastError(); - if (dwLastError != WSA_IO_PENDING) - { - m_dwLastError = dwLastError; - bRet = false; - } - } - - // wait for write to complete - if (bRet) - { - if (WaitForSingleObject((HANDLE)m_hEventWrite, m_dwSocketTimeout) == WAIT_OBJECT_0) - { - DWORD dwFlags = 0; - if (WSAGetOverlappedResult(m_socket, &o, pdwSize, FALSE, &dwFlags)) - bRet = true; - else - { - m_dwLastError = ::GetLastError(); - bRet = false; - } - } - else - bRet = false; - } - - m_csWrite.Unlock(); - return bRet; -} - -inline bool ZEvtSyncSocket::Write(const unsigned char *pBuffIn, DWORD *pdwSize) -{ - WSABUF buff; - buff.buf = (char*)pBuffIn; - buff.len = *pdwSize; - return Write(&buff, 1, pdwSize); -} - -inline bool ZEvtSyncSocket::Read(const unsigned char *pBuff, DWORD *pdwSize) -{ - // if we aren't already connected we'll wait to see if the connect - // event happens - if (WAIT_OBJECT_0 != WaitForSingleObject((HANDLE)m_hEventConnect , m_dwSocketTimeout)) - { - m_dwLastError = WSAENOTCONN; - return false; // not connected - } - - if (WAIT_ABANDONED == WaitForSingleObject((HANDLE)m_hEventRead, 0)) - { - m_dwLastError = WSAEINPROGRESS; - return false; // another write on is blocking this socket - } - - bool bRet = true; - WSABUF buff; - buff.buf = (char*)pBuff; - buff.len = *pdwSize; - *pdwSize = 0; - DWORD dwFlags = 0; - WSAOVERLAPPED o; - ZeroMemory(&o, sizeof(o)); - - // protect against re-entrency - m_csRead.Lock(); - o.hEvent = m_hEventRead; - WSAResetEvent(o.hEvent); - if (WSARecv(m_socket, &buff, 1, pdwSize, &dwFlags, &o, 0)) - { - DWORD dwLastError = WSAGetLastError(); - if (dwLastError != WSA_IO_PENDING) - { - m_dwLastError = dwLastError; - bRet = false; - } - } - - // wait for the read to complete - if (bRet) - { - if (WAIT_OBJECT_0 == WaitForSingleObject((HANDLE)o.hEvent, m_dwSocketTimeout)) - { - dwFlags = 0; - if (WSAGetOverlappedResult(m_socket, &o, pdwSize, FALSE, &dwFlags)) - bRet = true; - else - { - m_dwLastError = ::GetLastError(); - bRet = false; - } - } - else - bRet = false; - } - - m_csRead.Unlock(); - return bRet; -} - -inline bool ZEvtSyncSocket::Init(SOCKET hSocket, void * /*pData=NULL*/) -{ - ATLASSERT(hSocket != INVALID_SOCKET); - - if (hSocket == INVALID_SOCKET) - { - m_dwLastError = WSAENOTSOCK; - return false; - } - - m_socket = hSocket; - - // Allocate Events. On error, any open event handles will be closed - // in the destructor - if (NULL != (m_hEventRead = WSACreateEvent())) - if (NULL != (m_hEventWrite = WSACreateEvent())) - if (NULL != (m_hEventConnect = WSACreateEvent())) - { - if (!WSASetEvent(m_hEventWrite) || !WSASetEvent(m_hEventRead)) - { - m_dwLastError = ::GetLastError(); - return false; - } - - if (SOCKET_ERROR != WSAEventSelect(m_socket, m_hEventRead, FD_READ)) - if (SOCKET_ERROR != WSAEventSelect(m_socket, m_hEventWrite, FD_WRITE)) - if (SOCKET_ERROR != WSAEventSelect(m_socket, m_hEventConnect, FD_CONNECT)) - return true; - } - m_dwLastError = ::GetLastError(); - return false; -} - -inline DWORD ZEvtSyncSocket::GetSocketTimeout() throw() -{ - return m_dwSocketTimeout; -} - -inline DWORD ZEvtSyncSocket::SetSocketTimeout(DWORD dwNewTimeout) throw() -{ - DWORD dwOldTimeout = m_dwSocketTimeout; - m_dwSocketTimeout = dwNewTimeout; - return dwOldTimeout; -} - -inline bool ZEvtSyncSocket::SupportsScheme(ATL_URL_SCHEME scheme) throw() -{ - // default only supports HTTP - return scheme == ATL_URL_SCHEME_HTTP ? true : false; -} - - -#pragma warning(pop) - -#endif // __ATLSPRIV_INL__ diff --git a/ATL90/include/atlsrv.rc b/ATL90/include/atlsrv.rc deleted file mode 100644 index a9d6b93..0000000 --- a/ATL90/include/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "Bad RequestBad Request" - IDS_ATLSRV_AUTH_REQUIRED - "Authorization RequiredAuthorization is required" - IDS_ATLSRV_FORBIDDEN "ForbiddenForbidden" - IDS_ATLSRV_NOT_FOUND "Not FoundNot Found" - IDS_ATLSRV_SERVER_ERROR "Server ErrorServer Error" - IDS_ATLSRV_NOT_IMPLEMENTED - "Not ImplementedNot Implemented" - IDS_ATLSRV_BAD_GATEWAY "Bad GatewayBad Gateway" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "Service Not AvailableService Not Available" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Server Error

Server Error

SRF file could not be loaded." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "Server Error

Server Error

The requested SRF file was loaded but could not be successfully processed." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "Server Error

Server Error

A Windows system object could not be created." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "Server Error

Server Error

A File read operation failed." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Server Error

Server Error

The specified file could not be opened." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "Server Error

Server Error

LoadLibrary failed." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "Server Error

Server Error

Failed to retrieve the request handler interface." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "Server Error

Server Error

Server is out of memory." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "Server Error

Server Error

The server encountered an unexpected error." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "Server Error

Server Error

The server encountered an unexpected error while trying to parse the requested stencil." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "Server Error

Server Error

The server failed to load the requested stencil. The stencil file may be damaged or missing on this web server." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "Server Error

Server Error

One of the handlers named in a handler tag for the requested stencil could not be found in the specified handler .dll." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "Server Error

Server Error

This stencil contains a handler tag that could not be properly parsed by the stencil processor or does not contain a handler tag at all. Check the requested stencil for proper stencil syntax." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "Server Error

Server Error

The requested stencil does not contain a handler tag." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "Server Error

Server Error

A replacement tag was encountered in the requested stencil that had a replacement name that was too long. The maximum length of the replacment name must be less than or equal to the ATL_MAX_METHOD_NAME constant defined in atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "Server Error

Server Error

A replacement tag that uses the id.tagname syntax was encountered in the requested stencil that had a handler name that was too long. The maximum length of the handler name must be less than or equal to the ATL_MAX_METHOD_NAME constant defined in atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Server Error

Server Error

An attempt to impersonate the client making the request failed." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "Server Error

Server Error

The ISAPI extension used to service this request failed to load correctly due to an unknown error." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "Request heap creation failed" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "Worker Thread initialization failed" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "Critical section initialization failed" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Thread pool initialization failed" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL cache initialization failed" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Page cache initialization failed" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Stencil cache initialization failed" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "Session state service initialization failed" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blob cache initialization failed" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "File cache initialization failed" - - IDS_PERFMON_CACHE "ATL Server:Cache" - IDS_PERFMON_CACHE_HELP "Information about the ATL Server cache" - IDS_PERFMON_HITCOUNT "Cache Hit Count" - IDS_PERFMON_HITCOUNT_HELP "Number of cache hits" - IDS_PERFMON_MISSCOUNT "Cache Miss Count" - IDS_PERFMON_MISSCOUNT_HELP "Number of cache misses" - IDS_PERFMON_CURRENTALLOCATIONS "Cache Current Allocations" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "Current Memory allocated for cache" - IDS_PERFMON_MAXALLOCATIONS "Cache Max Allocations" - IDS_PERFMON_MAXALLOCATIONS_HELP "Maximum memory allocated for cache" - IDS_PERFMON_CURRENTENTRIES "Cache Current Entries" - IDS_PERFMON_CURRENTENTRIES_HELP "Current number of cache entries" - IDS_PERFMON_MAXENTRIES "Cache Max Entries" - IDS_PERFMON_MAXENTRIES_HELP "Maximum number of cache entries" - IDS_PERFMON_HITCOUNTRATE "Cache Hit Count Rate" - IDS_PERFMON_HITCOUNTRATE_HELP "Number of hit counts per second" - IDS_PERFMON_REQUEST "ATL Server:Request" - IDS_PERFMON_REQUEST_HELP "Statistics about the requests coming into the server" - IDS_PERFMON_REQUEST_TOTAL "Server Total Requests" - IDS_PERFMON_REQUEST_TOTAL_HELP "The total number of requests" - IDS_PERFMON_REQUEST_FAILED "Server Failed Requests" - IDS_PERFMON_REQUEST_FAILED_HELP "The number of failed requests" - IDS_PERFMON_REQUEST_RATE "Server Requests /sec" - IDS_PERFMON_REQUEST_RATE_HELP "Number of requests per second" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Average Response Time" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "Average time spent handling a request" - IDS_PERFMON_REQUEST_CURR_WAITING "Current Queued Requests" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Current number of requests waiting to be handled" - IDS_PERFMON_REQUEST_MAX_WAITING "Maximum Queued Requests" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "Maximum number of requests waiting to be handled" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "Active Threads" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "The number of threads actively handling requests" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

While trying to parse a stencil file, the following errors occurred:

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
Error type{{GetErrorText}}
Line number{{GetErrorLineNumber}}
Error text
{{GetErrorLine}}
\r\n{{endwhile}}
Stencil output follows:\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} without {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} without {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} without {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} without {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} without {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} without {{if}} or {{else}}" - - IDS_STENCIL_INVALID_HANDLER "Invalid handler tag" - IDS_STENCIL_NULLPARAM "NULL parameter to ParseReplacements" - IDS_STENCIL_INVALIDSTRING "Empty or negative string passed to ParseReplacements" - IDS_STENCIL_EMBEDDED_NULL "Embedded null character in stencil" - IDS_STENCIL_UNMATCHED_TAG_START "Unmatched {{" - IDS_STENCIL_MISMATCHED_TAG_START "Mismatched {{" - IDS_STENCIL_BAD_PARAMETER "Bad parameter" - IDS_STENCIL_METHODNAME_TOO_LONG "Method name too long" - IDS_STENCIL_HANDLERNAME_TOO_LONG "Handler name too long" - IDS_STENCIL_INVALID_SUBHANDLER "Invalid subhandler tag" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "Unresolved replacement : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "Could not open included file" - IDS_STENCIL_INCLUDE_INVALID "Included file is not a disk file" - - IDS_STENCIL_MLANG_COCREATE "Couldn't create CMultiLanguage" - IDS_STENCIL_MLANG_LCID "Error getting lcid" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo failed" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo failed" - - IDS_STENCIL_OUTOFMEMORY "Out of memory" - IDS_STENCIL_UNEXPECTED "Unexpected error" -END - -#endif diff --git a/ATL90/include/atlsrvres.h b/ATL90/include/atlsrvres.h deleted file mode 100644 index ff2a1fc..0000000 --- a/ATL90/include/atlsrvres.h +++ /dev/null @@ -1,150 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -// Used by atlsrv.rc -// -#ifndef ATLSRV_RESID_BASE -#define ATLSRV_RESID_BASE 0x6000 -#endif - -#ifndef PERFMON_RESID_BASE -#define PERFMON_RESID_BASE 0x6100 -#endif - -#ifndef STENCIL_RESID_BASE -#define STENCIL_RESID_BASE 0x6200 -#endif - -#define IDS_ATLSRV_BAD_REQUEST (ATLSRV_RESID_BASE+1) -#define IDS_ATLSRV_AUTH_REQUIRED (ATLSRV_RESID_BASE+2) -#define IDS_ATLSRV_FORBIDDEN (ATLSRV_RESID_BASE+3) -#define IDS_ATLSRV_NOT_FOUND (ATLSRV_RESID_BASE+4) -#define IDS_ATLSRV_SERVER_ERROR (ATLSRV_RESID_BASE+5) -#define IDS_ATLSRV_NOT_IMPLEMENTED (ATLSRV_RESID_BASE+6) -#define IDS_ATLSRV_BAD_GATEWAY (ATLSRV_RESID_BASE+7) -#define IDS_ATLSRV_SERVICE_NOT_AVAILABLE (ATLSRV_RESID_BASE+8) -#define IDS_ATLSRV_SERVER_ERROR_BADSRF (ATLSRV_RESID_BASE+9) -#define IDS_ATLSRV_SERVER_ERROR_HNDLFAIL (ATLSRV_RESID_BASE+10) -#define IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL (ATLSRV_RESID_BASE+11) -#define IDS_ATLSRV_SERVER_ERROR_READFILEFAIL (ATLSRV_RESID_BASE+12) -#define IDS_ATLSRV_SERVER_ERROR_LOADLIB (ATLSRV_RESID_BASE+13) -#define IDS_ATLSRV_SERVER_ERROR_HANDLERIF (ATLSRV_RESID_BASE+14) -#define IDS_ATLSRV_SERVER_ERROR_OUTOFMEM (ATLSRV_RESID_BASE+15) -#define IDS_ATLSRV_SERVER_ERROR_UNEXPECTED (ATLSRV_RESID_BASE+16) -#define IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL (ATLSRV_RESID_BASE+17) -#define IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL (ATLSRV_RESID_BASE+18) -#define IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND (ATLSRV_RESID_BASE+19) -#define IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG (ATLSRV_RESID_BASE+20) -#define IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG (ATLSRV_RESID_BASE+21) -#define IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME (ATLSRV_RESID_BASE+22) -#define IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME (ATLSRV_RESID_BASE+23) -#define IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED (ATLSRV_RESID_BASE+24) -#define IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED (ATLSRV_RESID_BASE+25) -#define IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL (ATLSRV_RESID_BASE+26) -#define IDS_ATLSRV_CRITICAL_LOGMESSAGE (ATLSRV_RESID_BASE+27) -#define IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED (ATLSRV_RESID_BASE+28) -#define IDS_ATLSRV_CRITICAL_WORKERINITFAILED (ATLSRV_RESID_BASE+29) -#define IDS_ATLSRV_CRITICAL_CRITSECINITFAILED (ATLSRV_RESID_BASE+30) -#define IDS_ATLSRV_CRITICAL_THREADPOOLFAILED (ATLSRV_RESID_BASE+31) -#define IDS_ATLSRV_CRITICAL_DLLCACHEFAILED (ATLSRV_RESID_BASE+32) -#define IDS_ATLSRV_CRITICAL_PAGECACHEFAILED (ATLSRV_RESID_BASE+33) -#define IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED (ATLSRV_RESID_BASE+34) -#define IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED (ATLSRV_RESID_BASE+35) -#define IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED (ATLSRV_RESID_BASE+36) -#define IDS_ATLSRV_CRITICAL_FILECACHEFAILED (ATLSRV_RESID_BASE+37) -#define IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION (ATLSRV_RESID_BASE+38) - -#define IDS_PERFMON_CACHE (PERFMON_RESID_BASE+1) -#define IDS_PERFMON_CACHE_HELP (PERFMON_RESID_BASE+2) -#define IDS_PERFMON_HITCOUNT (PERFMON_RESID_BASE+3) -#define IDS_PERFMON_HITCOUNT_HELP (PERFMON_RESID_BASE+4) -#define IDS_PERFMON_MISSCOUNT (PERFMON_RESID_BASE+5) -#define IDS_PERFMON_MISSCOUNT_HELP (PERFMON_RESID_BASE+6) -#define IDS_PERFMON_CURRENTALLOCATIONS (PERFMON_RESID_BASE+7) -#define IDS_PERFMON_CURRENTALLOCATIONS_HELP (PERFMON_RESID_BASE+8) -#define IDS_PERFMON_MAXALLOCATIONS (PERFMON_RESID_BASE+9) -#define IDS_PERFMON_MAXALLOCATIONS_HELP (PERFMON_RESID_BASE+10) -#define IDS_PERFMON_CURRENTENTRIES (PERFMON_RESID_BASE+11) -#define IDS_PERFMON_CURRENTENTRIES_HELP (PERFMON_RESID_BASE+12) -#define IDS_PERFMON_MAXENTRIES (PERFMON_RESID_BASE+13) -#define IDS_PERFMON_MAXENTRIES_HELP (PERFMON_RESID_BASE+14) -#define IDS_PERFMON_HITCOUNTRATE (PERFMON_RESID_BASE+15) -#define IDS_PERFMON_HITCOUNTRATE_HELP (PERFMON_RESID_BASE+16) - -#define IDS_PERFMON_REQUEST (PERFMON_RESID_BASE+17) -#define IDS_PERFMON_REQUEST_HELP (PERFMON_RESID_BASE+18) -#define IDS_PERFMON_REQUEST_TOTAL (PERFMON_RESID_BASE+19) -#define IDS_PERFMON_REQUEST_TOTAL_HELP (PERFMON_RESID_BASE+20) -#define IDS_PERFMON_REQUEST_FAILED (PERFMON_RESID_BASE+21) -#define IDS_PERFMON_REQUEST_FAILED_HELP (PERFMON_RESID_BASE+22) -#define IDS_PERFMON_REQUEST_RATE (PERFMON_RESID_BASE+23) -#define IDS_PERFMON_REQUEST_RATE_HELP (PERFMON_RESID_BASE+24) -#define IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME (PERFMON_RESID_BASE+25) -#define IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP (PERFMON_RESID_BASE+26) -#define IDS_PERFMON_REQUEST_CURR_WAITING (PERFMON_RESID_BASE+27) -#define IDS_PERFMON_REQUEST_CURR_WAITING_HELP (PERFMON_RESID_BASE+28) -#define IDS_PERFMON_REQUEST_MAX_WAITING (PERFMON_RESID_BASE+29) -#define IDS_PERFMON_REQUEST_MAX_WAITING_HELP (PERFMON_RESID_BASE+30) -#define IDS_PERFMON_REQUEST_ACTIVE_THREADS (PERFMON_RESID_BASE+31) -#define IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP (PERFMON_RESID_BASE+32) - - -// -// Stencil parse error support -// - -// the error stencil -#define IDS_STENCIL_ERROR_STENCIL (STENCIL_RESID_BASE+1) - -// parse errors -#define IDS_STENCIL_UNCLOSEDBLOCK_IF (STENCIL_RESID_BASE+2) -#define IDS_STENCIL_UNCLOSEDBLOCK_ELSE (STENCIL_RESID_BASE+3) -#define IDS_STENCIL_UNCLOSEDBLOCK_WHILE (STENCIL_RESID_BASE+4) -#define IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE (STENCIL_RESID_BASE+5) -#define IDS_STENCIL_UNOPENEDBLOCK_ELSE (STENCIL_RESID_BASE+6) -#define IDS_STENCIL_UNOPENEDBLOCK_ENDIF (STENCIL_RESID_BASE+7) - -#define IDS_STENCIL_INVALID_HANDLER (STENCIL_RESID_BASE+8) -#define IDS_STENCIL_NULLPARAM (STENCIL_RESID_BASE+9) -#define IDS_STENCIL_INVALIDSTRING (STENCIL_RESID_BASE+10) -#define IDS_STENCIL_EMBEDDED_NULL (STENCIL_RESID_BASE+11) -#define IDS_STENCIL_UNMATCHED_TAG_START (STENCIL_RESID_BASE+12) -#define IDS_STENCIL_MISMATCHED_TAG_START (STENCIL_RESID_BASE+13) -#define IDS_STENCIL_BAD_PARAMETER (STENCIL_RESID_BASE+14) -#define IDS_STENCIL_METHODNAME_TOO_LONG (STENCIL_RESID_BASE+15) -#define IDS_STENCIL_HANDLERNAME_TOO_LONG (STENCIL_RESID_BASE+16) -#define IDS_STENCIL_INCLUDE_ERROR (STENCIL_RESID_BASE+17) -#define IDS_STENCIL_INCLUDE_INVALID (STENCIL_RESID_BASE+18) -#define IDS_STENCIL_INVALID_SUBHANDLER (STENCIL_RESID_BASE+19) -#define IDS_STENCIL_UNRESOLVED_REPLACEMENT (STENCIL_RESID_BASE+20) - -// mlang errors -#define IDS_STENCIL_MLANG_COCREATE (STENCIL_RESID_BASE+21) -#define IDS_STENCIL_MLANG_LCID (STENCIL_RESID_BASE+22) -#define IDS_STENCIL_MLANG_GETLOCALE (STENCIL_RESID_BASE+23) -#define IDS_STENCIL_MLANG_GETCHARSET (STENCIL_RESID_BASE+24) - -// misceallaneous -#define IDS_STENCIL_OUTOFMEMORY (STENCIL_RESID_BASE+25) -#define IDS_STENCIL_UNEXPECTED (STENCIL_RESID_BASE+26) - - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif - diff --git a/ATL90/include/atlstencil.h b/ATL90/include/atlstencil.h deleted file mode 100644 index 8694a0f..0000000 --- a/ATL90/include/atlstencil.h +++ /dev/null @@ -1,4152 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#ifndef __ATLSTENCIL_H__ -#define __ATLSTENCIL_H__ - -#pragma once - -#include -#include -#include -#include - -#ifdef ATL_DEBUG_STENCILS -#include - - #ifndef ATL_STENCIL_MAX_ERROR_LEN - #define ATL_STENCIL_MAX_ERROR_LEN 256 - #endif -#endif // ATL_DEBUG_STENCILS - -#ifndef ATL_NO_MLANG -#include -#endif - -#ifndef _ATL_NO_DEFAULT_LIBS -#pragma comment(lib, "shlwapi.lib") -#endif // !_ATL_NO_DEFAULT_LIBS - -#pragma warning( push ) -#pragma warning(disable: 4127) // conditional expression is constant -#pragma warning(disable: 4511) // copy constructor could not be generated -#pragma warning(disable: 4512) // assignment operator could not be generated -#pragma warning(disable: 4702) // assignment operator could not be generated -#pragma warning(disable: 4625) // copy constructor could not be generated because a base class copy constructor is inaccessible -#pragma warning(disable: 4626) // assignment operator could not be generated because a base class assignment operator is inaccessible -#pragma warning(disable: 4191) // unsafe conversion from 'functionptr1' to 'functionptr2' - - -#pragma pack(push,_ATL_PACKING) -namespace ATL { - -// Token types -// These tags are token tags for the standard tag replacer implementation -extern __declspec(selectany) const DWORD STENCIL_TEXTTAG = 0x00000000; -extern __declspec(selectany) const DWORD STENCIL_REPLACEMENT = 0x00000001; -extern __declspec(selectany) const DWORD STENCIL_ITERATORSTART = 0x00000002; -extern __declspec(selectany) const DWORD STENCIL_ITERATOREND = 0x00000003; -extern __declspec(selectany) const DWORD STENCIL_CONDITIONALSTART = 0x00000004; -extern __declspec(selectany) const DWORD STENCIL_CONDITIONALELSE = 0x00000005; -extern __declspec(selectany) const DWORD STENCIL_CONDITIONALEND = 0x00000006; -extern __declspec(selectany) const DWORD STENCIL_STENCILINCLUDE = 0x00000007; -extern __declspec(selectany) const DWORD STENCIL_STATICINCLUDE = 0x00000008; -extern __declspec(selectany) const DWORD STENCIL_LOCALE = 0x00000009; -extern __declspec(selectany) const DWORD STENCIL_CODEPAGE = 0x0000000a; - -// The base for user defined token types -extern __declspec(selectany) const DWORD STENCIL_USER_TOKEN_BASE = 0x00001000; - -// Symbols to use in error handling in the stencil processor -#define STENCIL_INVALIDINDEX 0xFFFFFFFF -#define STENCIL_INVALIDOFFSET 0xFFFFFFFF - -// error codes -#define STENCIL_SUCCESS HTTP_SUCCESS -#define STENCL_FAIL HTTP_FAIL - -#define STENCIL_BASIC_MAP 0 -#define STENCIL_ATTR_MAP 1 - -#ifndef ATL_MAX_METHOD_NAME_LEN - #define ATL_MAX_METHOD_NAME_LEN 64 -#endif - -#ifndef ATL_MAX_BLOCK_STACK - #define ATL_MAX_BLOCK_STACK 128 -#endif - -template -struct CTagReplacerMethodsEx -{ - typedef HTTP_CODE (TBase::*REPLACE_FUNC)(); - typedef HTTP_CODE (TBase::*REPLACE_FUNC_EX)(T*); - typedef HTTP_CODE (TBase::*PARSE_FUNC)(IAtlMemMgr *, LPCSTR, T**); - typedef HTTP_CODE (TBase::*REPLACE_FUNC_EX_V)(void *); - typedef HTTP_CODE (TBase::*PARSE_FUNC_V)(IAtlMemMgr *, LPCSTR, void**); - - static REPLACE_FUNC_EX_V CheckRepl(REPLACE_FUNC p) throw() - { - return (REPLACE_FUNC_EX_V) p; - } - - static REPLACE_FUNC_EX_V CheckReplEx(REPLACE_FUNC_EX p) throw() - { - return (REPLACE_FUNC_EX_V) p; - } - - static PARSE_FUNC_V CheckParse(PARSE_FUNC p) throw() - { - return (PARSE_FUNC_V) p; - } -}; - -template -struct CTagReplacerMethods -{ - union - { - HTTP_CODE (TBase::*pfnMethodEx)(void *); - HTTP_CODE (TBase::*pfnMethod)(); - }; - HTTP_CODE (TBase::*pfnParse)(IAtlMemMgr *pMemMgr, LPCSTR, void **); -}; - -#define REPLACEMENT_ENTRY_DEFAULT 0 -#define REPLACEMENT_ENTRY_ARGS 1 - -template -struct CTagReplacerMethodEntry -{ - int nType; // REPLACEMENT_ENTRY_* - LPCSTR szMethodName; - CTagReplacerMethods Methods; -}; - - -#define BEGIN_REPLACEMENT_METHOD_MAP(className)\ -public:\ - void GetReplacementMethodMap(const ATL::CTagReplacerMethodEntry ** ppOut) const\ - {\ - typedef className __className;\ - static const ATL::CTagReplacerMethodEntry methods[] = { - -#define REPLACEMENT_METHOD_ENTRY(methodName, methodFunc)\ - { 0, methodName, { ATL::CTagReplacerMethodsEx<__className, void>::CheckRepl(&__className::methodFunc), NULL } }, - -#define REPLACEMENT_METHOD_ENTRY_EX(methodName, methodFunc, paramType, parseFunc)\ - { 1, methodName, { ATL::CTagReplacerMethodsEx<__className, paramType>::CheckReplEx(&__className::methodFunc), ATL::CTagReplacerMethodsEx<__className, paramType>::CheckParse(&__className::parseFunc) } }, - -#define REPLACEMENT_METHOD_ENTRY_EX_STR(methodName, methodFunc) \ - { 1, methodName, { ATL::CTagReplacerMethodsEx<__className, char>::CheckReplEx(&__className::methodFunc), ATL::CTagReplacerMethodsEx<__className, char>::CheckParse(&__className::DefaultParseString) } }, - -#define END_REPLACEMENT_METHOD_MAP()\ - { 0, NULL, NULL } };\ - *ppOut = methods;\ - } - -#define BEGIN_ATTR_REPLACEMENT_METHOD_MAP(className)\ -public:\ - void GetAttrReplacementMethodMap(const CTagReplacerMethodEntry ** ppOut) const\ - {\ - typedef className __className;\ - static const ATL::CTagReplacerMethodEntry methods[] = { - -#define END_ATTR_REPLACEMENT_METHOD_MAP()\ - { NULL, NULL, NULL } };\ - *ppOut = methods;\ - } - -template -class ITagReplacerImpl : public ITagReplacer -{ -protected: - IWriteStream *m_pStream; - -public: - typedef HTTP_CODE (T::*REPLACEMENT_METHOD)(); - typedef HTTP_CODE (T::*REPLACEMENT_METHOD_EX)(void *pvParam); - - ITagReplacerImpl() throw() - :m_pStream(NULL) - { - } - - IWriteStream *SetStream(IWriteStream *pStream) - { - IWriteStream *pRetStream = m_pStream; - m_pStream = pStream; - return pRetStream; - } - - // Looks up the replacement method offset. Optionally, it will - // look up the replacement method and object offset of an alternate - // tag replacer. - HTTP_CODE FindReplacementOffset( - LPCSTR szMethodName, - DWORD *pdwMethodOffset, - LPCSTR szHandlerName, - DWORD *pdwHandlerOffset, - DWORD *pdwMap, void **ppvParam, IAtlMemMgr *pMemMgr) - { - ATLENSURE(szMethodName != NULL); - ATLENSURE(pdwMethodOffset != NULL); - ATLENSURE((szHandlerName == NULL && pdwHandlerOffset == NULL) || - (szHandlerName != NULL && pdwHandlerOffset != NULL)); - ATLENSURE(pdwMap != NULL); - ATLENSURE(ppvParam != NULL); - ATLENSURE(pMemMgr != NULL); - - // we at least have to be looking up a method offset - if (!pdwMethodOffset || !szMethodName) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - - *pdwMethodOffset = STENCIL_INVALIDOFFSET; - HTTP_CODE hcErr = HTTP_FAIL; - T *pT = static_cast(this); - - char szName[ATL_MAX_METHOD_NAME_LEN+1]; - - // if a handler name was supplied, we will try to - // find a different object to handle the method - if (szHandlerName && *szHandlerName) - { - if (!pdwHandlerOffset) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - - hcErr = pT->GetHandlerOffset(szHandlerName, pdwHandlerOffset); - // got the alternate handler, now look up the method offset on - // the handler. - if (!hcErr) - { - CComPtr spAltTagReplacer; - hcErr = pT->GetReplacementObject(*pdwHandlerOffset, &spAltTagReplacer); - if (!hcErr) - hcErr = spAltTagReplacer->FindReplacementOffset(szMethodName, pdwMethodOffset, - NULL, NULL, pdwMap, ppvParam, pMemMgr); - return hcErr; - } - else - return hcErr; - } - - if (!SafeStringCopy(szName, szMethodName)) - { - return AtlsHttpError(500, ISE_SUBERR_LONGMETHODNAME); - } - - // check for params - char *szLeftPar = strchr(szName, '('); - if (szLeftPar) - { - *szLeftPar = '\0'; - szLeftPar++; - - char *szRightPar = strchr(szLeftPar, ')'); - if (!szRightPar) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - - *szRightPar = '\0'; - - szMethodName = szName; - - } - - // No handler name is specified, so we look up the method name in - // T's replacement method map - const CTagReplacerMethodEntry *pEntry = NULL; - pT->GetReplacementMethodMap(&pEntry); - - hcErr = FindReplacementOffsetInMap(szMethodName, pdwMethodOffset, pEntry); - if (hcErr != HTTP_SUCCESS) - { - pT->GetAttrReplacementMethodMap(&pEntry); - hcErr = FindReplacementOffsetInMap(szMethodName, pdwMethodOffset, pEntry); - if (hcErr == HTTP_SUCCESS) - *pdwMap = STENCIL_ATTR_MAP; - } - else - { - *pdwMap = STENCIL_BASIC_MAP; - } - - // This assert will be triggered if arguments are passed to a replacement method that doesn't handle them - ATLASSERT( szLeftPar == NULL || (szLeftPar != NULL && (pEntry != NULL && pEntry[*pdwMethodOffset].Methods.pfnParse != NULL)) ); - - if (hcErr == HTTP_SUCCESS && pEntry && pEntry[*pdwMethodOffset].Methods.pfnParse) - hcErr = (pT->*pEntry[*pdwMethodOffset].Methods.pfnParse)(pMemMgr, szLeftPar, ppvParam); - return hcErr; - } - - HTTP_CODE FindReplacementOffsetInMap( - LPCSTR szMethodName, - LPDWORD pdwMethodOffset, - const CTagReplacerMethodEntry *pEntry) throw() - { - if (pEntry == NULL) - return HTTP_FAIL; - - const CTagReplacerMethodEntry *pEntryHead = pEntry; - - while (pEntry->szMethodName) - { - if (strcmp(pEntry->szMethodName, szMethodName) == 0) - { - if (pEntry->Methods.pfnMethod) - { - *pdwMethodOffset = (DWORD)(pEntry-pEntryHead); - return HTTP_SUCCESS; - } - } - pEntry++; - } - - return HTTP_FAIL; - } - - - // Used to render a single replacement tag into a stream. - // Looks up a pointer to a member function in user code by offseting into the users - // replacement map. Much faster than the other overload of this function since - // no string compares are performed. - HTTP_CODE RenderReplacement(DWORD dwFnOffset, DWORD dwObjOffset, DWORD dwMap, void *pvParam) - { - HTTP_CODE hcErr = HTTP_FAIL; - T *pT = static_cast(this); - - // if we were not passed an object offset, then we assume - // that the function at dwFnOffset is in T's replacement - // map - if (dwObjOffset == STENCIL_INVALIDOFFSET) - { - // call a function in T's replacement map - ATLASSERT(dwFnOffset != STENCIL_INVALIDOFFSET); - const CTagReplacerMethodEntry *pEntry = NULL; - if (dwMap == STENCIL_BASIC_MAP) - pT->GetReplacementMethodMap(&pEntry); - else - pT->GetAttrReplacementMethodMap(&pEntry); - if (pEntry) - { - if (pEntry[dwFnOffset].nType == REPLACEMENT_ENTRY_DEFAULT) - { - REPLACEMENT_METHOD pfn = NULL; - pfn = pEntry[dwFnOffset].Methods.pfnMethod; - ATLASSERT(pfn); - if (pfn) - { - hcErr = (pT->*pfn)(); - } - } - else if (pEntry[dwFnOffset].nType == REPLACEMENT_ENTRY_ARGS) - { - REPLACEMENT_METHOD_EX pfn = NULL; - pfn = pEntry[dwFnOffset].Methods.pfnMethodEx; - ATLASSERT(pfn); - if (pfn) - { - hcErr = (pT->*pfn)(pvParam); - } - } - else - { - // unknown entry type - ATLASSERT(FALSE); - } - } - } - else - { - // otherwise, we were passed an object offset. The object - // offset is a dword ID that T can use to look up the - // ITagReplacer* of a tag replacer that will render this - // replacement. - CComPtr spAltReplacer = NULL; - if (!pT->GetReplacementObject(dwObjOffset, &spAltReplacer)) - { - spAltReplacer->SetStream(m_pStream); - hcErr = spAltReplacer->RenderReplacement(dwFnOffset, STENCIL_INVALIDOFFSET, dwMap, pvParam); - } - } - return hcErr; - } - - // Default GetHandlerOffset, does nothing - HTTP_CODE GetHandlerOffset(LPCSTR /*szHandlerName*/, DWORD* pdwOffset) - { - if (pdwOffset) - *pdwOffset = 0; - return HTTP_FAIL; - } - - // Default GetReplacementObject, does nothing - HTTP_CODE GetReplacementObject(DWORD /*dwObjOffset*/, ITagReplacer **ppReplacer) - { - if (ppReplacer) - *ppReplacer = NULL; - return HTTP_FAIL; - } - - void GetReplacementMethodMap(const CTagReplacerMethodEntry ** ppOut) const - { - static const CTagReplacerMethodEntry methods[] = { { NULL, NULL } }; - *ppOut = methods; - } - - void GetAttrReplacementMethodMap(const CTagReplacerMethodEntry **ppOut) const - { - static const CTagReplacerMethodEntry methods[] = { { NULL, NULL } }; - *ppOut = methods; - } - - HRESULT GetContext(REFIID, void**) - { - return E_NOINTERFACE; - } - - virtual HINSTANCE GetResourceInstance() - { - return GetModuleHandle(NULL); - } - - HTTP_CODE DefaultParseString(IAtlMemMgr *pMemMgr, LPCSTR szParams, char **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - size_t nLen = strlen(szParams); - if (nLen) - { - nLen++; - *ppParam = (char *) pMemMgr->Allocate(nLen); - if (*ppParam) - Checked::memcpy_s(*ppParam, nLen, szParams, nLen); - else - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseUChar(IAtlMemMgr *pMemMgr, LPCSTR szParams, unsigned char **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (unsigned char *) pMemMgr->Allocate(sizeof(unsigned char)); - if (*ppParam) - { - char *szEnd; - **ppParam = (unsigned char) strtoul(szParams, &szEnd, 10); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseShort(IAtlMemMgr *pMemMgr, LPCSTR szParams, short **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (short *) pMemMgr->Allocate(sizeof(short)); - if (*ppParam) - { - **ppParam = (short)atoi(szParams); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseUShort(IAtlMemMgr *pMemMgr, LPCSTR szParams, unsigned short **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (unsigned short *) pMemMgr->Allocate(sizeof(short)); - if (*ppParam) - { - char *szEnd; - **ppParam = (unsigned short) strtoul(szParams, &szEnd, 10); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseInt(IAtlMemMgr *pMemMgr, LPCSTR szParams, int **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (int *) pMemMgr->Allocate(sizeof(int)); - if (*ppParam) - { - **ppParam = atoi(szParams); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseUInt(IAtlMemMgr *pMemMgr, LPCSTR szParams, unsigned int **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (unsigned int *) pMemMgr->Allocate(sizeof(unsigned int)); - if (*ppParam) - { - char *szEnd; - **ppParam = strtoul(szParams, &szEnd, 10); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseInt64(IAtlMemMgr *pMemMgr, LPCSTR szParams, __int64 **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (__int64 *) pMemMgr->Allocate(sizeof(__int64)); - if (*ppParam) - { - **ppParam = _atoi64(szParams); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseUInt64(IAtlMemMgr *pMemMgr, LPCSTR szParams, unsigned __int64 **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (unsigned __int64 *) pMemMgr->Allocate(sizeof(unsigned __int64)); - if (*ppParam) - { - char *szEnd; - **ppParam = _strtoui64(szParams, &szEnd, 10); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseBool(IAtlMemMgr *pMemMgr, LPCSTR szParams, bool **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (bool *) pMemMgr->Allocate(sizeof(bool)); - if (*ppParam) - { - if (!_strnicmp(szParams, "true", sizeof("true")-sizeof('\0'))) - **ppParam = true; - else - **ppParam = false; - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseDouble(IAtlMemMgr *pMemMgr, LPCSTR szParams, double **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - *ppParam = (double *) pMemMgr->Allocate(sizeof(double)); - if (*ppParam) - { - **ppParam = atof(szParams); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - return HTTP_SUCCESS; - } - - HTTP_CODE DefaultParseFloat(IAtlMemMgr *pMemMgr, LPCSTR szParams, float **ppParam) throw(...) - { - ATLENSURE( pMemMgr != NULL ); - ATLENSURE( szParams != NULL ); - ATLENSURE( ppParam != NULL ); - - errno_t errnoValue = 0; - *ppParam = (float *) pMemMgr->Allocate(sizeof(float)); - if (*ppParam) - { - errno_t saveErrno = Checked::get_errno(); - Checked::set_errno(0); - **ppParam = (float) atof(szParams); - errnoValue = Checked::get_errno(); - Checked::set_errno(saveErrno); - } - else - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - if ((**ppParam == -HUGE_VAL) || (**ppParam == HUGE_VAL) || (errnoValue == ERANGE)) - { - return HTTP_FAIL; - } - return HTTP_SUCCESS; - } -}; - -inline LPCSTR SkipSpace(LPCSTR sz, WORD nCodePage) throw() -{ - if (sz == NULL) - return NULL; - - while (isspace(static_cast(*sz))) - sz = CharNextExA(nCodePage, sz, 0); - return sz; -} - -inline LPCSTR RSkipSpace(LPCSTR pStart, LPCSTR sz, WORD nCodePage) throw() -{ - if (sz == NULL || pStart == NULL) - return NULL; - - while (isspace(static_cast(*sz)) && sz != pStart) - sz = CharPrevExA(nCodePage, pStart, sz, 0); - return sz; -} - -// -// StencilToken -// The stencil class will create an array of these tokens during the parse -// phase and use them during rendering to render the stencil -struct StencilToken -{ - LPCSTR pStart; // Start of fragment to be rendered - LPCSTR pEnd; // End of fragment to be rendered - DWORD type; // Type of token - DWORD dwFnOffset; // Offset into the replacement map for the handler function. - DWORD dwMap; - DWORD dwObjOffset; // An identifier for the caller to use in identifiying the - // object that will render this token. - CHAR szHandlerName[ATL_MAX_HANDLER_NAME_LEN + 1]; // Name of handler object. - CHAR szMethodName[ATL_MAX_METHOD_NAME_LEN + 1]; // Name of handler method. - DWORD dwLoopIndex; // Offset into array of StencilTokens of the other loop tag - DWORD_PTR dwData; - BOOL bDynamicAlloc; -}; - - -// -// Class CStencil -// The CStencil class is used to map in a stencil from a file or resource -// and parse the stencil into an array of StencilTokens. We then render -// the stencil from the array of tokens. This class's parse and render -// functions depend on an IReplacementHandlerLookup interface pointer to be -// passed so it can retrieve the IReplacementHandler interface pointer of the -// handler object that will be called to render replacement tags -class CStencil : - public IMemoryCacheClient -{ -private: - LPCSTR m_pBufferStart; // Beginning of CHAR buffer that holds the stencil. - // For mapped files this is the beginning of the mapping. - LPCSTR m_pBufferEnd; // End of CHAR buffer that holds the stencil. - CAtlArray m_arrTokens; //An array of tokens. - FILETIME m_ftLastModified; // Last modified time (0 for resource) - FILETIME m_ftLastChecked; // Last time we retrieved last modified time (0 for resource) - HCACHEITEM m_hCacheItem; - WORD m_nCodePage; - BOOL m_bUseLocaleACP; - char m_szDllPath[MAX_PATH]; - char m_szHandlerName[ATL_MAX_HANDLER_NAME_LEN+1]; // Room for the path, the handler - // the '/' and the '\0' -#ifdef ATL_DEBUG_STENCILS - struct ParseError - { - char m_szError[ATL_STENCIL_MAX_ERROR_LEN]; - LPCSTR m_szPosition; - LPCSTR m_szStartLine; - LPCSTR m_szEndLine; - int m_nLineNumber; - - bool operator==(const ParseError& that) const throw() - { - return (m_nLineNumber == that.m_nLineNumber); - } - }; - - CSimpleArray m_Errors; - HINSTANCE m_hResInst; - - class CParseErrorProvider : public ITagReplacerImpl, - public CComObjectRootEx - { - public: - BEGIN_COM_MAP(CParseErrorProvider) - COM_INTERFACE_ENTRY(ITagReplacer) - END_COM_MAP() - CSimpleArray *m_pErrors; - int m_nCurrentError; - - CParseErrorProvider() throw() : - m_pErrors(NULL), - m_nCurrentError(-1) - { - } - - void Initialize(CSimpleArray *pErrors) throw() - { - m_pErrors = pErrors; - } - - HTTP_CODE OnGetNextError() throw() - { - m_nCurrentError++; - if (m_nCurrentError >= m_pErrors->GetSize() || - m_nCurrentError < 0 ) - { - m_nCurrentError = -1; - return HTTP_S_FALSE; - } - else - return HTTP_SUCCESS; - } - - HTTP_CODE OnGetErrorLineNumber() throw(...) - { - if (m_pErrors->GetSize() == 0) - return HTTP_SUCCESS; - if (m_nCurrentError > m_pErrors->GetSize() || - m_nCurrentError < 0) - m_nCurrentError = 0; - - CWriteStreamHelper c(m_pStream); - if (!c.Write((*m_pErrors)[m_nCurrentError].m_nLineNumber)) - return HTTP_FAIL; - - return HTTP_SUCCESS; - } - - HTTP_CODE OnGetErrorText() throw(...) - { - if (m_pErrors->GetSize() == 0) - return HTTP_SUCCESS; - if (m_nCurrentError > m_pErrors->GetSize() || - m_nCurrentError < 0) - m_nCurrentError = 0; - - CWriteStreamHelper c(m_pStream); - - if (!c.Write(static_cast((*m_pErrors)[m_nCurrentError].m_szError))) - return HTTP_FAIL; - - return HTTP_SUCCESS; - } - - HTTP_CODE OnGetErrorLine() throw(...) - { - ATLASSUME(m_pStream != NULL); - - if (m_pErrors->GetSize() == 0) - return HTTP_SUCCESS; - if (m_nCurrentError > m_pErrors->GetSize() || - m_nCurrentError < 0) - m_nCurrentError = 0; - - m_pStream->WriteStream((*m_pErrors)[m_nCurrentError].m_szStartLine, - (int)((*m_pErrors)[m_nCurrentError].m_szEndLine - (*m_pErrors)[m_nCurrentError].m_szStartLine), NULL); - - return HTTP_SUCCESS; - } - - BEGIN_REPLACEMENT_METHOD_MAP(CParseErrorProvider) - REPLACEMENT_METHOD_ENTRY("GetNextError", OnGetNextError) - REPLACEMENT_METHOD_ENTRY("GetErrorText", OnGetErrorText) - REPLACEMENT_METHOD_ENTRY("GetErrorLine", OnGetErrorLine) - REPLACEMENT_METHOD_ENTRY("GetErrorLineNumber", OnGetErrorLineNumber) - END_REPLACEMENT_METHOD_MAP() - }; - -#else - bool m_bErrorsOccurred; -#endif - - class CSaveThreadLocale - { - LCID m_locale; - public: - CSaveThreadLocale() throw() - { - m_locale = GetThreadLocale(); - } - ~CSaveThreadLocale() throw() - { - SetThreadLocale(m_locale); - } - }; - - HTTP_CODE LoadFromResourceInternal(HINSTANCE hInstRes, HRSRC hRsrc) throw() - { - ATLASSERT( hRsrc != NULL ); - - HGLOBAL hgResource = NULL; - hgResource = LoadResource(hInstRes, hRsrc); - if (!hgResource) - { - return HTTP_FAIL; - } - - DWORD dwSize = SizeofResource(hInstRes, hRsrc); - if (dwSize != 0) - { - m_pBufferStart = (LPSTR)LockResource(hgResource); - if (m_pBufferStart != NULL) - { - m_pBufferEnd = m_pBufferStart+dwSize; - return HTTP_SUCCESS; - } - } - - // failed to load resource - return HTTP_FAIL; - } - -protected: - - ITagReplacer *m_pReplacer; - IAtlMemMgr *m_pMemMgr; - static CCRTHeap m_crtHeap; - - inline BOOL CheckTag(LPCSTR szTag, DWORD dwTagLen, LPCSTR szStart, DWORD dwLen) throw() - { - if (dwLen < dwTagLen) - return FALSE; - - if (memcmp(szStart, szTag, dwTagLen)) - return FALSE; - - if (isspace(static_cast(szStart[dwTagLen])) || szStart[dwTagLen] == '}') - return TRUE; - - return FALSE; - } - - inline void FindTagArgs(LPCSTR& szstart, LPCSTR& szend, int nKeywordChars) throw() - { - // this function should only be called after finding a valid tag - // the first two characters of szstart should be {{ - ATLASSERT(szstart[0] == '{' && szstart[1] == '{'); - - if (*szstart == '{') - szstart += 2; // move past {{ - szstart = SkipSpace(szstart, m_nCodePage); // move past whitespace - szstart += nKeywordChars; // move past keyword - szstart = SkipSpace(szstart, m_nCodePage); // move past whitespace after keyword - if (*szend == '}') - szend -=2; // chop off }} - szend = RSkipSpace(szstart, szend, m_nCodePage); // chop of trailing whitespace - } - - DWORD CheckTopAndPop(DWORD *pBlockStack, DWORD *pdwTop, DWORD dwToken) throw() - { - if (*pdwTop == 0) - return STENCIL_INVALIDINDEX; - if (m_arrTokens[pBlockStack[*pdwTop]].type == dwToken) - { - *pdwTop = (*pdwTop) - 1; - return pBlockStack[(*pdwTop)+1]; - } - return STENCIL_INVALIDINDEX; - } - - DWORD PushToken(DWORD *pBlockStack, DWORD *pdwTop, DWORD dwIndex) throw() - { - if (*pdwTop < (ATL_MAX_BLOCK_STACK-1)) - { - *pdwTop = (*pdwTop) + 1; - pBlockStack[*pdwTop] = dwIndex; - } - else - { - dwIndex = STENCIL_INVALIDINDEX; - } - - return dwIndex; - } - -public: - - enum PARSE_TOKEN_RESULT { INVALID_TOKEN, NORMAL_TOKEN, RESERVED_TOKEN }; - - CStencil(IAtlMemMgr *pMemMgr=NULL) throw() - { - m_pBufferStart = NULL; - m_pBufferEnd = NULL; - m_hCacheItem = NULL; - m_ftLastModified.dwLowDateTime = 0; - m_ftLastModified.dwHighDateTime = 0; - m_ftLastChecked.dwLowDateTime = 0; - m_ftLastChecked.dwHighDateTime = 0; - m_arrTokens.SetCount(0, 128); - m_nCodePage = CP_ACP; - m_bUseLocaleACP = TRUE; - m_szHandlerName[0] = '\0'; - m_szDllPath[0] = '\0'; - m_pMemMgr = pMemMgr; - if (!pMemMgr) - m_pMemMgr = &m_crtHeap; -#ifdef ATL_DEBUG_STENCILS - m_hResInst = NULL; -#else - m_bErrorsOccurred = false; -#endif - - } - - virtual ~CStencil() throw() - { - Uninitialize(); - } - -#ifdef ATL_DEBUG_STENCILS - - bool RenderErrors(IWriteStream *pStream) throw(...) - { - if (pStream == NULL) - { - return false; - } - - CComObjectStackEx Errors; - - Errors.Initialize(&m_Errors); - CStencil ErrorStencil; - - if (m_hResInst != NULL) - { - CFixedStringT strErrorStencil; - _ATLTRY - { - if (strErrorStencil.LoadString(m_hResInst, IDS_STENCIL_ERROR_STENCIL) == FALSE) - { - return false; - } - } - _ATLCATCHALL() - { - return false; - } - - HTTP_CODE hcRet = ErrorStencil.LoadFromString(strErrorStencil, strErrorStencil.GetLength()); - - if (hcRet == HTTP_SUCCESS) - { - if (ErrorStencil.ParseReplacements(static_cast(&Errors)) != false) - { - ErrorStencil.FinishParseReplacements(); - if (ErrorStencil.ParseSuccessful() != false) - { - hcRet = ErrorStencil.Render(static_cast(&Errors), pStream); - - if (HTTP_ERROR_CODE(hcRet) < 400) - { - return true; - } - } - } - } - } - - return false; - } - - void SetErrorResource(HINSTANCE hResInst) - { - m_hResInst = hResInst; - } - - bool ParseSuccessful() - { - return (m_Errors.GetSize() == 0); - } - - bool AddErrorInternal(LPCSTR szErrorText, LPCSTR szPosition) throw() - { - int nLineNum = 0; - LPCSTR szStartLine = NULL; - LPCSTR szPtr = m_pBufferStart; - while (szPtr < szPosition) - { - if (*szPtr == '\n') - { - szStartLine = szPtr + 1; - nLineNum++; - } - - LPSTR szNext = CharNextExA(m_nCodePage, szPtr, 0); - if (szNext == szPtr) - { - break; - } - szPtr = szNext; - } - LPCSTR szEndLine = szPtr; - while (*szPtr) - { - if (*szPtr == '\n') - break; - szEndLine = szPtr; - LPSTR szNext = CharNextExA(m_nCodePage, szPtr, 0); - if (szNext == szPtr) - { - break; - } - szPtr = szNext; - } - - ParseError p; - SafeStringCopy(p.m_szError, szErrorText); - p.m_szPosition = szPosition; - p.m_nLineNumber = nLineNum; - p.m_szStartLine = szStartLine; - p.m_szEndLine = szEndLine; - - return (m_Errors.Add(p) == TRUE); - } - - bool AddError(UINT uID, LPCSTR szPosition) throw() - { - if (m_hResInst != NULL) - { - _ATLTRY - { - CFixedStringT strRes; - if (strRes.LoadString(m_hResInst, uID) != FALSE) - { - return AddErrorInternal(strRes, szPosition); - } - } - _ATLCATCHALL() - { - } - } - return AddErrorInternal("Could not load resource for error string", szPosition); - } - - bool AddReplacementError(LPCSTR szReplacement, LPCSTR szPosition) throw() - { - if (m_hResInst != NULL) - { - _ATLTRY - { - CFixedStringT strRes; - if (strRes.LoadString(m_hResInst, IDS_STENCIL_UNRESOLVED_REPLACEMENT) != FALSE) - { - CFixedStringT strErrorText; - strErrorText.Format(strRes, szReplacement); - return AddErrorInternal(strErrorText, szPosition); - } - else - { - return AddErrorInternal("Could not load resource for error string", szPosition); - } - } - _ATLCATCHALL() - { - return false; - } - } - - return false; - } - -#else - - bool ParseSuccessful() - { - return !m_bErrorsOccurred; - } - - bool AddError(UINT /*uID*/, LPCSTR /*szPosition*/) throw() - { - m_bErrorsOccurred = true; - return true; - } - - bool AddReplacementError(LPCSTR /*szReplacement*/, LPCSTR /*szPosition*/) throw() - { - m_bErrorsOccurred = true; - return true; - } - - void SetErrorResource(HINSTANCE) throw() - { - } - -#endif - - // Call Uninitialize if you want to re-use an already initialized CStencil - void Uninitialize() throw() - { - int nSize = (int) m_arrTokens.GetCount(); - for (int nIndex = 0; nIndex < nSize; nIndex++) - { - if (m_arrTokens[nIndex].bDynamicAlloc) - delete [] m_arrTokens[nIndex].pStart; - if (m_arrTokens[nIndex].dwData != 0 && m_arrTokens[nIndex].type != STENCIL_LOCALE) - m_pMemMgr->Free((void *) m_arrTokens[nIndex].dwData); - } - - m_arrTokens.RemoveAll(); - if ((m_ftLastModified.dwLowDateTime || m_ftLastModified.dwHighDateTime) && m_pBufferStart) - { - delete [] m_pBufferStart; - } - m_pBufferStart = NULL; - m_pBufferEnd = NULL; - } - - void GetLastModified(FILETIME *pftLastModified) - { - ATLENSURE(pftLastModified); - *pftLastModified = m_ftLastModified; - } - - void GetLastChecked(FILETIME *pftLastChecked) - { - ATLENSURE(pftLastChecked); - *pftLastChecked = m_ftLastChecked; - } - - void SetLastChecked(FILETIME *pftLastChecked) - { - ATLENSURE(pftLastChecked); - m_ftLastChecked = *pftLastChecked; - } - - HCACHEITEM GetCacheItem() - { - return m_hCacheItem; - } - - void SetCacheItem(HCACHEITEM hCacheItem) - { - ATLASSUME(m_hCacheItem == NULL); - m_hCacheItem = hCacheItem; - } - - bool GetHandlerName(__out_ecount_z(nPathLen) LPSTR szDllPath, __in size_t nPathLen, __out_ecount_z(nHandlerNameLen) LPSTR szHandlerName, __in size_t nHandlerNameLen) throw() - { - if(strlen(m_szDllPath) >= nPathLen) - { - return false; - } - - if(strlen(m_szHandlerName) >= nHandlerNameLen) - { - return false; - } - - if(0 != strcpy_s(szDllPath, nPathLen, m_szDllPath)) - { - return false; - } - - if(0 != strcpy_s(szHandlerName, nHandlerNameLen, m_szHandlerName)) - { - return false; - } - - return true; - } - - // Adds a token to the token array, handler name, method name - // and handler function offset are optional - ATL_NOINLINE DWORD AddToken( - LPCSTR pStart, - LPCSTR pEnd, - DWORD dwType, - LPCSTR szHandlerName = NULL, - LPCSTR szMethodName = NULL, - DWORD dwFnOffset = STENCIL_INVALIDOFFSET, - DWORD dwObjOffset = STENCIL_INVALIDOFFSET, - DWORD_PTR dwData = 0, - DWORD dwMap = 0, - BOOL bDynamicAlloc = 0) throw() - { - StencilToken t; - - memset(&t, 0x00, sizeof(t)); - - t.pStart = pStart; - t.pEnd = pEnd; - t.type = dwType; - t.dwLoopIndex = STENCIL_INVALIDINDEX; - t.dwFnOffset = dwFnOffset; - t.dwObjOffset = dwObjOffset; - t.dwData = dwData; - t.dwMap = dwMap; - t.bDynamicAlloc = bDynamicAlloc; - - // this should never assert unless the user has overriden something incorrectly - if ((szHandlerName != NULL) && (*szHandlerName)) - { - ATLVERIFY( SafeStringCopy(t.szHandlerName, szHandlerName) ); - } - if ((szMethodName != NULL) && (*szMethodName)) - { - ATLVERIFY( SafeStringCopy(t.szMethodName, szMethodName) ); - } - - _ATLTRY - { - return (DWORD) m_arrTokens.Add(t); - } - _ATLCATCHALL() - { - return STENCIL_INVALIDINDEX; - } - } - - HTTP_CODE LoadFromFile(LPCSTR szFileName) throw() - { - HRESULT hr = E_FAIL; - ULONGLONG dwLen = 0; - CAtlFile file; - - _ATLTRY - { - hr = file.Create(CA2CTEX(szFileName), GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING); - if (FAILED(hr) || GetFileType(file) != FILE_TYPE_DISK) - return AtlsHttpError(500, ISE_SUBERR_STENCIL_LOAD_FAIL); // couldn't load SRF! - - if (GetFileTime(file, NULL, NULL, &m_ftLastModified)) - { - if (SUCCEEDED(file.GetSize(dwLen))) - { - ATLASSERT(!m_pBufferStart); - - GetSystemTimeAsFileTime(&m_ftLastChecked); - - m_pBufferStart = NULL; - CAutoVectorPtr buffer; - if (!buffer.Allocate((size_t) dwLen)) - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); // out of memory - - DWORD dwRead = 0; - hr = file.Read(buffer, (DWORD) dwLen, dwRead); - if (FAILED(hr)) - return AtlsHttpError(500, ISE_SUBERR_READFILEFAIL); // ReadFile failed - - m_pBufferStart = buffer.Detach(); - m_pBufferEnd = m_pBufferStart + dwRead; - } - } - } - _ATLCATCHALL() - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - } - - return HTTP_SUCCESS; - } - - // loads a stencil from the specified resource. - HTTP_CODE LoadFromResource(HINSTANCE hInstRes, LPCSTR szID, LPCSTR szType = NULL) throw() - { - if (szType == NULL) - { - szType = (LPCSTR) RT_HTML; - } - - HRSRC hRsrc = FindResourceA(hInstRes, szID, szType); - if (hRsrc != NULL) - { - return LoadFromResourceInternal(hInstRes, hRsrc); - } - - return HTTP_FAIL; - } - - HTTP_CODE LoadFromResourceEx(HINSTANCE hInstRes, LPCSTR szID, WORD wLanguage, LPCSTR szType = NULL) throw() - { - if (szType == NULL) - { - szType = (LPCSTR) RT_HTML; - } - - HRSRC hRsrc = FindResourceExA(hInstRes, szType, szID, wLanguage); - if (hRsrc != NULL) - { - return LoadFromResourceInternal(hInstRes, hRsrc); - } - - return HTTP_FAIL; - } - - // loads a stencil from the specified resource - HTTP_CODE LoadFromResource(HINSTANCE hInstRes, UINT nId, LPCSTR szType = NULL) throw() - { - return LoadFromResource(hInstRes, MAKEINTRESOURCEA(nId), szType); - } - - HTTP_CODE LoadFromResourceEx(HINSTANCE hInstRes, UINT nId, WORD wLanguage, LPCSTR szType = NULL) throw() - { - return LoadFromResourceEx(hInstRes, MAKEINTRESOURCEA(nId), wLanguage, szType); - } - - // loads a stencil from a string - HTTP_CODE LoadFromString(LPCSTR szString, DWORD dwSize) throw() - { - m_pBufferStart = szString; - m_pBufferEnd = m_pBufferStart+dwSize; - return HTTP_SUCCESS; - } - - // Cracks the loaded stencil into an array of StencilTokens in preparation for - // rendering. LoadStencil must be called prior to calling this function. - virtual bool ParseReplacements(ITagReplacer* pReplacer) throw(...) - { - return ParseReplacementsFromBuffer(pReplacer, GetBufferStart(), GetBufferEnd()); - } - - virtual bool FinishParseReplacements() throw(...) - { - DWORD dwSize = (DWORD) m_arrTokens.GetCount(); - for (DWORD dwIndex = 0; dwIndex < dwSize; dwIndex++) - { - StencilToken& token = m_arrTokens[dwIndex]; - bool bUnclosedBlock = ((token.type == STENCIL_CONDITIONALSTART || - token.type == STENCIL_CONDITIONALELSE || - token.type == STENCIL_ITERATORSTART) && - token.dwLoopIndex == STENCIL_INVALIDINDEX); - if ((token.szMethodName[0] && token.dwFnOffset == STENCIL_INVALIDOFFSET) || bUnclosedBlock) - { - if (bUnclosedBlock || - m_pReplacer->FindReplacementOffset( - token.szMethodName, &token.dwFnOffset, - token.szHandlerName, &token.dwObjOffset, - &token.dwMap, (void **)(&token.dwData), m_pMemMgr) != HTTP_SUCCESS) - { - if (bUnclosedBlock && token.type == STENCIL_CONDITIONALSTART) - { - AddError(IDS_STENCIL_UNCLOSEDBLOCK_IF, token.pStart); - } - else if (bUnclosedBlock && token.type == STENCIL_CONDITIONALELSE) - { - AddError(IDS_STENCIL_UNCLOSEDBLOCK_ELSE, token.pStart); - } - else if (bUnclosedBlock && token.type == STENCIL_ITERATORSTART) - { - AddError(IDS_STENCIL_UNCLOSEDBLOCK_WHILE, token.pStart); - } - else - { - AddReplacementError(token.szMethodName, token.pStart); - } - - // unresolved replacement, convert it to a text token - token.type = STENCIL_TEXTTAG; - - // convert all linked tokens to text tokens as well - // this includes: endif, else, endwhile - DWORD dwLoopIndex = token.dwLoopIndex; - while (dwLoopIndex != dwIndex && dwLoopIndex != STENCIL_INVALIDINDEX) - { - m_arrTokens[dwLoopIndex].type = STENCIL_TEXTTAG; - dwLoopIndex = m_arrTokens[dwLoopIndex].dwLoopIndex; - } - } - } - } - - return ParseSuccessful(); - } - - virtual bool Parse(ITagReplacer *pReplacer) throw( ... ) - { - if (ParseReplacements(pReplacer)) - { - return FinishParseReplacements(); - } - return false; - } - - - DWORD ParseReplacement( LPCSTR szTokenStart, - LPCSTR szTokenEnd, - DWORD dwTokenType = STENCIL_REPLACEMENT, - DWORD dwKeywordLen = 0) throw() - { - // hold on to the start and end pointers (before removing curlies and whitespace) - // this is needed so that we can convert the token to a text token if the method - // is not resolved (in FinishParseReplacements) - LPCSTR szStart = szTokenStart; - LPCSTR szEnd = szTokenEnd; - - FindTagArgs(szTokenStart, szTokenEnd, dwKeywordLen); - - char szMethodName[ATL_MAX_METHOD_NAME_LEN+1]; - char szHandlerName[ATL_MAX_HANDLER_NAME_LEN+1]; - - DWORD dwIndex; - //look up the handler name, method name and handler interface - if (HTTP_SUCCESS == GetHandlerAndMethodNames(szTokenStart, szTokenEnd, - szMethodName, ATL_MAX_METHOD_NAME_LEN+1, - szHandlerName, ATL_MAX_HANDLER_NAME_LEN+1)) - dwIndex = AddToken(szStart, szEnd, dwTokenType, - szHandlerName, szMethodName, - STENCIL_INVALIDINDEX, STENCIL_INVALIDINDEX, - 0, STENCIL_BASIC_MAP); - else - dwIndex = STENCIL_INVALIDINDEX; - return dwIndex; - } - - DWORD ParseWhile(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) throw() - { - DWORD dwIndex = ParseReplacement(szTokenStart, szTokenEnd, STENCIL_ITERATORSTART, sizeof("while")-1); - if (dwIndex == STENCIL_INVALIDINDEX) - return dwIndex; - return PushToken(pBlockStack, pdwTop, dwIndex); - } - - DWORD ParseEndWhile(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) throw() - { - DWORD dwTopIndex = CheckTopAndPop(pBlockStack, pdwTop, STENCIL_ITERATORSTART); - if (dwTopIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE, szTokenStart); - return dwTopIndex; - } - - DWORD dwIndex = AddToken(szTokenStart, szTokenEnd, STENCIL_ITERATOREND); - if (dwIndex != STENCIL_INVALIDINDEX) - { - m_arrTokens[dwTopIndex].dwLoopIndex = dwIndex; - m_arrTokens[dwIndex].dwLoopIndex = dwTopIndex; - } - return dwIndex; - } - - DWORD ParseIf(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) throw() - { - DWORD dwIndex = ParseReplacement(szTokenStart, szTokenEnd, STENCIL_CONDITIONALSTART, sizeof("if")-1); - if (dwIndex == STENCIL_INVALIDINDEX) - return dwIndex; - return PushToken(pBlockStack, pdwTop, dwIndex); - } - - DWORD ParseElse(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) throw() - { - DWORD dwTopIndex = CheckTopAndPop(pBlockStack, pdwTop, STENCIL_CONDITIONALSTART); - if (dwTopIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_UNOPENEDBLOCK_ELSE, szTokenStart); - return dwTopIndex; - } - - DWORD dwIndex = AddToken(szTokenStart, szTokenEnd, STENCIL_CONDITIONALELSE); - if (dwIndex != STENCIL_INVALIDINDEX) - { - m_arrTokens[dwTopIndex].dwLoopIndex = dwIndex; - - return PushToken(pBlockStack, pdwTop, dwIndex); - } - return dwIndex; - } - - DWORD ParseEndIf(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) throw() - { - DWORD dwTopIndex = CheckTopAndPop(pBlockStack, pdwTop, STENCIL_CONDITIONALSTART); - if (dwTopIndex == STENCIL_INVALIDINDEX) - { - dwTopIndex = CheckTopAndPop(pBlockStack, pdwTop, STENCIL_CONDITIONALELSE); - if (dwTopIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_UNOPENEDBLOCK_ENDIF, szTokenStart); - return dwTopIndex; - } - } - DWORD dwIndex = AddToken(szTokenStart, szTokenEnd, STENCIL_CONDITIONALEND); - if (dwIndex != STENCIL_INVALIDINDEX) - { - m_arrTokens[dwTopIndex].dwLoopIndex = dwIndex; - } - return dwIndex; - } - - DWORD ParseLocale(LPCSTR szTokenStart, LPCSTR szTokenEnd) throw() - { - LPCSTR szstart = szTokenStart; - LPCSTR szend = szTokenEnd; - LCID locale = 0xFFFFFFFF; - FindTagArgs(szstart, szend, 6); -#ifndef ATL_NO_MLANG - if (isdigit(static_cast(szstart[0]))) - { - locale = (LCID) atoi(szstart); - } - else - { - HRESULT hr; - - CComPtr pML; - hr = pML.CoCreateInstance(__uuidof(CMultiLanguage), NULL, CLSCTX_INPROC_SERVER); - if (FAILED(hr)) - { - ATLTRACE(atlTraceStencil, 0, _T("Couldn't create CMultiLanguage object. check MLANG installation.")); - AddError(IDS_STENCIL_MLANG_COCREATE, szTokenStart); - } - else - { - CStringW str(szstart, (int)((szend-szstart)+1)); - -#ifdef __IMultiLanguage2_INTERFACE_DEFINED__ - - // use IMultiLanguage2 if possible - CComPtr spML2; - hr = pML.QueryInterface(&spML2); - if (FAILED(hr) || !spML2.p) - hr = pML->GetLcidFromRfc1766(&locale, CComBSTR(str)); - else - hr = spML2->GetLcidFromRfc1766(&locale, CComBSTR(str)); - -#else // __IMultiLanguage2_INTERFACE_DEFINED__ - - hr = pML->GetLcidFromRfc1766(&locale, CComBSTR(str)); - -#endif // __IMultiLanguage2_INTERFACE_DEFINED__ - - if (FAILED(hr)) - { - AddError(IDS_STENCIL_MLANG_LCID, szTokenStart); - } - } - if (FAILED(hr)) - locale = 0xFFFFFFFF; - } -#else - locale = (LCID) atoi(szstart); -#endif - - if (m_bUseLocaleACP) - { - TCHAR szACP[7]; - if (GetLocaleInfo(locale, LOCALE_IDEFAULTANSICODEPAGE, szACP, 7) != 0) - { - m_nCodePage = (WORD) _ttoi(szACP); - } - else - { - AddError(IDS_STENCIL_MLANG_GETLOCALE, szTokenStart); - } - } - DWORD dwCurrentTokenIndex = STENCIL_INVALIDINDEX; - if (locale != 0xFFFFFFFF) - dwCurrentTokenIndex = AddToken(NULL, NULL, STENCIL_LOCALE, - NULL, NULL, STENCIL_INVALIDOFFSET, STENCIL_INVALIDOFFSET, locale); - else - return STENCIL_INVALIDINDEX; - return dwCurrentTokenIndex; - } - - DWORD ParseCodepage(LPCSTR szTokenStart, LPCSTR szTokenEnd) throw() - { - LPCSTR szstart = szTokenStart; - LPCSTR szend = szTokenEnd; - WORD nCodePage = 0xFFFF; - - FindTagArgs(szstart, szend, 8); -#ifndef ATL_NO_MLANG - if (isdigit(static_cast(szstart[0]))) - { - nCodePage = (WORD) atoi(szstart); - } - else - { - HRESULT hr; - - CComPtr pML; - hr = pML.CoCreateInstance(__uuidof(CMultiLanguage), NULL, CLSCTX_INPROC_SERVER); - if (FAILED(hr)) - { - ATLTRACE(atlTraceStencil, 0, _T("Couldn't create CMultiLanguage object. check MLANG installation.")); - AddError(IDS_STENCIL_MLANG_COCREATE, szTokenStart); - } - else - { - CStringW str(szstart, (int)((szend-szstart)+1)); - MIMECSETINFO info; - -#ifdef __IMultiLanguage2_INTERFACE_DEFINED__ - - // use IMultiLanguage2 if possible - CComPtr spML2; - hr = pML.QueryInterface(&spML2); - if (FAILED(hr) || !spML2.p) - hr = pML->GetCharsetInfo(CComBSTR(str), &info); - else - hr = spML2->GetCharsetInfo(CComBSTR(str), &info); - -#else // __IMultiLanguage2_INTERFACE_DEFINED__ - - hr = pML->GetCharsetInfo(CComBSTR(str), &info); - -#endif // __IMultiLanguage2_INTERFACE_DEFINED__ - - // for most character sets, uiCodePage and uiInternetEncoding - // are the same. UTF-8 is the exception that we're concerned about. - // for that character set, we want uiInternetEncoding (65001 - UTF-8) - // instead of uiCodePage (1200 - UCS-2) - if (SUCCEEDED(hr)) - { - nCodePage = (WORD) info.uiInternetEncoding; - } - else - { - AddError(IDS_STENCIL_MLANG_GETCHARSET, szTokenStart); - } - } - if (FAILED(hr)) - nCodePage = 0xFFFF; - } -#else - nCodePage = (WORD) atoi(szstart); -#endif - if (nCodePage != 0xFFFF) - m_nCodePage = nCodePage; - m_bUseLocaleACP = FALSE; - - return STENCIL_INVALIDINDEX; - } - - PARSE_TOKEN_RESULT ParseHandler(LPCSTR szTokenStart, LPCSTR szTokenEnd) throw() - { - LPCSTR szstart = szTokenStart; - LPCSTR szend = szTokenEnd; - - if (m_szHandlerName[0] && m_szDllPath[0]) - return RESERVED_TOKEN; // already found the handler and path dll names - - FindTagArgs(szstart, szend, 7); - size_t nlen = (szend-szstart)+1; - char szHandlerDllName[MAX_PATH + ATL_MAX_HANDLER_NAME_LEN + 1]; - if (nlen < MAX_PATH + ATL_MAX_HANDLER_NAME_LEN + 1) - { - Checked::memcpy_s(szHandlerDllName, MAX_PATH + ATL_MAX_HANDLER_NAME_LEN + 1, szstart, szend-szstart+1); - szHandlerDllName[szend-szstart+1] = '\0'; - - DWORD dwDllPathLen = MAX_PATH; - DWORD dwHandlerNameLen = ATL_MAX_HANDLER_NAME_LEN+1; - - if (!_AtlCrackHandler(szHandlerDllName, m_szDllPath, &dwDllPathLen, m_szHandlerName, &dwHandlerNameLen)) - { - AddError(IDS_STENCIL_INVALID_HANDLER, szTokenStart); - return INVALID_TOKEN; - } - } - - return RESERVED_TOKEN; - } - - virtual PARSE_TOKEN_RESULT ParseToken(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) - { - LPCSTR pStart = szTokenStart; - pStart += 2; //skip curlies - pStart = SkipSpace(pStart, m_nCodePage); - DWORD dwLen = (DWORD)(szTokenEnd - szTokenStart); - - DWORD dwIndex = STENCIL_INVALIDINDEX; - PARSE_TOKEN_RESULT ret = RESERVED_TOKEN; - - if (CheckTag("endwhile", 8, pStart, dwLen)) - dwIndex = ParseEndWhile(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - else if (CheckTag("while", 5, pStart, dwLen)) - dwIndex = ParseWhile(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - else if (CheckTag("endif", 5, pStart, dwLen)) - dwIndex = ParseEndIf(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - else if (CheckTag("else", 4, pStart, dwLen)) - dwIndex = ParseElse(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - else if (CheckTag("if", 2, pStart, dwLen)) - dwIndex = ParseIf(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - else if (CheckTag("locale", 6, pStart, dwLen)) - dwIndex = ParseLocale(szTokenStart, szTokenEnd); - else if (CheckTag("handler", 7, pStart, dwLen)) - { - return ParseHandler(szTokenStart, szTokenEnd); - } - else if (CheckTag("codepage", 8, pStart, dwLen)) - { - ParseCodepage(szTokenStart, szTokenEnd); - return RESERVED_TOKEN; - } - else - { - dwIndex = ParseReplacement(szTokenStart, szTokenEnd, STENCIL_REPLACEMENT); - if (dwIndex == STENCIL_INVALIDINDEX) - return INVALID_TOKEN; - ret = NORMAL_TOKEN; - } - - if (dwIndex == STENCIL_INVALIDINDEX) - return INVALID_TOKEN; - return ret; - } - - virtual bool ParseReplacementsFromBuffer(ITagReplacer* pReplacer, LPCSTR pStart, LPCSTR pEnd) - { - LPCSTR szCurr = pStart; - DWORD BlockStack[ATL_MAX_BLOCK_STACK]; - DWORD dwTop = 0; - - m_pReplacer = pReplacer; - - DWORD dwCurrentTokenIndex = 0; - - if (!szCurr) - { - ATLASSERT(FALSE); - AddError(IDS_STENCIL_NULLPARAM, NULL); - return false; - } - - LPCSTR szEnd = pEnd; - if (szEnd <= szCurr) - { - ATLASSERT(FALSE); - AddError(IDS_STENCIL_INVALIDSTRING, NULL); - return true; - } - - while(szCurr < szEnd) - { - //mark the start of this block, then find the end of the block - //the end is denoted by an opening curly - LPCSTR szStart = szCurr; - while (szCurr < szEnd && (*szCurr != '{' || szCurr[1] != '{')) - { - LPSTR szNext = CharNextExA(m_nCodePage, szCurr, 0); - if (szNext == szCurr) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return true; - } - szCurr = szNext; - } - - //special case for the last text block, if there is one - if (szCurr >= szEnd) - { - // add the last token. This is everything after the last - // double curly block, which is text. - dwCurrentTokenIndex = AddToken(szStart, szEnd-1, STENCIL_TEXTTAG); - break; - } - - //if there are any characters between szStart and szCurr inclusive, - //copy them to a text token. - if (szCurr-1 >= szStart) - dwCurrentTokenIndex = AddToken(szStart, szCurr-1, STENCIL_TEXTTAG); - - if (dwCurrentTokenIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, pStart); - return false; - } - - //find the end of the tag - LPSTR szEndTag; - szStart = szCurr; - szCurr += 2; // Skip over the two '{' s - while (szCurr < szEnd) - { - if (szCurr[0] == '}' && szCurr[1] == '}') - break; - else if (szCurr[0] == '{') - break; - - LPSTR szNext = CharNextExA(m_nCodePage, szCurr, 0); - if (szNext == szCurr) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return true; - } - szCurr = szNext; - } - - if (szCurr >= szEnd) - { - AddError(IDS_STENCIL_UNMATCHED_TAG_START, szStart); - if (AddToken(szStart, szCurr-1, STENCIL_TEXTTAG) == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, pStart); - return false; - } - - break; - } - - if (szCurr[0] == '{') - { - if (szCurr[1] != '{') - { - szCurr--; - } - AddError(IDS_STENCIL_MISMATCHED_TAG_START, szStart); - if (AddToken(szStart, szCurr-1, STENCIL_TEXTTAG) == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, pStart); - return false; - } - - continue; - } - - szEndTag = CharNextExA(m_nCodePage, szCurr, 0); - if (szEndTag == szCurr) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return true; - } - - PARSE_TOKEN_RESULT ret = ParseToken(szStart, szEndTag, BlockStack, &dwTop); - - if (ret == INVALID_TOKEN) - { - dwCurrentTokenIndex = AddToken(szStart, szEndTag, STENCIL_TEXTTAG); - if (dwCurrentTokenIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, pStart); - return false; - } - - szCurr = CharNextExA(m_nCodePage, szEndTag, 0); - continue; - } - - szCurr = CharNextExA(m_nCodePage, szEndTag, 0); - if (szEndTag == szCurr) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return true; - } - - if (ret == RESERVED_TOKEN) - { - if (szCurr < szEnd && *szCurr == '\n') - szCurr++; - else if ((szCurr+1 < szEnd && *szCurr == '\r' && *(szCurr+1) == '\n')) - szCurr += 2; - } - } - - return true; - } - - HTTP_CODE GetHandlerAndMethodNames( - __in LPCSTR pStart, - __in LPCSTR pEnd, - __out_ecount_z(nMethodNameLen) LPSTR pszMethodName, - __in size_t nMethodNameLen, - __out_ecount_z(nHandlerNameLen) LPSTR pszHandlerName, - __in size_t nHandlerNameLen) throw() - { - - ATLASSERT(pStart); - ATLASSERT(pEnd); - ATLASSERT(pEnd > pStart); - - if (!pszMethodName || !pszHandlerName || nMethodNameLen < 1 || nHandlerNameLen < 1) - { - ATLASSERT(FALSE); - AddError(IDS_STENCIL_BAD_PARAMETER, pStart); - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - } - - - *pszMethodName = '\0'; - *pszHandlerName = '\0'; - CHAR szMethodString[ATL_MAX_METHOD_NAME_LEN + ATL_MAX_HANDLER_NAME_LEN+1]; - HTTP_CODE hcErr = HTTP_SUCCESS; - // - // copy the method string - // - size_t nMethodLen = (pEnd-pStart)+1; - if (nMethodLen >= (ATL_MAX_METHOD_NAME_LEN + ATL_MAX_HANDLER_NAME_LEN+1)) - { - AddError(IDS_STENCIL_METHODNAME_TOO_LONG, pStart); - return AtlsHttpError(500, ISE_SUBERR_LONGMETHODNAME); - } - - Checked::memcpy_s(szMethodString, ATL_MAX_METHOD_NAME_LEN + ATL_MAX_HANDLER_NAME_LEN+1, pStart, nMethodLen); - szMethodString[nMethodLen] = '\0'; - - // - // now crack the method string and get the handler - // id and function name - // - LPSTR szParen = strchr(szMethodString, '('); - LPSTR szDot = strchr(szMethodString, '.'); - if (szDot && (!szParen || (szDot < szParen))) - { - *szDot = '\0'; - szDot++; - - // copy method name - if (strlen(szDot) < nMethodNameLen) - Checked::strcpy_s(pszMethodName, nMethodNameLen, szDot); - else - { - AddError(IDS_STENCIL_METHODNAME_TOO_LONG, pStart + (szDot - szMethodString)); - hcErr = AtlsHttpError(500, ISE_SUBERR_LONGMETHODNAME); - } - // copy handler name - if (!hcErr) - { - if (strlen(szMethodString) < nHandlerNameLen) - Checked::strcpy_s(pszHandlerName, nHandlerNameLen, szMethodString); - else - { - AddError(IDS_STENCIL_HANDLERNAME_TOO_LONG, pStart); - hcErr = AtlsHttpError(500, ISE_SUBERR_LONGHANDLERNAME); - } - } - } - else - { - // only a method name so just copy it. - if (strlen(szMethodString) < nMethodNameLen) - Checked::strcpy_s(pszMethodName, nMethodNameLen, szMethodString); - else - { - AddError(IDS_STENCIL_METHODNAME_TOO_LONG, pStart); - hcErr = AtlsHttpError(500, ISE_SUBERR_LONGMETHODNAME); - } - } - return hcErr; - } - - virtual HTTP_CODE Render( - ITagReplacer *pReplacer, - IWriteStream *pWriteStream, - CStencilState* pState = NULL) const throw(...) - { - ATLENSURE(pReplacer != NULL); - ATLENSURE(pWriteStream != NULL); - - HTTP_CODE hcErrorCode = HTTP_SUCCESS; - DWORD dwIndex = 0; - DWORD dwArraySize = GetTokenCount(); - - // set up locale info - CSaveThreadLocale lcidSave; - - if (pState) - { - dwIndex = pState->dwIndex; - - // restore the locale if we're restarting rendering - if (pState->locale != CP_ACP) - SetThreadLocale(pState->locale); - } - - pReplacer->SetStream(pWriteStream); - while (dwIndex < dwArraySize) - { - // RenderToken advances dwIndex appropriately for us. - dwIndex = RenderToken(dwIndex, pReplacer, pWriteStream, &hcErrorCode, pState); - - if (dwIndex == STENCIL_INVALIDINDEX || - hcErrorCode != HTTP_SUCCESS) - break; - } - - if (IsAsyncStatus(hcErrorCode)) - { - ATLASSERT( pState != NULL ); // state is required for async - if (pState) - pState->dwIndex = dwIndex; - } - // lcidSave destructor will restore the locale info in case it was changed - - return hcErrorCode; - } - - inline BOOL IsValidIndex(DWORD dwIndex) const throw() - { - if (dwIndex == STENCIL_INVALIDINDEX) - return FALSE; - if (dwIndex < GetTokenCount()) - return TRUE; - else - return FALSE; - } - - virtual DWORD RenderToken( - DWORD dwIndex, - ITagReplacer *pReplacer, - IWriteStream *pWriteStream, - HTTP_CODE *phcErrorCode, - CStencilState* pState = NULL) const throw(...) - { - ATLENSURE(pReplacer != NULL); - ATLENSURE(pWriteStream != NULL); - - const StencilToken* pToken = GetToken(dwIndex); - DWORD dwNextToken = 0; - HTTP_CODE hcErrorCode = HTTP_SUCCESS; - - if (!pToken) - return STENCIL_INVALIDINDEX; - - switch (pToken->type) - { - case STENCIL_TEXTTAG: - { - pWriteStream->WriteStream(pToken->pStart, - (int)((pToken->pEnd-pToken->pStart)+1), NULL); - dwNextToken = dwIndex+1; - } - break; - case STENCIL_ITERATORSTART: - { - HTTP_CODE hcErr = STENCIL_SUCCESS; - -#ifdef ATL_DEBUG_STENCILS - // A 'while' token has to at least be followed by an endwhile! - if (!IsValidIndex(dwIndex+1)) - { - // This should have been caught at parse time - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_INVALIDINDEX); - ATLASSERT(FALSE); - break; - } - - // End of loop should be valid - if (!IsValidIndex(pToken->dwLoopIndex)) - { - // This should have been caught at parse time - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_MISMATCHWHILE); - ATLASSERT(FALSE); - break; - } - - if (pToken->dwFnOffset == STENCIL_INVALIDOFFSET) - { - // This should have been caught at parse time - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_INVALIDFUNCOFFSET); - ATLASSERT(FALSE); - break; - } -#endif // ATL_DEBUG_STENCILS - - DWORD dwLoopIndex = pToken->dwLoopIndex; // points to the end of the loop - - // Call the replacement method - // if it returns HTTP_SUCCESS, enter the loop - // if it returns HTTP_S_FALSE, terminate the loop - hcErr = pReplacer->RenderReplacement(pToken->dwFnOffset, - pToken->dwObjOffset, pToken->dwMap, (void *) pToken->dwData); - - if (hcErr == HTTP_SUCCESS) - { - dwNextToken = dwIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - else if (hcErr == HTTP_S_FALSE) - { - dwNextToken = dwLoopIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - else - { - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = hcErr; - break; - } - } - break; - case STENCIL_REPLACEMENT: - { -#ifdef ATL_DEBUG_STENCILS - if (pToken->dwFnOffset == STENCIL_INVALIDOFFSET) - { - // This should have been caught at parse time - ATLASSERT(FALSE); - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_INVALIDFUNCOFFSET); - break; - } -#endif // ATL_DEBUG_STENCILS - - hcErrorCode = pReplacer->RenderReplacement(pToken->dwFnOffset, - pToken->dwObjOffset, pToken->dwMap, (void *)pToken->dwData); - - if (IsAsyncContinueStatus(hcErrorCode)) - dwNextToken = dwIndex; // call the tag again after we get back - else - { - dwNextToken = dwIndex + 1; - - // when returned from a handler, these indicate that the handler is done - // and that we should move on to the next handler when called back - if (hcErrorCode == HTTP_SUCCESS_ASYNC_DONE) - hcErrorCode = HTTP_SUCCESS_ASYNC; - else if (hcErrorCode == HTTP_SUCCESS_ASYNC_NOFLUSH_DONE) - hcErrorCode = HTTP_SUCCESS_ASYNC_NOFLUSH; - } - } - break; - case STENCIL_ITERATOREND: - { - dwNextToken = pToken->dwLoopIndex; - hcErrorCode = HTTP_SUCCESS; - ATLASSERT(GetToken(dwNextToken)->type == STENCIL_ITERATORSTART); - } - break; - case STENCIL_CONDITIONALSTART: - { -#ifdef ATL_DEBUG_STENCILS - if (pToken->type == STENCIL_CONDITIONALSTART && pToken->dwFnOffset == STENCIL_INVALIDOFFSET) - { - // This should have been caught at parse time - ATLASSERT(FALSE); - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_INVALIDFUNCOFFSET); - break; - } - - if (pToken->dwLoopIndex == STENCIL_INVALIDINDEX) - { - // This should have been caught at parse time - ATLASSERT(FALSE); - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_MISMATCHIF); - break; - } -#endif // ATL_DEBUG_STENCILS - - DWORD dwLoopIndex = pToken->dwLoopIndex; // points to the end of the loop - - HTTP_CODE hcErr; - // Call the replacement method. - // If it returns HTTP_SUCCESS, we render everything up to - // the end of the conditional. - // if it returns HTTP_S_FALSE, the condition is not met and we - // render the else part if it exists or jump past the endif otherwise - hcErr = pReplacer->RenderReplacement(pToken->dwFnOffset, - pToken->dwObjOffset, pToken->dwMap, (void *)pToken->dwData); - - if (hcErr == HTTP_SUCCESS) - { - dwNextToken = dwIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - else if (hcErr == HTTP_S_FALSE) - { - dwNextToken = dwLoopIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - else - { - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = hcErr; - break; - } - } - break; - case STENCIL_CONDITIONALELSE: - { -#ifdef ATL_DEBUG_STENCILS - if (pToken->dwLoopIndex == STENCIL_INVALIDINDEX) - { - // This should have been caught at parse time - ATLASSERT(FALSE); - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_MISMATCHIF); - break; - } -#endif // ATL_DEBUG_STENCILS - - dwNextToken = pToken->dwLoopIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - break; - case STENCIL_CONDITIONALEND: - { - dwNextToken = dwIndex+1; - hcErrorCode = HTTP_SUCCESS; - } - break; - case STENCIL_LOCALE: - { - if (pState) - { - pState->locale = (LCID) pToken->dwData; - } - SetThreadLocale((LCID) pToken->dwData); - dwNextToken = dwIndex + 1; - } - break; - default: - { - ATLASSERT(FALSE); - dwNextToken = STENCIL_INVALIDINDEX; - hcErrorCode = AtlsHttpError(500, ISE_SUBERR_STENCIL_UNEXPECTEDTYPE); - break; - } - } - - ATLASSERT(dwNextToken != dwIndex || IsAsyncContinueStatus(hcErrorCode)); - - if (phcErrorCode) - *phcErrorCode = hcErrorCode; - - return dwNextToken; - } - - DWORD GetTokenCount() const throw() - { - return (DWORD) m_arrTokens.GetCount(); - } - - const StencilToken* GetToken(DWORD dwIndex) const throw() - { - return &(m_arrTokens[dwIndex]); - } - - StencilToken* GetToken(DWORD dwIndex) throw() - { - return &(m_arrTokens[dwIndex]); - } - - LPCSTR GetBufferStart() const throw() - { - return m_pBufferStart; - } - - LPCSTR GetBufferEnd() const throw() - { - return m_pBufferEnd; - } - - WORD GetCodePage() const throw() - { - return m_nCodePage; - } - - // IMemoryCacheClient - STDMETHOD(QueryInterface)(REFIID riid, void **ppv) - { - if (!ppv) - return E_POINTER; - - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IMemoryCacheClient))) - { - *ppv = static_cast(this); - return S_OK; - } - - *ppv = NULL; - return E_NOINTERFACE; - } - - STDMETHOD_(ULONG, AddRef)() - { - return 1; - } - - STDMETHOD_(ULONG, Release)() - { - return 1; - } - - STDMETHOD(Free)(const void *pData) - { - if (!pData) - return E_POINTER; - - ATLASSERT(*((void **) pData) == static_cast(this)); - - delete this; - - return S_OK; - } -}; // class CStencil - -struct StencilIncludeInfo -{ -public: - CHAR m_szQueryString[ATL_URL_MAX_URL_LENGTH+1]; - CHAR m_szFileName[MAX_PATH]; -}; - - -class CIncludeServerContext : - public CComObjectRootEx, - public CWrappedServerContext -{ -public: - BEGIN_COM_MAP(CIncludeServerContext) - COM_INTERFACE_ENTRY(IHttpServerContext) - END_COM_MAP() - - IWriteStream * m_pStream; - const StencilIncludeInfo * m_pIncludeInfo; - - CIncludeServerContext() throw() - { - m_pStream = NULL; - m_pIncludeInfo = NULL; - } - - void Initialize( - IWriteStream *pStream, - IHttpServerContext* pServerContext, - const StencilIncludeInfo * pIncludeInfo) throw() - { - ATLASSERT(pStream != NULL); - ATLASSERT(pServerContext != NULL); - ATLASSERT(pIncludeInfo != NULL); - m_pStream = pStream; - m_spParent = pServerContext; - m_pIncludeInfo = pIncludeInfo; - } - - void Initialize(CIncludeServerContext *pOtherContext) - { - ATLENSURE(pOtherContext != NULL); - m_pStream = pOtherContext->m_pStream; - m_spParent = pOtherContext->m_spParent; - m_pIncludeInfo = pOtherContext->m_pIncludeInfo; - } - - LPCSTR GetRequestMethod() - { - return "GET"; - } - - LPCSTR GetQueryString() - { - ATLASSUME(m_pIncludeInfo != NULL); - return m_pIncludeInfo->m_szQueryString; - } - - LPCSTR GetPathTranslated() - { - ATLASSUME(m_pIncludeInfo != NULL); - return m_pIncludeInfo->m_szFileName; - } - - LPCSTR GetScriptPathTranslated() - { - ATLASSUME(m_pIncludeInfo != NULL); - return m_pIncludeInfo->m_szFileName; - } - - DWORD GetTotalBytes() - { - return 0; - } - - DWORD GetAvailableBytes() - { - return 0; - } - - BYTE *GetAvailableData() - { - return NULL; - } - - LPCSTR GetContentType() - { - return 0; - } - - BOOL WriteClient(void *pvBuffer, DWORD *pdwBytes) - { - ATLASSUME(m_pStream != NULL); - ATLENSURE(pvBuffer != NULL); - ATLENSURE(pdwBytes != NULL); - - HRESULT hr = S_OK; - _ATLTRY - { - hr = m_pStream->WriteStream((LPCSTR) pvBuffer, *pdwBytes, pdwBytes); - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - - return SUCCEEDED(hr); - } - - BOOL ReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - return FALSE; - } - - BOOL AsyncReadClient(void * /*pvBuffer*/, DWORD * /*pdwSize*/) - { - return FALSE; - } - - BOOL SendRedirectResponse(LPCSTR /*pszRedirectURL*/) - { - return FALSE; - } - - BOOL SendResponseHeader( - LPCSTR /*pszHeader*/, - LPCSTR /*pszStatusCode*/, - BOOL /*fKeepConn*/) - { - return TRUE; - } - - BOOL DoneWithSession(DWORD /*dwHttpStatusCode*/) - { - return TRUE; - } - - BOOL RequestIOCompletion(PFN_HSE_IO_COMPLETION /*pfn*/, DWORD * /*pdwContext*/) - { - return FALSE; - } -}; // class CIncludeServerContext - -class CIDServerContext : - public CComObjectRootEx, - public CWrappedServerContext -{ -public: - CHttpResponse *m_pResponse; - CHttpRequest *m_pRequest; - - BEGIN_COM_MAP(CIDServerContext) - COM_INTERFACE_ENTRY(IHttpServerContext) - END_COM_MAP() - - CIDServerContext() throw() - : m_pResponse(NULL), m_pRequest(NULL) - { - } - - BOOL Initialize( - CHttpResponse *pResponse, - CHttpRequest *pRequest) throw() - { - ATLASSERT(pResponse != NULL); - ATLASSERT(pRequest != NULL); - m_pResponse = pResponse; - m_pRequest = pRequest; - if(!m_pRequest) - { - return FALSE; - } - - HRESULT hr = m_pRequest->GetServerContext(&m_spParent); - return (SUCCEEDED(hr)); - } - - LPCSTR GetRequestMethod() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetMethodString(); - } - - LPCSTR GetQueryString() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetQueryString(); - } - - LPCSTR GetPathInfo() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetPathInfo(); - } - - LPCSTR GetPathTranslated() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetPathTranslated(); - } - - DWORD GetTotalBytes() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetTotalBytes(); - } - - DWORD GetAvailableBytes() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetAvailableBytes(); - } - - BYTE *GetAvailableData() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetAvailableData(); - } - - LPCSTR GetContentType() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetContentType(); - } - - LPCSTR GetScriptPathTranslated() - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->GetScriptPathTranslated(); - } - - BOOL WriteClient(void *pvBuffer, DWORD *pdwBytes) - { - ATLASSUME(m_pResponse != NULL); - return m_pResponse->WriteLen((LPCSTR)pvBuffer, *pdwBytes); - } - - BOOL ReadClient(void *pvBuffer, DWORD *pdwSize) - { - ATLASSUME(m_pRequest != NULL); - return m_pRequest->ReadData((LPSTR)pvBuffer, pdwSize); - } - - BOOL SendRedirectResponse(LPCSTR pszRedirectURL) - { - ATLASSUME(m_pResponse != NULL); - return m_pResponse->Redirect(pszRedirectURL); - } - - BOOL TransmitFile( - HANDLE hFile, - PFN_HSE_IO_COMPLETION pfn, - void *pContext, - LPCSTR szStatusCode, - DWORD dwBytesToWrite, - DWORD dwOffset, - void *pvHead, - DWORD dwHeadLen, - void *pvTail, - DWORD dwTailLen, - DWORD dwFlags) - { - ATLASSUME(m_pResponse != NULL); - ATLASSUME(m_spParent != NULL); - - m_pResponse->Flush(); - return m_spParent->TransmitFile(hFile, pfn, pContext, szStatusCode, - dwBytesToWrite, dwOffset, pvHead, dwHeadLen, pvTail, dwTailLen, dwFlags); - } - -}; // class CIDServerContext - -// -// CHtmlStencil -// CHtmlStencil is a specialization of CStencil. CHtmlStencil adds the following -// capabilities to CStencil: -// -// Support for rendering {{include }} tags -// The {{include }} tags specify another stencil to be included in-place during -// stencil rendering. The {{include }} tag takes a single parameter which is the -// URL of the stencil to include. That URL can optionally include parameters. -// An example: -// {{include mystencil.srf?param1=value1}} -// -// We also grab the handler name and the name of any subhandlers. The syntax for the -// handler specification is: -// {{handler MyDynamicHandler.dll/Default}} -// which would cause the MyDynamicHandler.dll to be loaded. Once loaded, the stencil -// processor will ask for the IReplacementHandler interface of the object named "Default". -// -// Additional handlers can be specified after the default handler. An example of an -// additional handler would be: -// {{subhandler OtherHandler MyOtherHandler.dll/Default}} -// would cause the MyOtherHandler.dll to be loaded. Once loaded, the stencil processor will -// ask for the IReplacementHandler interface of the object named "Default" and use it in -// processing the stencil anywhere it sees a stencil tag of the form -// {{OtherHandler.RenderReplacement}} - -struct CStringPair -{ - typedef CFixedStringT PathStrType; - typedef CFixedStringT HdlrNameStrType; - PathStrType strDllPath; - HdlrNameStrType strHandlerName; - - CStringPair()throw() - { - } - - CStringPair(PathStrType &strDllPath_, HdlrNameStrType &strHandlerName_) throw(...) - :strDllPath(strDllPath_), strHandlerName(strHandlerName_) - { - } - - CStringPair(CStringA &strDllPath_, CStringA &strHandlerName_) throw(...) - :strDllPath(strDllPath_), strHandlerName(strHandlerName_) - { - } -}; - -class CStringPairElementTraits : - public CElementTraitsBase< CStringPair > -{ -private: - - static ULONG HashStr( ULONG nHash, CStringElementTraits::INARGTYPE str ) - { - ATLENSURE( str != NULL ); - const CStringA::XCHAR* pch = str; - while( *pch != 0 ) - { - nHash = (nHash<<5)+nHash+(*pch); - pch++; - } - - return( nHash ); - } - -public: - static ULONG Hash( INARGTYPE pair ) throw() - { - ULONG nHash = HashStr(0, pair.strDllPath); - return HashStr(nHash, pair.strHandlerName); - } - - static bool CompareElements( INARGTYPE pair1, INARGTYPE pair2 ) throw() - { - return( (pair1.strDllPath == pair2.strDllPath) && (pair1.strHandlerName == pair2.strHandlerName) ); - } - - static int CompareElementsOrdered( INARGTYPE pair1, INARGTYPE pair2 ) throw() - { - return( pair1.strDllPath.Compare( pair2.strDllPath ) ); - } -}; - -class CHtmlStencil : public CStencil -{ -private: - - ATL_NOINLINE HTTP_CODE RenderInclude( - ITagReplacer *pReplacer, - const StencilToken *pToken, - IWriteStream *pWriteStream, - CStencilState *pState) const - { - ATLASSUME(m_spServiceProvider); - CComPtr spServerContext; - CComPtr spLookup; - if (FAILED(pReplacer->GetContext(__uuidof(IHttpServerContext), (VOID**) &spServerContext))) - { - return AtlsHttpError(500, 0); - } - if (FAILED(pReplacer->GetContext(__uuidof(IHttpRequestLookup), (VOID**) &spLookup))) - { - return AtlsHttpError(500, 0); - } - return RenderInclude(m_spServiceProvider, pWriteStream, - (StencilIncludeInfo *)pToken->dwData, spServerContext, spLookup, - pState); - } - - ATL_NOINLINE HTTP_CODE NoCachePage(ITagReplacer *pReplacer) const - { - CComPtr spContext; - HRESULT hr = pReplacer->GetContext(__uuidof(IHttpServerContext), (void **)&spContext); - if (hr == S_OK && spContext) - { - CComQIPtr spControl; - spControl = spContext; - if (spControl) - spControl->Cache(FALSE); - } - return HTTP_SUCCESS; - } - - - // CAllocIncludeAsyncContext is an unsupported implementation detail of RenderInclude - class CAllocIncludeAsyncContext : - public CAllocContextBase - { - public: - CAllocIncludeAsyncContext(CIncludeServerContext *pBase) : - m_pBase(pBase) - { - - } - HTTP_CODE Alloc(IHttpServerContext **ppNewContext) - { - ATLASSUME(m_pBase); - if (!ppNewContext) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - *ppNewContext = NULL; - CComObjectNoLock* pNewServerContext = NULL; - ATLTRY(pNewServerContext = new CComObjectNoLock); - if (pNewServerContext == NULL) - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); - pNewServerContext->Initialize(m_pBase); - pNewServerContext->AddRef(); - *ppNewContext = pNewServerContext; - return HTTP_SUCCESS; - } - - private: - CIncludeServerContext *m_pBase; - }; // CAllocIncludeAsyncContext - - - ATL_NOINLINE HTTP_CODE RenderInclude( - IServiceProvider *pServiceProvider, - IWriteStream *pWriteStream, - const StencilIncludeInfo *pIncludeInfo, - IHttpServerContext *pServerContext, - IHttpRequestLookup *pLookup, - CStencilState* pState = NULL) const throw(...) - { - CComObjectStackEx serverContext; - serverContext.Initialize(pWriteStream, pServerContext, pIncludeInfo); - CAllocIncludeAsyncContext AsyncAllocObj(&serverContext); - return _AtlRenderInclude(static_cast(&serverContext), - pIncludeInfo->m_szFileName, - pIncludeInfo->m_szQueryString, - GetCodePage(), - &AsyncAllocObj, - pServiceProvider, - pLookup, - pState); - - } - -protected: - CAtlMap, CStringPairElementTraits > m_arrExtraHandlers; - CHAR m_szBaseDir[MAX_PATH]; - CComPtr m_spServiceProvider; - CComPtr m_spExtension; - CComPtr m_spStencilCache; - CComPtr m_spDllCache; - -public: - typedef CAtlMap, CStringPairElementTraits > mapType; - typedef CStencil baseType; - - CHtmlStencil(IAtlMemMgr *pMemMgr=NULL) throw() : - CStencil(pMemMgr) - { - - } - - void Initialize(IServiceProvider *pProvider) throw(...) - { - ATLENSURE(pProvider); - if (m_spServiceProvider) - m_spServiceProvider.Release(); - - m_spServiceProvider = pProvider; - if (!m_spDllCache) - pProvider->QueryService(__uuidof(IDllCache), __uuidof(IDllCache), (void **) &m_spDllCache); - - if (!m_spExtension) - pProvider->QueryInterface(__uuidof(IIsapiExtension), (void **) &m_spExtension); - } - - BOOL GetIncludeInfo(LPCSTR szParamBegin, LPCSTR szParamEnd, StencilIncludeInfo *pInfo) const - { - ATLENSURE(szParamBegin != NULL); - ATLENSURE(szParamEnd != NULL); - ATLENSURE(pInfo != NULL); - - LPCSTR szQueryBegin = szParamBegin; - - while (*szQueryBegin && *szQueryBegin != '?' && *szQueryBegin != '}') - { - LPSTR szNext = CharNextExA(GetCodePage(), szQueryBegin, 0); - if (szNext == szQueryBegin) - { - return FALSE; - } - - szQueryBegin = szNext; - } - - CFixedStringT strPath; - - _ATLTRY - { - DWORD dwPrefixLen = 0; - if (*szParamBegin == '"') - { - szParamBegin++; - } - if (!IsFullPathA(szParamBegin)) - { - if (*szParamBegin != '\\') - { - strPath = m_szBaseDir; - } - else - { - LPCSTR szBackslash = strchr(m_szBaseDir, '\\'); - if (szBackslash) - { -#pragma warning(push) -#pragma warning(disable: 6204) - /* prefast noise VSW 492749 */ - strPath.SetString(m_szBaseDir, (int)(szBackslash-m_szBaseDir)); -#pragma warning(pop) - } - else - { - strPath = m_szBaseDir; - } - } - dwPrefixLen = strPath.GetLength(); - } - - if (*szQueryBegin=='?') - { - size_t nMinus = (*(szQueryBegin-1) == '"') ? 1 : 0; - strPath.Append(szParamBegin, (int)(szQueryBegin-szParamBegin-nMinus)); - if ((szParamEnd-szQueryBegin) > ATL_URL_MAX_PATH_LENGTH || ((szParamEnd - szQueryBegin) < 0)) - { - // query string is too long - return FALSE; - } - Checked::memcpy_s(pInfo->m_szQueryString, ATL_URL_MAX_URL_LENGTH+1, szQueryBegin + 1, szParamEnd - szQueryBegin); - pInfo->m_szQueryString[szParamEnd - szQueryBegin] = '\0'; - } - else - { - pInfo->m_szQueryString[0] = '\0'; - size_t nAdd = (*szParamEnd == '"') ? 0 : 1; - strPath.Append(szParamBegin, (int)(szParamEnd - szParamBegin + nAdd)); - } - } - _ATLCATCHALL() - { - // out of memory - return FALSE; - } - - if (strPath.GetLength() > MAX_PATH-1) - { - // path is too long - return FALSE; - } - - // strPath is <= MAX_PATH-1 - return PathCanonicalizeA(pInfo->m_szFileName, strPath); - } - - DWORD ParseInclude(LPCSTR szTokenStart, LPCSTR szTokenEnd) throw(...) - { - ATLENSURE(szTokenStart != NULL); - ATLENSURE(szTokenEnd != NULL); - - LPCSTR szStart = szTokenStart; - LPCSTR szEnd = szTokenEnd; - - FindTagArgs(szStart, szEnd, 7); - - CFixedStringT strFileNameRelative; - CFixedStringT strFileName; - - _ATLTRY - { - strFileNameRelative.SetString(szStart, (int)(szEnd-szStart + 1)); - - if (!IsFullPathA(strFileNameRelative)) - { - CFixedStringT strTemp; - if (*((LPCSTR)strFileNameRelative) != '\\') - { - strTemp = m_szBaseDir; - } - else - { - LPCSTR szBackslash = strchr(m_szBaseDir, '\\'); - if (szBackslash) - { -#pragma warning(push) -#pragma warning(disable: 6204) -#pragma warning(disable: 6535) - /* prefast noise VSW 492749 */ - /* prefast noise VSW 493256 */ - strTemp.SetString(m_szBaseDir, (int)(szBackslash-m_szBaseDir)); -#pragma warning(pop) - } - else - { - strTemp = m_szBaseDir; - } - } - - strTemp.Append(strFileNameRelative, strFileNameRelative.GetLength()); - CFixedStringT strConv = (LPCTSTR) CA2CT(strTemp); - LPTSTR szFileBuf = strFileName.GetBuffer(strConv.GetLength()+1); - if (szFileBuf == NULL) - { - AddError(IDS_STENCIL_OUTOFMEMORY, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - if (!PathCanonicalize(szFileBuf, strConv)) - { - return STENCIL_INVALIDINDEX; - } - - strFileName.ReleaseBuffer(); - } - else - { - strFileName = CA2CTEX(strFileNameRelative); - } - } - _ATLCATCHALL() - { - AddError(IDS_STENCIL_OUTOFMEMORY, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - LPCTSTR szFileName = strFileName; - - LPCTSTR szDot = NULL; - LPCTSTR szExtra = _tcschr(szFileName, '?'); - if (!szExtra) - { - szExtra = _tcschr(szFileName, '#'); - if (!szExtra) - { - szDot = _tcsrchr(szFileName, '.'); - } - } - - if (szExtra != NULL) - { - // there is some extra information - LPCTSTR szDotTmp = szFileName; - do - { - szDot = szDotTmp; - szDotTmp = _tcschr(szDotTmp+1, '.'); - } while (szDotTmp && szDotTmp < szExtra); - } - - if (!szDot || *szDot != '.') - { - AddError(IDS_STENCIL_UNEXPECTED, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - LPCTSTR szExtEnd = szDot; - - while (true) - { - szExtEnd++; - if (!*szExtEnd || *szExtEnd == '/' || *szExtEnd == '\\' || *szExtEnd == '?' || *szExtEnd == '#' || *szExtEnd == '"') - break; - } - - if (szDot && (size_t)(szExtEnd-szDot) == _tcslen(c_tAtlDLLExtension) && - !_tcsnicmp(szDot, c_tAtlDLLExtension, _tcslen(c_tAtlDLLExtension))) - { - // Do .dll stuff - DWORD dwIndex = AddToken(szStart, szEnd, STENCIL_STENCILINCLUDE); - if (dwIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - StencilIncludeInfo *pInfo = (StencilIncludeInfo *)m_pMemMgr->Allocate(sizeof(StencilIncludeInfo)); - if (!pInfo) - { - return STENCIL_INVALIDINDEX; - } - - if (!GetIncludeInfo(szStart, szEnd, pInfo)) - { - return STENCIL_INVALIDINDEX; - } - - GetToken(dwIndex)->dwData = (DWORD_PTR) pInfo; - return dwIndex; - } - else if (szDot && (size_t)(szExtEnd-szDot) == _tcslen(c_tAtlSRFExtension) && - !_tcsnicmp(szDot, c_tAtlSRFExtension, _tcslen(c_tAtlSRFExtension))) - { - // Do .srf stuff - DWORD dwIndex = AddToken(szStart, szEnd, STENCIL_STENCILINCLUDE); - if (dwIndex == STENCIL_INVALIDINDEX) - { - AddError(IDS_STENCIL_OUTOFMEMORY, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - StencilIncludeInfo *pInfo = (StencilIncludeInfo *)m_pMemMgr->Allocate(sizeof(StencilIncludeInfo)); - if (!pInfo) - { - return STENCIL_INVALIDINDEX; - } - - if (!GetIncludeInfo(szStart, szEnd, pInfo)) - { - return STENCIL_INVALIDINDEX; - } - - GetToken(dwIndex)->dwData = (DWORD_PTR) pInfo; - return dwIndex; - } - else - { - // Assume static content - CAtlFile file; - - HRESULT hr = file.Create(szFileName, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING); - if (FAILED(hr) || GetFileType(file) != FILE_TYPE_DISK) - { - if (FAILED(hr)) - { - AddError(IDS_STENCIL_INCLUDE_ERROR, szTokenStart); - } - else - { - AddError(IDS_STENCIL_INCLUDE_INVALID, szTokenStart); - } - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - CAutoVectorPtr szBufferStart; - LPSTR szBufferEnd = NULL; - ULONGLONG dwLen = 0; - if (FAILED(file.GetSize(dwLen))) - { - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - if (!szBufferStart.Allocate((size_t) dwLen)) - { - AddError(IDS_STENCIL_OUTOFMEMORY, szTokenStart); - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - DWORD dwRead; - if (FAILED(file.Read(szBufferStart, (DWORD) dwLen, dwRead))) - { - return AddToken(szTokenStart, szTokenEnd, STENCIL_TEXTTAG); - } - - szBufferEnd = szBufferStart + dwRead-1; - - DWORD dwIndex = AddToken(szBufferStart, szBufferEnd, STENCIL_STATICINCLUDE); - if (dwIndex != STENCIL_INVALIDINDEX) - { - GetToken(dwIndex)->bDynamicAlloc = TRUE; - szBufferStart.Detach(); - } - - return dwIndex; - } - } - - PARSE_TOKEN_RESULT ParseSubhandler(LPCSTR szTokenStart, LPCSTR szTokenEnd) throw() - { - ATLASSERT(szTokenStart != NULL); - ATLASSERT(szTokenEnd != NULL); - - LPCSTR szStart = szTokenStart; - LPCSTR szEnd = szTokenEnd; - - // move to the start of the arguments - // (the first char past 'subhandler' - FindTagArgs(szStart, szEnd, 10); - - // skip any space to bring us to the start - // of the id for the subhandler. - szStart = SkipSpace(szStart, GetCodePage()); - - // id names cannot contain spaces. Mark the - // beginning and end if the subhandler id - LPCSTR szIdStart = szStart; - while (!isspace(static_cast(*szStart)) && *szStart != '}') - { - if (!isalnum(static_cast(*szStart))) - { - // id names can only contain alphanumeric characters - return INVALID_TOKEN; - } - - LPSTR szNext = CharNextExA(GetCodePage(), szStart, 0); - if (szNext == szStart) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return INVALID_TOKEN; - } - szStart = szNext; - } - LPCSTR szIdEnd = szStart; - - // skip space to bring us to the beginning of the - // the dllpath/handlername - szStart = SkipSpace(szStart, GetCodePage()); - - // everything up to the end if the tag is - // part of the dllpath/handlername - LPCSTR szHandlerStart = szStart; - while (*szStart != '}') - { - LPCSTR szNext = CharNextExA(GetCodePage(), szStart, 0); - if (szNext == szStart) - { - // embedded null - AddError(IDS_STENCIL_EMBEDDED_NULL, NULL); - return INVALID_TOKEN; - } - szStart = szNext; - } - LPCSTR szHandlerEnd = szStart; - - _ATLTRY - { - CStringPair::HdlrNameStrType strName(szIdStart, (int)(szIdEnd-szIdStart)); - CStringPair::PathStrType strPath(szHandlerStart, (int)(szHandlerEnd-szHandlerStart)); - - CStringPair::PathStrType strDllPath; - CStringPair::HdlrNameStrType strHandlerName; - DWORD dwDllPathLen = MAX_PATH; - DWORD dwHandlerNameLen = ATL_MAX_HANDLER_NAME_LEN+1; - - LPSTR szDllPath = strDllPath.GetBuffer(dwDllPathLen); - LPSTR szHandlerName = strHandlerName.GetBuffer(dwHandlerNameLen); - - if (!_AtlCrackHandler(strPath, szDllPath, &dwDllPathLen, szHandlerName, &dwHandlerNameLen)) - { - strDllPath.ReleaseBuffer(); - strHandlerName.ReleaseBuffer(); - AddError(IDS_STENCIL_INVALID_SUBHANDLER, szTokenStart); - return INVALID_TOKEN; - } - - strDllPath.ReleaseBuffer(dwDllPathLen); - strHandlerName.ReleaseBuffer(dwHandlerNameLen); - - m_arrExtraHandlers.SetAt(strName, CStringPair(strDllPath, strHandlerName)); - } - _ATLCATCHALL() - { - AddError(IDS_STENCIL_OUTOFMEMORY, NULL); - return INVALID_TOKEN; - } - return RESERVED_TOKEN; - } - - virtual PARSE_TOKEN_RESULT ParseToken(LPCSTR szTokenStart, LPCSTR szTokenEnd, DWORD *pBlockStack, DWORD *pdwTop) - { - ATLASSERT(szTokenStart != NULL); - ATLASSERT(szTokenEnd != NULL); - - LPCSTR pStart = szTokenStart; - pStart += 2; //skip curlies - pStart = SkipSpace(pStart, GetCodePage()); - DWORD dwLen = (DWORD)(szTokenEnd - szTokenStart); - - DWORD dwIndex = STENCIL_INVALIDINDEX; - - if (CheckTag("include", sizeof("include")-1, pStart, dwLen)) - { - dwIndex = ParseInclude(szTokenStart, szTokenEnd); - } - else if (dwLen > 3 && !memcmp("!--", pStart, 3)) - { - return RESERVED_TOKEN; - } - else if (dwLen > 2 && !memcmp("//", pStart, 2)) - { - return RESERVED_TOKEN; - } - else if (CheckTag("subhandler", sizeof("subhandler")-1, pStart, dwLen)) - { - return ParseSubhandler(szTokenStart, szTokenEnd); - } - else - { - return CStencil::ParseToken(szTokenStart, szTokenEnd, pBlockStack, pdwTop); - } - if (dwIndex == STENCIL_INVALIDINDEX) - { - return INVALID_TOKEN; - } - return RESERVED_TOKEN; - } - - mapType* GetExtraHandlers() throw() - { - return &m_arrExtraHandlers; - } - - BOOL SetBaseDirFromFile(LPCSTR szBaseDir) - { - if (!SafeStringCopy(m_szBaseDir, szBaseDir)) - { - return FALSE; - } - - LPSTR szSlash = strrchr(m_szBaseDir, '\\'); - if (szSlash) - { - szSlash++; - *szSlash = '\0'; - } - else - { - *m_szBaseDir = '\0'; - } - - return TRUE; - } - - LPCSTR GetBaseDir() - { - return m_szBaseDir; - } - - DWORD RenderToken( - DWORD dwIndex, - ITagReplacer* pReplacer, - IWriteStream *pWriteStream, - HTTP_CODE *phcErrorCode, - CStencilState* pState = NULL) const throw(...) - { - DWORD dwNextToken = STENCIL_INVALIDINDEX; - HTTP_CODE hcErrorCode = HTTP_SUCCESS; - const StencilToken* pToken = GetToken(dwIndex); - if (pToken) - { - if (pToken->type == STENCIL_STENCILINCLUDE) - { - hcErrorCode = RenderInclude(pReplacer, pToken, pWriteStream, pState); - if (hcErrorCode == HTTP_SUCCESS || IsAsyncDoneStatus(hcErrorCode)) - { - dwNextToken = dwIndex+1; - } - else if (IsAsyncContinueStatus(hcErrorCode)) - { - dwNextToken = dwIndex; - } - } - else if (pToken->type == STENCIL_STATICINCLUDE) - { - pWriteStream->WriteStream(pToken->pStart, - (int)((pToken->pEnd-pToken->pStart)+1), NULL); - dwNextToken = dwIndex+1; - } - else - { - dwNextToken = baseType::RenderToken(dwIndex, pReplacer, - pWriteStream, &hcErrorCode, pState); - } - } - - if (hcErrorCode == HTTP_SUCCESS_NO_CACHE) - { - hcErrorCode = NoCachePage(pReplacer); - } - - if (phcErrorCode) - { - *phcErrorCode = hcErrorCode; - } - return dwNextToken; - } -}; // class CHtmlStencil - - -__declspec(selectany) CCRTHeap CStencil::m_crtHeap; - -// -// CHtmlTagReplacer -// This class manages CStencil based objects for HTTP requests. This class will retrieve -// CStencil based objects from the stencil cache, store CStencil based objects in the -// stencil cache and allocate and initialize CStencil based objects on a per reqeust -// basis. Typically, one instance of this class is created for each HTTP request. The -// instance is destroyed once the request has been completed. -template -class CHtmlTagReplacer : - public ITagReplacerImpl -{ -protected: - typedef StencilType StencilType; - - CSimpleArray m_hInstHandlers; - typedef CAtlMap > mapType; - mapType m_Handlers; - StencilType *m_pLoadedStencil; - WORD m_nCodePage; - CComPtr m_spStencilCache; - - AtlServerRequest m_RequestInfo; - -public: - // public members - - CHtmlTagReplacer() throw() : - m_pLoadedStencil(NULL) - { - memset(&m_RequestInfo, 0x00, sizeof(m_RequestInfo)); - m_nCodePage = CP_THREAD_ACP; - } - - ~CHtmlTagReplacer() throw() - { - // you should call FreeHandlers before - // the object is destructed - ATLASSUME(m_hInstHandlers.GetSize() == 0); - } - - HTTP_CODE Initialize(AtlServerRequest *pRequestInfo, IHttpServerContext *pSafeSrvCtx=NULL) throw(...) - { - ATLASSERT(pRequestInfo != NULL); - - CComPtr spServiceProvider; - THandler *pT = static_cast(this); - HRESULT hr = pT->GetContext(__uuidof(IServiceProvider), (void **)&spServiceProvider); - if (FAILED(hr)) - return HTTP_FAIL; - - spServiceProvider->QueryService(__uuidof(IStencilCache), __uuidof(IStencilCache), (void **) &m_spStencilCache); - if (!m_spStencilCache) - { - ATLASSERT(FALSE); - return HTTP_FAIL; - } - - // copy the AtlServerRequest into the safe version - Checked::memcpy_s(&m_RequestInfo, sizeof(m_RequestInfo), pRequestInfo, sizeof(m_RequestInfo)); - - // override appropriate fields - m_RequestInfo.cbSize = sizeof(m_RequestInfo); - m_RequestInfo.pServerContext = pSafeSrvCtx; - - return HTTP_SUCCESS; - } - - HTTP_CODE LoadStencilResource( - HINSTANCE hInstResource, - LPCSTR szResourceID, - LPCSTR szResourceType = NULL, LPCSTR szStencilName=NULL) throw(...) - { - if (!szResourceType) - szResourceType = (LPCSTR) (RT_HTML); - // look up stencil in cache - HTTP_CODE hcErr = HTTP_SUCCESS; - - // check the cache first - StencilType *pStencil = FindCacheStencil(szStencilName ? szStencilName : szResourceID); - if (!pStencil) - { - // create a new stencil - pStencil = GetNewCacheStencil(); - if (!pStencil) - { - return AtlsHttpError(500,ISE_SUBERR_OUTOFMEM); - } - - THandler *pT = static_cast(this); - LPCSTR szFileName = pT->m_spServerContext->GetScriptPathTranslated(); - - if (!szFileName) - return HTTP_FAIL; - - if (!pStencil->SetBaseDirFromFile(szFileName)) - { - return HTTP_FAIL; - } - - pStencil->SetErrorResource(GetResourceInstance()); - - // load the stencil and parse its replacements - if (HTTP_SUCCESS == pStencil->LoadFromResource(hInstResource, - szResourceID, szResourceType)) - { - _ATLTRY - { - if (!pStencil->ParseReplacements(this)) - { - return AtlsHttpError(500, ISE_SUBERR_BADSRF); - } - - hcErr = FinishLoadStencil(pStencil, NULL); - if (!hcErr) - { -#ifdef ATL_DEBUG_STENCILS - pStencil->FinishParseReplacements(); -#else - if (!pStencil->FinishParseReplacements()) - { - return AtlsHttpError(500, ISE_SUBERR_BADSRF); - } -#endif // ATL_DEBUG_STENCILS - } - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } - else - { - hcErr = HTTP_FAIL; - } - - // if everything went OK, put the stencil in the stencil cache. - if (!hcErr) - { - hcErr = CacheStencil(szStencilName ? szStencilName : szResourceID, pStencil); - } - - if (pStencil && hcErr) // something went wrong, free the stencil data - { - FreeCacheStencil(pStencil); - } - } - else - { - hcErr = FinishLoadStencil(pStencil); - } - - return hcErr; - } - - HTTP_CODE LoadStencilResource(HINSTANCE hInstResource, UINT nID, LPCSTR szResourceType = NULL) throw(...) - { - if (!szResourceType) - szResourceType = (LPCSTR) RT_HTML; - char szName[80]; - int nResult = sprintf_s(szName, sizeof(szName), "%p/%u", hInstResource, nID); - if ((nResult < 0) || (nResult == sizeof(szName))) - { - return HTTP_FAIL; - } - return LoadStencilResource(hInstResource, MAKEINTRESOURCEA(nID), szResourceType, szName); - } - - HTTP_CODE LoadStencil(LPCSTR szFileName, IHttpRequestLookup * pLookup = NULL) throw(...) - { - if (!szFileName) - { - return HTTP_FAIL; - } - - HTTP_CODE hcErr = HTTP_FAIL; - // try to find the stencil in the cache - StencilType *pStencil = FindCacheStencil(szFileName); - - if (!pStencil) - { - // not in cache. Create a new one - pStencil = GetNewCacheStencil(); - if (!pStencil) - { - return AtlsHttpError(500, ISE_SUBERR_OUTOFMEM); // out of memory! - } - - if (!pStencil->SetBaseDirFromFile(szFileName)) - { - return HTTP_FAIL; - } - - pStencil->SetErrorResource(GetResourceInstance()); - - // finish loading - hcErr = pStencil->LoadFromFile(szFileName); - if (!hcErr) - { - _ATLTRY - { - if (!pStencil->ParseReplacements(static_cast(this))) - { - return AtlsHttpError(500, ISE_SUBERR_BADSRF); - } - - hcErr = FinishLoadStencil(pStencil, pLookup); - if (!hcErr) - { -#ifdef ATL_DEBUG_STENCILS - pStencil->FinishParseReplacements(); -#else - if (!pStencil->FinishParseReplacements()) - { - return AtlsHttpError(500, ISE_SUBERR_BADSRF); - } -#endif // ATL_DEBUG_STENCILS - } - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } - - // if everything is OK, cache the stencil - if (!hcErr) - { - hcErr = CacheStencil(szFileName, pStencil); - } - - if (pStencil && hcErr) // something went wrong, free stencil data - FreeCacheStencil(pStencil); - } - else - { - hcErr = FinishLoadStencil(pStencil, pLookup); - } - return hcErr; - } - - HTTP_CODE RenderStencil(IWriteStream* pStream, CStencilState* pState = NULL) throw(...) - { - if (!m_pLoadedStencil) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); - - WORD nCodePage = m_pLoadedStencil->GetCodePage(); - if (nCodePage != CP_ACP) - m_nCodePage = nCodePage; - - HTTP_CODE hcErr = HTTP_FAIL; - - hcErr = m_pLoadedStencil->Render(static_cast(this), - pStream, pState); - - if (!IsAsyncStatus(hcErr) && m_pLoadedStencil->GetCacheItem()) - m_spStencilCache->ReleaseStencil(m_pLoadedStencil->GetCacheItem()); - - return hcErr; - } - - -//Implementation - - void FreeHandlers() throw(...) - { - POSITION pos = m_Handlers.GetStartPosition(); - while (pos) - { - m_Handlers.GetValueAt(pos)->UninitializeHandler(); - m_Handlers.GetNextValue(pos)->Release(); - } - m_Handlers.RemoveAll(); - - int nLen = m_hInstHandlers.GetSize(); - if (nLen != 0) - { - THandler *pT = static_cast(this); - CComPtr spDllCache; - pT->m_spServiceProvider->QueryService(__uuidof(IDllCache), __uuidof(IDllCache), - (void **)&spDllCache); - for (int i=0; iFree(m_hInstHandlers[i]); - } - m_hInstHandlers.RemoveAll(); - } - } - - StencilType* GetNewCacheStencil() throw(...) - { - StencilType *pStencil = NULL; - THandler *pT = static_cast(this); - IAtlMemMgr *pMemMgr; - if (FAILED(pT->m_spServiceProvider->QueryService(__uuidof(IAtlMemMgr), __uuidof(IAtlMemMgr), (void **)&pMemMgr))) - pMemMgr = NULL; - - ATLTRY(pStencil = new StencilType(pMemMgr)); - if (pStencil != NULL) - { - pStencil->Initialize(pT->m_spServiceProvider); - } - return pStencil; - } - - HTTP_CODE CacheStencil( - LPCSTR szName, - StencilType* pStencilData) throw() - { - THandler *pT = static_cast(this); - HRESULT hr = E_FAIL; - - HCACHEITEM hCacheItem = NULL; - - hr = m_spStencilCache->CacheStencil(szName, - pStencilData, - sizeof(StencilType*), - &hCacheItem, - pT->m_hInstHandler, - static_cast(pStencilData)); - - if (hr == S_OK && hCacheItem) - { - _ATLTRY - { - pStencilData->SetCacheItem(hCacheItem); - } - _ATLCATCHALL() - { - hr = E_FAIL; - } - } - - return (hr == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - StencilType *FindCacheStencil(LPCSTR szName) throw() - { - if (!szName || !m_spStencilCache) - return NULL; - - StencilType *pStencilData = NULL; - - HCACHEITEM hStencil; - - if (m_spStencilCache->LookupStencil(szName, &hStencil) != S_OK) - return NULL; - - m_spStencilCache->GetStencil(hStencil, reinterpret_cast(&pStencilData)); - - return pStencilData; - } - - void FreeCacheStencil(StencilType* pStencilData) - { - ATLASSERT( pStencilData != NULL ); - - if(!pStencilData) - { - return; - } - - IMemoryCacheClient *pMemCacheClient = static_cast(pStencilData); - - if(!pMemCacheClient) - { - return; - } - - _ATLTRY - { - pMemCacheClient->Free(pStencilData); - } - _ATLCATCHALL() - { - } - } - - HTTP_CODE GetHandlerOffset(LPCSTR szHandlerName, DWORD* pdwOffset) - { - if (!pdwOffset) - return HTTP_FAIL; - - mapType::CPair *p = m_Handlers.Lookup(szHandlerName); - if (p) - { - DWORD dwIndex = 0; - POSITION pos = m_Handlers.GetStartPosition(); - while (pos) - { - const mapType::CPair *p1 = m_Handlers.GetNext(pos); - if (p1 == p) - { - *pdwOffset = dwIndex; - return HTTP_SUCCESS; - } - dwIndex++; - } - ATLASSERT(FALSE); - } - *pdwOffset = 0; - return HTTP_FAIL; - } - - HTTP_CODE GetReplacementObject(DWORD dwObjOffset, ITagReplacer **ppReplacer) - { - HRESULT hr = E_FAIL; - - POSITION pos = m_Handlers.GetStartPosition(); - for (DWORD dwIndex=0; dwIndex < dwObjOffset; dwIndex++) - m_Handlers.GetNext(pos); - - ATLASSERT(pos != NULL); - - IRequestHandler *pHandler = NULL; - pHandler = m_Handlers.GetValueAt(pos); - - ATLENSURE(pHandler != NULL); - - hr = pHandler->QueryInterface(__uuidof(ITagReplacer), (void**)ppReplacer); - - if (hr != S_OK) - return HTTP_FAIL; - - return HTTP_SUCCESS; - } - - // This is where we would actually load any extra request - // handlers the HTML stencil might have parsed for us. - HTTP_CODE FinishLoadStencil(StencilType *pStencil, IHttpRequestLookup * pLookup = NULL) throw(...) - { - THandler *pT = static_cast(this); - ATLASSERT(pStencil); - if (!pStencil) - return AtlsHttpError(500, ISE_SUBERR_UNEXPECTED); // unexpected condition - m_pLoadedStencil = pStencil; - //load extra handlers if there are any - StencilType::mapType *pExtraHandlersMap = - pStencil->GetExtraHandlers(); - - if (pExtraHandlersMap) - { - POSITION pos = pExtraHandlersMap->GetStartPosition(); - CStringA name; - CStringPair path; - IRequestHandler *pHandler; - HINSTANCE hInstHandler; - while(pos) - { - pExtraHandlersMap->GetNextAssoc(pos, name, path); - pHandler = NULL; - hInstHandler = NULL; - HTTP_CODE hcErr = pT->m_spExtension->LoadRequestHandler(path.strDllPath, path.strHandlerName, - pT->m_spServerContext, - &hInstHandler, - &pHandler); - if (!hcErr) - { - _ATLTRY - { - //map the name to the pointer to request handler - m_Handlers.SetAt(name, pHandler); - //store HINSTANCE of handler - m_hInstHandlers.Add(hInstHandler); - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - - if (pLookup) - { - hcErr = pHandler->InitializeChild(&m_RequestInfo, pT->m_spServiceProvider, pLookup); - if (hcErr != HTTP_SUCCESS) - return hcErr; - } - - } - else - return hcErr; - } - } - return HTTP_SUCCESS; - } -}; // class CHtmlTagReplacer - - -// CRequestHandlerT -// This is the base class for all user request handlers. This class implements -// the IReplacementHandler interface whose methods will be called to render HTML -// into a stream. The stream will be returned as the HTTP response upon completion -// of the HTTP request. -template < class THandler, - class ThreadModel=CComSingleThreadModel, - class TagReplacerType=CHtmlTagReplacer - > -class CRequestHandlerT : - public TagReplacerType, - public CComObjectRootEx, - public IRequestHandlerImpl -{ -protected: - CStencilState m_state; - CComObjectStackEx m_SafeSrvCtx; - typedef CRequestHandlerT _requestHandler; - -public: - BEGIN_COM_MAP(_requestHandler) - COM_INTERFACE_ENTRY(IRequestHandler) - COM_INTERFACE_ENTRY(ITagReplacer) - END_COM_MAP() - - // public CRequestHandlerT members - CHttpResponse m_HttpResponse; - CHttpRequest m_HttpRequest; - ATLSRV_REQUESTTYPE m_dwRequestType; - AtlServerRequest* m_pRequestInfo; - - CRequestHandlerT() throw() - { - m_hInstHandler = NULL; - m_dwAsyncFlags = 0; - m_pRequestInfo = NULL; - } - - ~CRequestHandlerT() throw() - { - _ATLTRY - { - FreeHandlers(); // free handlers held by CTagReplacer - } - _ATLCATCHALL() - { - } - } - - void ClearResponse() throw() - { - m_HttpResponse.ClearResponse(); - } - // Where user initialization should take place - HTTP_CODE ValidateAndExchange() - { - return HTTP_SUCCESS; // continue processing request - } - - // Where user Uninitialization should take place - HTTP_CODE Uninitialize(HTTP_CODE hcError) - { - return hcError; - } - - HTTP_CODE InitializeInternal(AtlServerRequest *pRequestInfo, IServiceProvider *pProvider) - { - // Initialize our internal references to required services - m_pRequestInfo = pRequestInfo; - m_state.pParentInfo = pRequestInfo; - m_hInstHandler = pRequestInfo->hInstDll; - m_spServerContext = pRequestInfo->pServerContext; - m_spServiceProvider = pProvider; - return HTTP_SUCCESS; - } - - HTTP_CODE InitializeHandler( - AtlServerRequest *pRequestInfo, - IServiceProvider *pProvider) - { - HTTP_CODE hcErr = HTTP_FAIL; - ATLASSERT(pRequestInfo); - ATLASSERT(pProvider); - - THandler* pT = static_cast(this); - hcErr = pT->InitializeInternal(pRequestInfo, pProvider); - if (!hcErr) - { - m_HttpResponse.Initialize(m_spServerContext); - hcErr = pT->CheckValidRequest(); - if (!hcErr) - { - hcErr = HTTP_FAIL; - if (m_HttpRequest.Initialize(m_spServerContext, - pT->MaxFormSize(), - pT->FormFlags())) - { - if (m_SafeSrvCtx.Initialize(&m_HttpResponse, &m_HttpRequest)) - { - hcErr = TagReplacerType::Initialize(pRequestInfo, &m_SafeSrvCtx); - if (!hcErr) - { - hcErr = pT->ValidateAndExchange(); - } - } - } - } - } - return hcErr; - } - - HTTP_CODE InitializeChild( - AtlServerRequest *pRequestInfo, - IServiceProvider *pProvider, - IHttpRequestLookup *pRequestLookup) - { - ATLASSERT(pRequestInfo); - ATLASSERT(pProvider); - - THandler *pT = static_cast(this); - HTTP_CODE hcErr = pT->InitializeInternal(pRequestInfo, pProvider); - if (hcErr) - return hcErr; - - if (pRequestLookup) - { - // initialize with the pRequestLookup - if(!m_HttpResponse.Initialize(pRequestLookup)) - { - return HTTP_FAIL; - } - - // Initialize with the IHttpServerContext if it exists - // the only time this is different than the previous call to - // initialize is if the user passes a different IHttpServerContext - // in pRequestInfo than the one extracted from pRequestLookup. - if (m_spServerContext) - { - if(!m_HttpResponse.Initialize(m_spServerContext)) - { - return HTTP_FAIL; - } - } - hcErr = pT->CheckValidRequest(); - if (hcErr) - { - return hcErr; - } - - // initialize with the pRequestLookup to chain query parameters - m_HttpRequest.Initialize(pRequestLookup); - - // initialize with the m_spServerContext to get additional query params - // if they exist. - if (m_spServerContext) - { - m_HttpRequest.Initialize(m_spServerContext); - } - } - - m_HttpResponse.SetBufferOutput(false); // child cannot buffer - - // initialize the safe server context - if (!m_SafeSrvCtx.Initialize(&m_HttpResponse, &m_HttpRequest)) - { - return HTTP_FAIL; - } - - hcErr = TagReplacerType::Initialize(pRequestInfo, &m_SafeSrvCtx); - if (hcErr) - { - return hcErr; - } - - return pT->ValidateAndExchange(); - } - - // HandleRequest is called to perform default processing of HTTP requests. Users - // can override this function in their derived classes if they need to perform - // specific initialization prior to processing this request or want to change the - // way the request is processed. - HTTP_CODE HandleRequest( - AtlServerRequest *pRequestInfo, - IServiceProvider* /*pServiceProvider*/) - { - ATLENSURE(pRequestInfo); - - THandler *pT = static_cast(this); - HTTP_CODE hcErr = HTTP_SUCCESS; - - if (pRequestInfo->dwRequestState == ATLSRV_STATE_BEGIN) - { - m_dwRequestType = pRequestInfo->dwRequestType; - - if (pRequestInfo->dwRequestType==ATLSRV_REQUEST_STENCIL) - { - LPCSTR szFileName = pRequestInfo->pServerContext->GetScriptPathTranslated(); - hcErr = HTTP_FAIL; - if (szFileName) - hcErr = pT->LoadStencil(szFileName, static_cast(&m_HttpRequest)); - } - } - else if (pRequestInfo->dwRequestState == ATLSRV_STATE_CONTINUE) - m_HttpResponse.ClearContent(); - -#ifdef ATL_DEBUG_STENCILS - if (m_pLoadedStencil && !m_pLoadedStencil->ParseSuccessful()) - { - // An error or series of errors occurred in parsing the stencil - _ATLTRY - { - m_pLoadedStencil->RenderErrors(static_cast(&m_HttpResponse)); - } - _ATLCATCHALL() - { - return HTTP_FAIL; - } - } -#endif - - if (hcErr == HTTP_SUCCESS && m_pLoadedStencil) - { - // if anything other than HTTP_SUCCESS is returned during - // the rendering of replacement tags, we return that value - // here. - hcErr = pT->RenderStencil(static_cast(&m_HttpResponse), &m_state); - - if (hcErr == HTTP_SUCCESS && !m_HttpResponse.Flush(TRUE)) - hcErr = HTTP_FAIL; - } - - if (IsAsyncFlushStatus(hcErr)) - { - pRequestInfo->pszBuffer = LPCSTR(m_HttpResponse.m_strContent); - pRequestInfo->dwBufferLen = m_HttpResponse.m_strContent.GetLength(); - } - - if (pRequestInfo->dwRequestState == ATLSRV_STATE_BEGIN || IsAsyncDoneStatus(hcErr)) - return pT->Uninitialize(hcErr); - - else if (!IsAsyncStatus(hcErr)) - m_HttpResponse.ClearContent(); - - return hcErr; - } - - HTTP_CODE ServerTransferRequest(LPCSTR szRequest, bool bContinueAfterTransfer=false, - WORD nCodePage = 0, CStencilState *pState = NULL) throw(...) - { - return m_spExtension->TransferRequest( - m_pRequestInfo, - m_spServiceProvider, - static_cast(&m_HttpResponse), - static_cast(&m_HttpRequest), - szRequest, - nCodePage == 0 ? m_nCodePage : nCodePage, - bContinueAfterTransfer, - pState); - } - - inline DWORD MaxFormSize() - { - return DEFAULT_MAX_FORM_SIZE; - } - - inline DWORD FormFlags() - { - return ATL_FORM_FLAG_IGNORE_FILES; - } - - // Override this function to check if the request - // is valid. This function is called after m_HttpResponse - // has been initialized, so you can use it if you need - // to return an error to the client. This is also a - // good place to initialize any internal class data needed - // to handle the request. CRequestHandlerT::CheckValidRequest - // is called after CRequestHandlerT::InitializeInternal is - // called, so your override of this method will have access to - // m_pRequestInfo (this request's AtlServerRequest structure), - // m_hInstHandler (the HINSTANCE of this handler dll), - // m_spServerContext (the IHttpServerContext interface for this request), - // m_spServiceProvider (the IServiceProvider interface for this request). - // You should call CRequestHandlerT::CheckValidRequest in your override - // if you override this function. - // - // Note that m_HttpRequest has not been initialized, so - // you cannot use it. This function is intended to - // do simple checking throught IHttpServerContext to avoid - // expensive initialization of m_HttpRequest. - HTTP_CODE CheckValidRequest() - { - LPCSTR szMethod = NULL; - ATLASSUME(m_pRequestInfo); - szMethod = m_pRequestInfo->pServerContext->GetRequestMethod(); - if (strcmp(szMethod, "GET") && strcmp(szMethod, "POST") && strcmp(szMethod, "HEAD")) - return HTTP_NOT_IMPLEMENTED; - - return HTTP_SUCCESS; - } - - HRESULT GetContext(REFIID riid, void** ppv) - { - if (!ppv) - return E_POINTER; - if (InlineIsEqualGUID(riid, __uuidof(IHttpServerContext))) - { - return m_spServerContext.CopyTo((IHttpServerContext **)ppv); - } - if (InlineIsEqualGUID(riid, __uuidof(IHttpRequestLookup))) - { - *ppv = static_cast(&m_HttpRequest); - m_HttpRequest.AddRef(); - return S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IServiceProvider))) - { - *ppv = m_spServiceProvider; - m_spServiceProvider.p->AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - HINSTANCE GetResourceInstance() - { - if (m_pRequestInfo != NULL) - { - return m_pRequestInfo->hInstDll; - } - - return NULL; - } - - template - HRESULT GetContext(Interface** ppInterface) throw(...) - { - return GetContext(__uuidof(Interface), reinterpret_cast(ppInterface)); - } -}; // class CRequestHandlerT - -} // namespace ATL -#pragma pack(pop) - -#pragma warning( pop ) - -#endif // __ATLSTENCIL_H__ diff --git a/ATL90/include/l.chs/atlsrv.rc b/ATL90/include/l.chs/atlsrv.rc deleted file mode 100644 index 281ab23..0000000 --- a/ATL90/include/l.chs/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "´íÎóµÄÇëÇó´íÎóµÄÇëÇó" - IDS_ATLSRV_AUTH_REQUIRED - "ÒªÇóÉí·ÝÑéÖ¤ÒªÇóÉí·ÝÑéÖ¤" - IDS_ATLSRV_FORBIDDEN "½ûÖ¹½ûÖ¹" - IDS_ATLSRV_NOT_FOUND "δÕÒµ½Î´ÕÒµ½" - IDS_ATLSRV_SERVER_ERROR "·þÎñÆ÷´íÎó·þÎñÆ÷´íÎó" - IDS_ATLSRV_NOT_IMPLEMENTED - "δʵÏÖδʵÏÖ" - IDS_ATLSRV_BAD_GATEWAY "´íÎóµÄÍø¹Ø´íÎóµÄÍø¹Ø" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "·þÎñ²»¿ÉÓ÷þÎñ²»¿ÉÓÃ" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Server Error

·þÎñÆ÷´íÎó

ÎÞ·¨¼ÓÔØ SRF Îļþ¡£" - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ËùÇëÇóµÄ SRF ÒѼÓÔØ£¬µ«ÎÞ·¨¶ÔÆä½øÐÐÕýÈ·´¦Àí¡£" - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ÎÞ·¨´´½¨ Windows ϵͳ¶ÔÏó¡£" - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

Îļþ¶Á²Ù×÷ʧ°Ü¡£" - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

Ö¸¶¨ÎļþÎÞ·¨´ò¿ª¡£" - IDS_ATLSRV_SERVER_ERROR_LOADLIB "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

LoadLibrary ʧ°Ü¡£" - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

¼ìË÷ÇëÇó´¦Àí³ÌÐò½Ó¿Úʧ°Ü¡£" - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

·þÎñÆ÷ÄÚ´æ²»×ã¡£" - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

·þÎñÆ÷Óöµ½ÒâÍâ´íÎó¡£" - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

·þÎñÆ÷ÔÚÊÔͼ·ÖÎöËùÇëÇóµÄÄ£°åʱÓöµ½ÒâÍâ´íÎó¡£" - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

·þÎñÆ÷δÄܼÓÔØËùÇëÇóµÄÄ£°å¡£¸ÃÄ£°åÎļþ¿ÉÄÜÒÑË𻵻ò²»Ôڸà Web ·þÎñÆ÷ÉÏ¡£" - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ÔÚÖ¸¶¨´¦Àí³ÌÐò .dll ÖÐδÕÒµ½ÔÚËùÇëÇóÄ£°åµÄ´¦Àí³ÌÐò±ê¼ÇÖÐÃüÃûµÄij¸ö´¦Àí³ÌÐò¡£" - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

¸ÃÄ£°å°üº¬Ò»¸öÎÞ·¨±»Ä£°å´¦ÀíÆ÷ÕýÈ·´¦ÀíµÄ´¦Àí³ÌÐò±ê¼Ç£¬»òÕ߸ÃÄ£°å¸ù±¾Ã»Óаüº¬´¦Àí³ÌÐò±ê¼Ç¡£Çë²é¿´ËùÇëÇóµÄÄ£°å£¬Á˽âÕýÈ·µÄÄ£°åÓï·¨¡£" - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ËùÇëÇóµÄÄ£°åûÓаüº¬Óд¦Àí³ÌÐò±ê¼Ç¡£" - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ÔÚËùÇëÇóµÄÄ£°åÖз¢ÏÖÒ»¸öÌæ»»±ê¼Ç£¬¸ÃÌæ»»±ê¼ÇµÄÌæ»»Ãû³Æ¹ý³¤¡£Ìæ»»Ãû³ÆµÄ×î´ó³¤¶È±ØÐëСÓÚ»òµÈÓÚ atlstencil.h Öж¨ÒåµÄ³£Êý ATL_MAX_METHOD_NAME" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ÔÚËùÇëÇóµÄÄ£°åÖз¢ÏÖÒ»¸öʹÓà id.tagname Óï·¨µÄÌæ»»±ê¼Ç¡£´¦Àí³ÌÐòÃû³ÆµÄ×î´ó³¤¶È±ØÐëСÓÚ»òµÈÓÚ atlstencil.h Öж¨ÒåµÄ³£Êý ATL_MAX_METHOD_NAME" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

Ä£Äâ¿Í»§¶ËÌá³öÇëÇóµÄ³¢ÊÔʧ°Ü¡£" - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "·þÎñÆ÷´íÎó

·þÎñÆ÷´íÎó

ÓÉÓÚ·¢Éúδ֪´íÎó£¬ÓÃÓÚ´¦Àí¸ÃÇëÇóµÄ ISAPI À©Õ¹ÎÞ·¨ÕýÈ·¼ÓÔØ¡£" - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "ÇëÇó¶Ñ´´½¨Ê§°Ü" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "¸¨ÖúÏ̳߳õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "ÁÙ½çÇø³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Ï̳߳سõʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL »º´æ³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Page »º´æ³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Ä£°å»º´æ³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "»á»°×´Ì¬·þÎñ³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blob »º´æ³õʼ»¯Ê§°Ü" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "Îļþ»º´æ³õʼ»¯Ê§°Ü" - - IDS_PERFMON_CACHE "ATL Server:»º´æ" - IDS_PERFMON_CACHE_HELP "ATL Server »º´æµÄÏà¹ØÐÅÏ¢" - IDS_PERFMON_HITCOUNT "»º´æÃüÖÐÊý" - IDS_PERFMON_HITCOUNT_HELP "ÃüÖлº´æµÄÊýÄ¿" - IDS_PERFMON_MISSCOUNT "»º´æÎ´ÃüÖÐÊý" - IDS_PERFMON_MISSCOUNT_HELP "δÃüÖлº´æµÄÊýÄ¿" - IDS_PERFMON_CURRENTALLOCATIONS "»º´æµ±Ç°·ÖÅä¶î" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "·ÖÅ䏸»º´æµÄµ±Ç°ÄÚ´æ´óС" - IDS_PERFMON_MAXALLOCATIONS "»º´æ×î´ó·ÖÅä¶î" - IDS_PERFMON_MAXALLOCATIONS_HELP "·ÖÅ䏸»º´æµÄ×î´óÄÚ´æ´óС" - IDS_PERFMON_CURRENTENTRIES "µ±Ç°»º´æÏîÊý" - IDS_PERFMON_CURRENTENTRIES_HELP "µ±Ç°»º´æÏîµÄÊýÄ¿" - IDS_PERFMON_MAXENTRIES "»º´æ×î´óÏîÊý" - IDS_PERFMON_MAXENTRIES_HELP "»º´æÏîµÄ×î´óÊýÄ¿" - IDS_PERFMON_HITCOUNTRATE "»º´æÃüÖÐÂÊ" - IDS_PERFMON_HITCOUNTRATE_HELP "ÿÃëÃüÖлº´æµÄ´ÎÊý" - IDS_PERFMON_REQUEST "ATL Server:ÇëÇó" - IDS_PERFMON_REQUEST_HELP "¹ØÓÚ½øÈë¸Ã·þÎñÆ÷µÄÇëÇóµÄͳ¼ÆÐÅÏ¢" - IDS_PERFMON_REQUEST_TOTAL "·þÎñÆ÷ÇëÇó×ÜÊý" - IDS_PERFMON_REQUEST_TOTAL_HELP "ÇëÇóµÄ×ÜÊý" - IDS_PERFMON_REQUEST_FAILED "·þÎñÆ÷ÇëÇóʧ°ÜÊý" - IDS_PERFMON_REQUEST_FAILED_HELP "ʧ°ÜµÄÇëÇóµÄÊýÄ¿" - IDS_PERFMON_REQUEST_RATE "·þÎñÆ÷ÇëÇó/Ãë" - IDS_PERFMON_REQUEST_RATE_HELP "ÿÃëÇëÇóµÄÊýÄ¿" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "ƽ¾ùÏìӦʱ¼ä" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "´¦ÀíÇëÇóËùÐèµÄƽ¾ùʱ¼ä" - IDS_PERFMON_REQUEST_CURR_WAITING "µ±Ç°¶ÓÁÐÖеÄÇëÇóÊý" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "µ±Ç°µÈ´ý´¦ÀíµÄÇëÇóÊýÄ¿" - IDS_PERFMON_REQUEST_MAX_WAITING "¶ÓÁÐÖÐÇëÇóµÄ×î´óÊýÄ¿" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "µÈ´ý´¦ÀíµÄÇëÇóµÄ×î´óÊýÄ¿" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "»î¶¯Ïß³ÌÊý" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "ÕýÔÚ´¦ÀíÇëÇóµÄ»î¶¯Ïß³ÌÊý" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

ÔÚÊÔͼ·ÖÎöÄ£°åÎļþʱ£¬·¢ÉúÈçÏ´íÎó£º

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
´íÎóÀàÐÍ{{GetErrorText}}
ÐкÅ{{GetErrorLineNumber}}
´íÎóÎı¾
{{GetErrorLine}}
\r\n{{endwhile}}
Ä£°åÊä³öΪ£º\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} ȱÉÙ {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} ȱÉÙ {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} ȱÉÙ {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} ȱÉÙ {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} ȱÉÙ {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} ȱÉÙ {{if}} or {{else}}" - - IDS_STENCIL_INVALID_HANDLER "ÎÞЧµÄ´¦Àí³ÌÐò±ê¼Ç" - IDS_STENCIL_NULLPARAM "ParseReplacements Ϊ Null ²ÎÊý" - IDS_STENCIL_INVALIDSTRING "´«µÝ¸ø ParseReplacements µÄ×Ö·û´®Îª¿Õ»òÕßΪ¸º" - IDS_STENCIL_EMBEDDED_NULL "ǶÈëÔÚÄ£°åÖеĿÕ×Ö·û" - IDS_STENCIL_UNMATCHED_TAG_START "²»Æ¥Åä {{" - IDS_STENCIL_MISMATCHED_TAG_START "Æ¥Åä´íÎó {{" - IDS_STENCIL_BAD_PARAMETER "´íÎóµÄ²ÎÊý" - IDS_STENCIL_METHODNAME_TOO_LONG "·½·¨Ãû³Æ¹ý³¤" - IDS_STENCIL_HANDLERNAME_TOO_LONG "´¦Àí³ÌÐòÃû³Æ¹ý³¤" - IDS_STENCIL_INVALID_SUBHANDLER "ÎÞЧµÄ×Ó´¦Àí³ÌÐò±ê¼Ç" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "ÎÞ·¨½âÎöµÄÌæ»» : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "ÎÞ·¨´ò¿ª±»°üº¬Îļþ" - IDS_STENCIL_INCLUDE_INVALID "±»°üº¬Îļþ²»ÊÇ´ÅÅÌÎļþ" - - IDS_STENCIL_MLANG_COCREATE "ÎÞ·¨´´½¨ CMultiLanguage" - IDS_STENCIL_MLANG_LCID "»ñÈ¡ lcid ´íÎó" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo ʧ°Ü" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo ʧ°Ü" - - IDS_STENCIL_OUTOFMEMORY "ÄÚ´æ²»×ã" - IDS_STENCIL_UNEXPECTED "Òì³£´íÎó" -END - -#endif diff --git a/ATL90/include/l.cht/atlsrv.rc b/ATL90/include/l.cht/atlsrv.rc deleted file mode 100644 index 2d9f734..0000000 --- a/ATL90/include/l.cht/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "¤£¥¿½Tªº­n¨D¤£¥¿½Tªº­n¨D" - IDS_ATLSRV_AUTH_REQUIRED - "»Ý­n±ÂÅv»Ý­n±ÂÅv" - IDS_ATLSRV_FORBIDDEN "¸T¤î¨Ï¥Î¸T¤î¨Ï¥Î" - IDS_ATLSRV_NOT_FOUND "§ä¤£¨ì§ä¤£¨ì" - IDS_ATLSRV_SERVER_ERROR "¦øªA¾¹¿ù»~¦øªA¾¹¿ù»~" - IDS_ATLSRV_NOT_IMPLEMENTED - "¥¼¹ê§@¥¼¹ê§@" - IDS_ATLSRV_BAD_GATEWAY "¤£¥¿½Tªº¹h¹D¤£¥¿½Tªº¹h¹D" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "µLªk¨ú±oªA°ÈµLªk¨ú±oªA°È" - IDS_ATLSRV_SERVER_ERROR_BADSRF "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

µLªk¸ü¤J SRF ÀÉ¡C" - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¤w¸g¸ü¤J­n¨Dªº SRF ÀÉ¡A¦ýµLªk¦¨¥\³B²z¡C" - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

µLªk«Ø¥ß Windows ¨t²Îª«¥ó¡C" - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

ÀÉ®×Ū¨ú§@·~¤w¥¢±Ñ¡C" - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

µLªk¶}±Ò«ü©wªºÀɮסC" - IDS_ATLSRV_SERVER_ERROR_LOADLIB "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

LoadLibrary ¤w¥¢±Ñ¡C" - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

µLªkÂ^¨ú­n¨Dªº³B²z±`¦¡¤¶­±¡C" - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦øªA¾¹°O¾ÐÅ餣¨¬¡C" - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦øªA¾¹µo¥Í¥¼¹w´Áªº¿ù»~¡C" - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¹Á¸Õ­åªR­n¨Dªº¼ÒªO®É¡A¦øªA¾¹µo¥Í¥¼¹w´Áªº¿ù»~¡C" - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦øªA¾¹µLªk¸ü¤J­n¨Dªº¼ÒªO¡C¼ÒªOÀÉ¥i¯à¤w·l·´©Î¤£¦b¦¹ Web ¦øªA¾¹¤W¡C" - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦b«ü©wªº handler .dll ¤¤¡A§ä¤£¨ì¦b­n¨D¼ÒªOªº³B²z±`¦¡¼Ð°O¤¤©R¦Wªº¬Y­Ó³B²z±`¦¡¡C" - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦¹¼ÒªO¥]§t¼ÒªO³B²z¾¹µLªk¾A·í­åªRªº³B²z±`¦¡¼Ð°O¡A©Î¥¼¥]§t¥ô¦ó³B²z±`¦¡¼Ð°O¡C½ÐÀˬd­n¨Dªº¼ÒªO¬O§_¨Ï¥Î¾A¦Xªº¼ÒªO»yªk¡C" - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

­n¨Dªº¼ÒªO¥¼¥]§t³B²z±`¦¡¼Ð°O¡C" - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦b­n¨Dªº¼ÒªO¤¤µo²{¨ú¥N¼Ð°Oªº¨ú¥N¦WºÙ¤Óªø¡C¨ú¥N¦WºÙ³Ìªøªºªø«×¥²¶·¤p©ó©Îµ¥©ó¦b atlstencil.h ¤¤©Ò©w¸qªº ATL_MAX_METHOD_NAME ±`¼Æ¡C" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦b­n¨D¼ÒªO¤¤¨Ï¥Î id.tagname »yªkªº¨ú¥N¼Ð°Oªº³B²z±`¦¡¦WºÙ¤Óªø¡C³B²z±`¦¡¦WºÙ³Ìªøªºªø«×¥²¶·¤p©ó©Îµ¥©ó¦b atlstencil.h ¤¤©Ò©w¸qªº ATL_MAX_METHOD_NAME ±`¼Æ¡C" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¹Á¸Õ¼ÒÀÀ¥Î¤áºÝ³y¦¨­n¨D¥¢±Ñ¡C" - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "¦øªA¾¹¿ù»~

¦øªA¾¹¿ù»~

¦]¬°µo¥Í¥¼ª¾ªº¿ù»~¡AµLªk¥¿½T¸ü¤J¥Î¨ÓªA°È¦¹­n¨Dªº ISAPI ÂX¥Rµ{¦¡¡C" - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "­n¨D°ï¿n«Ø¥ß¥¢±Ñ" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "­I´º¤u§@°õ¦æºüªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "ÃöÁä°Ï¬qªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "°õ¦æºü¶°°Ïªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL §Ö¨úªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "¤À­¶§Ö¨úªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "¼ÒªO§Ö¨úªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "¤u§@¶¥¬qª¬ºAªA°Èªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blob §Ö¨úªì©l¤Æ¥¢±Ñ" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "ÀÉ®×§Ö¨úªì©l¤Æ¥¢±Ñ" - - IDS_PERFMON_CACHE "ATL Server:§Ö¨ú" - IDS_PERFMON_CACHE_HELP "¦³Ãö ATL Server §Ö¨úªº¸ê°T" - IDS_PERFMON_HITCOUNT "§Ö¨ú¥s¥Î¦¸¼Æ" - IDS_PERFMON_HITCOUNT_HELP "§Ö¨ú¥s¥Îªº¦¸¼Æ" - IDS_PERFMON_MISSCOUNT "§Ö¨ú¿òº|¦¸¼Æ" - IDS_PERFMON_MISSCOUNT_HELP "§Ö¨ú¿òº|ªº¦¸¼Æ" - IDS_PERFMON_CURRENTALLOCATIONS "§Ö¨ú¥Ø«e°t¸m" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "§Ö¨ú¥Ø«eªº°O¾ÐÅé°t¸m" - IDS_PERFMON_MAXALLOCATIONS "§Ö¨ú°t¸m¤W­­" - IDS_PERFMON_MAXALLOCATIONS_HELP "§Ö¨úªº³Ì¤j°O¾ÐÅé°t¸m" - IDS_PERFMON_CURRENTENTRIES "§Ö¨ú¥Ø«e¶µ¥Ø" - IDS_PERFMON_CURRENTENTRIES_HELP "¥Ø«eªº§Ö¨ú¶µ¥Ø¼Æ" - IDS_PERFMON_MAXENTRIES "§Ö¨ú¶µ¥Ø¤W­­" - IDS_PERFMON_MAXENTRIES_HELP "§Ö¨ú¶µ¥Øªº³Ì¤j¼Æ" - IDS_PERFMON_HITCOUNTRATE "§Ö¨ú¥s¥Î²v" - IDS_PERFMON_HITCOUNTRATE_HELP "¨C¬í§Ö¨ú¥s¥Îªº¼Æ¥Ø" - IDS_PERFMON_REQUEST "ATL Server:­n¨D" - IDS_PERFMON_REQUEST_HELP "¦³Ãö¶i¤J¦¹¦øªA¾¹­n¨Dªº²Î­p¸ê®Æ" - IDS_PERFMON_REQUEST_TOTAL "¦øªA¾¹­n¨DÁ`¼Æ" - IDS_PERFMON_REQUEST_TOTAL_HELP "­n¨DªºÁ`¼Æ" - IDS_PERFMON_REQUEST_FAILED "¦øªA¾¹¥¢±Ñ­n¨D" - IDS_PERFMON_REQUEST_FAILED_HELP "¥¢±Ñ­n¨Dªº¼Æ¥Ø" - IDS_PERFMON_REQUEST_RATE "¦øªA¾¹­n¨D /¬í" - IDS_PERFMON_REQUEST_RATE_HELP "¨C¬í­n¨D¼Æ¥Ø" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "¥­§¡¦^À³®É¶¡" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "³B²z­n¨D©Òªá¶Oªº¥­§¡®É¶¡" - IDS_PERFMON_REQUEST_CURR_WAITING "¥Ø«e¤w±Æ¤J¦î¦Cªº­n¨D" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "¥Ø«eµ¥­Ô³B²zªº­n¨D¼Æ¥Ø" - IDS_PERFMON_REQUEST_MAX_WAITING "¦î¦C­n¨D¤W­­" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "µ¥­Ô³B²z­n¨Dªº³Ì¤j¼Æ" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "§@¥Î¤¤ªº°õ¦æºü" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "¥¿¦b³B²z­n¨Dªº°õ¦æºü¼Æ¥Ø" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

·í¹Á¸Õ­åªR¼ÒªOÀɮɡAµo¥Í¤U¦C¿ù»~:

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
¿ù»~Ãþ«¬{{GetErrorText}}
¦æ¸¹{{GetErrorLineNumber}}
¿ù»~¤å¦r
{{GetErrorLine}}
\r\n{{endwhile}}
¤§«áªº¼ÒªO¿é¥X:\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "¦³ {{if}} ¦ý¨S¦³ {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "¦³ {{else}} ¦ý¨S¦³ {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "¦³ {{while}} ¦ý¨S¦³ {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "¦³ {{endwhile}} ¦ý¨S¦³ {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "¦³ {{else}} ¦ý¨S¦³ {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "¦³ {{endif}} ¦ý¨S¦³ {{if}} ©Î {{else}}" - - IDS_STENCIL_INVALID_HANDLER "µL®Äªº³B²z±`¦¡¼Ð°O" - IDS_STENCIL_NULLPARAM "ParseReplacements ªº NULL °Ñ¼Æ" - IDS_STENCIL_INVALIDSTRING "¶Ç»¼¨ì ParseReplacements ªºªÅªº©Î­t­È¦r¦ê" - IDS_STENCIL_EMBEDDED_NULL "¼ÒªO¤¤´O¤Jªº Null ¦r¤¸" - IDS_STENCIL_UNMATCHED_TAG_START "¤£¬Û²Åªº {{" - IDS_STENCIL_MISMATCHED_TAG_START "¤£¬Û²Åªº {{" - IDS_STENCIL_BAD_PARAMETER "¤£¥¿½Tªº°Ñ¼Æ" - IDS_STENCIL_METHODNAME_TOO_LONG "¤èªk¦WºÙ¤Óªø" - IDS_STENCIL_HANDLERNAME_TOO_LONG "³B²z±`¦¡¦WºÙ¤Óªø" - IDS_STENCIL_INVALID_SUBHANDLER "µL®Äªº¤l³B²z±`¦¡¼Ð°O" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "µLªk¸ÑªRªº¨ú¥N : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "µLªk¶}±Ò¥]§tªºÀÉ®×" - IDS_STENCIL_INCLUDE_INVALID "¥]§tªºÀɮפ£¬OºÏºÐÀÉ®×" - - IDS_STENCIL_MLANG_COCREATE "µLªk«Ø¥ß CMultiLanguage" - IDS_STENCIL_MLANG_LCID "¨ú±o lcid µo¥Í¿ù»~" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo ¥¢±Ñ" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo ¥¢±Ñ" - - IDS_STENCIL_OUTOFMEMORY "°O¾ÐÅ餣¨¬" - IDS_STENCIL_UNEXPECTED "¥¼¹w´Áªº¿ù»~" -END - -#endif diff --git a/ATL90/include/l.deu/atlsrv.rc b/ATL90/include/l.deu/atlsrv.rc deleted file mode 100644 index 2ffca35..0000000 --- a/ATL90/include/l.deu/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "Ungültige AnforderungUngültige Anforderung" - IDS_ATLSRV_AUTH_REQUIRED - "Authorisierung erforderlichAuthorisierung erforderlich" - IDS_ATLSRV_FORBIDDEN "UnzulässigUnzulässig" - IDS_ATLSRV_NOT_FOUND "Nicht gefundenNicht gefunden" - IDS_ATLSRV_SERVER_ERROR "ServerfehlerServerfehler" - IDS_ATLSRV_NOT_IMPLEMENTED - "Nicht implementiertNicht implementiert" - IDS_ATLSRV_BAD_GATEWAY "Ungültiger GatewayUngültiger Gateway" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "Dienst nicht verfügbarDienst nicht verfügbar" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Serverfehler

Serverfehler

SRF-Datei konnte nicht geladen werden." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "Serverfehler

Serverfehler

Die angeforderte SRF-Datei wurde geladen, aber konnte nicht verarbeitet werden." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "Serverfehler

Serverfehler

Ein Windows-Systemobjekt konnte nicht erstellt werden." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "Serverfehler

Serverfehler

Ein Dateilesevorgang ist fehlgeschlagen." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Serverfehler

Serverfehler

Die angegebene Datei konnte nicht geöffnet werden." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "Serverfehler

Serverfehler

LoadLibrary fehlgeschlagen." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "Serverfehler

Serverfehler

Die Anforderungshandlerschnittstelle konnte nicht abgerufen werden." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "Serverfehler

Serverfehler

Auf dem Server ist nicht genügend Arbeitsspeicher verfügbar." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "Serverfehler

Serverfehler

Auf dem Server ist ein unerwarteter Fehler aufgetreten." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "Serverfehler

Serverfehler

Beim Bearbeiten des angeforderten Stencils ist ein unerwarteter Fehler auf dem Server aufgetreten." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "Serverfehler

Serverfehler

Der Server konnte den angeforderten Stencil nicht laden. Die Stencildatei ist möglicherweise beschädigt oder nicht auf dem Webserver vorhanden." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "Serverfehler

Serverfehler

Ein in einem Handlertag benannter Handler für den angeforderten Stencil konnte nicht im angegebenen Handler gefunden werden .dll." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "Serverfehler

Serverfehler

Der Stencil enthält ein Handlertag, das vom Stencilprozessor nicht richtig bearbeitet werden konnte und kein Handlertag enthält. Überprüfen Sie die Stencilsyntax für den angeforderten Stencil." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "Serverfehler

Serverfehler

Der angeforderte Stencil enthält kein Handlertag." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "Serverfehler

Serverfehler

Im angeforderten Stencil wurde ein Ersetzungstag mit einem zu langen Namen gefunden. Die maximale Länge des Ersetzungsnamen muss kleiner oder gleich der ATL_MAX_METHOD_NAME-Konstante sein, die in atlstencil.h definiert ist." - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "Serverfehler

Serverfehler

Im angeforderten Stencil wurde ein Ersetzungstag mit einem zu langen Handlernamen gefunden, der die id.tagname-Syntax verwendet. Die maximale Länge des Handlernamens muss kleiner oder gleich der ATL_MAX_METHOD_NAME-Konstante sein, die in atlstencil.h definiert ist." - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Serverfehler

Serverfehler

Die Anforderung ist fehlgeschlagen, da versucht wurde, den Client zu imitieren." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "Serverfehler

Serverfehler

Die ISAPI-Erweiterung für die Anforderung konnte nicht geladen werden, da ein unbekannter Fehler aufgetreten ist." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "Anforderungsheap konnte nicht erstellt werden" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "Workerthread konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "Kritischer Abschnitt konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Threadpool konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL-Cache konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Seitencache konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Stencilcache konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "Sitzungsstatusdienst konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blobcache konnte nicht initialisiert werden" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "Dateicache konnte nicht initialisiert werden" - - IDS_PERFMON_CACHE "ATL-Server:Cache" - IDS_PERFMON_CACHE_HELP "Informationen über den ATL-Servercache" - IDS_PERFMON_HITCOUNT "Cachetrefferanzahl" - IDS_PERFMON_HITCOUNT_HELP "Anzahl der Cachetreffer" - IDS_PERFMON_MISSCOUNT "Fehlgeschlagene Cachezugriffe" - IDS_PERFMON_MISSCOUNT_HELP "Anzahl der fehlgeschlagenen Cachezugriffe" - IDS_PERFMON_CURRENTALLOCATIONS "Aktuelle Cachezuordnungen" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "Aktuelle Speicherzuordnung für den Cache" - IDS_PERFMON_MAXALLOCATIONS "Max. Cachezuordnungen" - IDS_PERFMON_MAXALLOCATIONS_HELP "Maximale Speicherzuordnung für den Cache" - IDS_PERFMON_CURRENTENTRIES "Aktuelle Cacheeinträge" - IDS_PERFMON_CURRENTENTRIES_HELP "Aktuelle Anzahl der Cacheeinträge" - IDS_PERFMON_MAXENTRIES "Max. Cacheeinträge" - IDS_PERFMON_MAXENTRIES_HELP "Maximale Anzahl der Cacheeinträge" - IDS_PERFMON_HITCOUNTRATE "Cachetrefferanzahl" - IDS_PERFMON_HITCOUNTRATE_HELP "Anzahl der Treffer pro Sekunde" - IDS_PERFMON_REQUEST "ATL-Server:Request" - IDS_PERFMON_REQUEST_HELP "Statistik über die eingehenden Serveranforderungen" - IDS_PERFMON_REQUEST_TOTAL "Serveranforderungen insgesamt" - IDS_PERFMON_REQUEST_TOTAL_HELP "Gesamtanzahl der Anforderungen" - IDS_PERFMON_REQUEST_FAILED "Fehlgeschlagene Serveranforderungen" - IDS_PERFMON_REQUEST_FAILED_HELP "Anzahl der fehlgeschlagenen Anforderungen" - IDS_PERFMON_REQUEST_RATE "Serveranforderungen /Sek." - IDS_PERFMON_REQUEST_RATE_HELP "Anzahl der Anforderungen pro Sekunde" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Durchschnittliche Antwortzeit" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "Durchschnittliche Bearbeitungszeit" - IDS_PERFMON_REQUEST_CURR_WAITING "Aktuelle Anforderungen in der Warteschlange" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Die aktuvelle Anzahl der Anforderungen, die auf die Bearbeitung warten" - IDS_PERFMON_REQUEST_MAX_WAITING "Maximale Anforderungen in der Warteschlange" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "Die maximale Anzahl der Anforderungen, die auf die Bearbeitung warten" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "AKtive Threads" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "Die Anzahl der Threads, die Anforderungen bearbeiten" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

Beim Bearbeiten einer Stencildatei sind folgende Fehler aufgetreten:

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
Fehlertyp{{GetErrorText}}
Zeilennummer{{GetErrorLineNumber}}
Fehlertext
{{GetErrorLine}}
\r\n{{endwhile}}
Stencilausgabe:\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} ohne {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} ohne {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} ohne {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} ohne {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} ohne {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} ohne {{if}} oder {{else}}" - - IDS_STENCIL_INVALID_HANDLER "Ungültiges Handlertag" - IDS_STENCIL_NULLPARAM "NULL-Parameter für ParseReplacements" - IDS_STENCIL_INVALIDSTRING "An ParseReplacements wurde eine leere oder negative Zeichenfolge übergeben" - IDS_STENCIL_EMBEDDED_NULL "Eingebettetes Nullzeichen in Stencil" - IDS_STENCIL_UNMATCHED_TAG_START "Unterschiedlich {{" - IDS_STENCIL_MISMATCHED_TAG_START "Nicht übereinstimmend {{" - IDS_STENCIL_BAD_PARAMETER "Ungültiger Parameter" - IDS_STENCIL_METHODNAME_TOO_LONG "Methodenname zu lang" - IDS_STENCIL_HANDLERNAME_TOO_LONG "Handlername zu lang" - IDS_STENCIL_INVALID_SUBHANDLER "Ungültiges Unterhandlertag" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "Nicht aufgelöste Ersetzung : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "Die einbezogene Datei konnte nicht geöffnet werden" - IDS_STENCIL_INCLUDE_INVALID "Die einbezogene Datei ist keine Datenträgerdatei" - - IDS_STENCIL_MLANG_COCREATE "CMultiLanguage konnte nicht erstellt werden" - IDS_STENCIL_MLANG_LCID "Beim Abfragen der lcid ist ein Fehler aufgetreten" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo fehlgeschlagen" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo fehlgeschlagen" - - IDS_STENCIL_OUTOFMEMORY "Nicht genügend Speicher verfügbar" - IDS_STENCIL_UNEXPECTED "Unerwarteter Fehler" -END - -#endif diff --git a/ATL90/include/l.esp/atlsrv.rc b/ATL90/include/l.esp/atlsrv.rc deleted file mode 100644 index 15bf88d..0000000 --- a/ATL90/include/l.esp/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "Solicitud incorrectaSolicitud incorrecta" - IDS_ATLSRV_AUTH_REQUIRED - "Autorización requeridaSe necesita autorización" - IDS_ATLSRV_FORBIDDEN "ProhibidoProhibido" - IDS_ATLSRV_NOT_FOUND "No se encontróNo se encontró" - IDS_ATLSRV_SERVER_ERROR "Error del servidorError del servidor" - IDS_ATLSRV_NOT_IMPLEMENTED - "No implementadoNo implementado" - IDS_ATLSRV_BAD_GATEWAY "Puerta de enlace no válidaPuerta de enlace no válida" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "Servicio no disponibleServicio no disponible" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Error del servidor

Error del servidor

No se puede cargar el archivo SRF." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "Error del servidor

Error del servidor

El archivo SRF solicitado se cargó pero no se pudo procesar correctamente." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "Error del servidor

Error del servidor

No se puede crear un objeto del sistema Windows." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "Error del servidor

Error del servidor

Error en la operación de lectura de archivo." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Error en el servidor

Error en el servidor

No se puede abrir el archivo especificado." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "Error del servidor

Error del servidor

Error de LoadLibrary." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "Error del servidor

Error del servidor

Error al recuperar la interfaz del controlador de solicitudes." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "Error del servidor

Error del servidor

El servidor no tiene suficiente memoria." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "Error del servidor

Error del servidor

El servidor detectó un error inesperado." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "Error del servidor

Error del servidor

El servidor detectó un error inesperado al intentar analizar el cliché solicitado." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "Error del servidor

Error del servidor

Error del servidor al cargar el cliché solicitado. Es posible que el archivo de cliché esté dañado o no se encuentre en este servidor Web." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "Error del servidor

Error del servidor

No se encontró uno de los controladores nombrado en una etiqueta de controlador para el cliché solicitado en el archivo DLL del controlador especificado." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "Error del servidor

Error del servidor

Este cliché contiene una etiqueta de controlador que el procesador de cliché no puede analizar correctamente o bien no contiene ninguna etiqueta de controlador. Compruebe que la sintaxis del cliché solicitado sea correcta." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "Error del servidor

Error del servidor

El cliché solicitado no contiene una etiqueta de controlador." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "Error del servidor

Error del servidor

Se encontró una etiqueta de reemplazo en el cliché solicitado con un nombre de reemplazo demasiado largo. La longitud máxima del nombre de reemplazo debe ser inferior o igual a la constante ATL_MAX_METHOD_NAME definida en atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "Error del servidor

Error del servidor

Se encontró una etiqueta de reemplazo que utiliza la sintaxis id.tagname en el cliché seleccionado con un nombre de controlador demasiado largo. La longitud máxima del nombre del controlador debe ser inferior o igual a la constante ATL_MAX_METHOD_NAME definida en atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Error del servidor

Error del servidor

Error al intentar identificar al cliente que realiza la solicitud." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "Error del servidor

Error del servidor

Error desconocido de la extensión ISAPI utilizada para dar servicio a esta solicitud al realizar la carga." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "Error al crear el montón de solicitudes" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "Error al inicializar el subproceso de trabajo" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "Error al inicializar la sección crítica" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Error al inicializar el grupo de subprocesos" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "Error al inicializar la caché de archivos DLL" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Error al inicializar la caché de páginas" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Error al inicializar la caché de clichés" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "Error al inicializar el servicio de estado de sesión" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Error al inicializar la caché de objetos binarios" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "Error al inicializar la caché de archivos" - - IDS_PERFMON_CACHE "Servidor ATL:caché" - IDS_PERFMON_CACHE_HELP "Información sobre la caché del servidor ATL" - IDS_PERFMON_HITCOUNT "Recuento de visitas de caché" - IDS_PERFMON_HITCOUNT_HELP "Número de visitas de caché" - IDS_PERFMON_MISSCOUNT "Recuento de errores de caché" - IDS_PERFMON_MISSCOUNT_HELP "Número de errores de caché" - IDS_PERFMON_CURRENTALLOCATIONS "Asignaciones actuales de caché" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "Memoria actual asignada a caché" - IDS_PERFMON_MAXALLOCATIONS "Asignaciones máximas de caché" - IDS_PERFMON_MAXALLOCATIONS_HELP "Memoria máxima asignada a caché" - IDS_PERFMON_CURRENTENTRIES "Entradas actuales de caché" - IDS_PERFMON_CURRENTENTRIES_HELP "Número actual de entradas de caché" - IDS_PERFMON_MAXENTRIES "Entradas máximas de caché" - IDS_PERFMON_MAXENTRIES_HELP "Número máximo de entradas de caché" - IDS_PERFMON_HITCOUNTRATE "Velocidad de recuento de visitas de caché" - IDS_PERFMON_HITCOUNTRATE_HELP "Número de recuentos de visitas por segundo" - IDS_PERFMON_REQUEST "Servidor ATL:solicitud" - IDS_PERFMON_REQUEST_HELP "Estadísticas de las solicitudes que entran en el servidor" - IDS_PERFMON_REQUEST_TOTAL "Solicitudes totales del servidor" - IDS_PERFMON_REQUEST_TOTAL_HELP "Número total de solicitudes" - IDS_PERFMON_REQUEST_FAILED "Solicitudes no procesadas del servidor" - IDS_PERFMON_REQUEST_FAILED_HELP "Número de solitudes no procesadas" - IDS_PERFMON_REQUEST_RATE "Solicitudes del servidor /seg" - IDS_PERFMON_REQUEST_RATE_HELP "Número de solicitudes por segundo" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Tiempo medio de respuesta" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "Tiempo medio empleado en administrar una solicitud" - IDS_PERFMON_REQUEST_CURR_WAITING "Solicitudes en cola actuales" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Número actual de solicitudes en espera de administración" - IDS_PERFMON_REQUEST_MAX_WAITING "Solicitudes máximas en cola" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "Número máximo de solicitudes en espera de administración" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "Subprocesos activos" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "Número de subprocesos que administran solicitudes activamente" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

Errores al analizar un archivo de clichés:

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
Tipo de error{{GetErrorText}}
Número de línea{{GetErrorLineNumber}}
Texto del error
{{GetErrorLine}}
\r\n{{endwhile}}
Resultados de cliché:\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} sin {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} sin {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} sin {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} sin {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} sin {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} sin {{if}} o {{else}}" - - IDS_STENCIL_INVALID_HANDLER "Etiqueta de controlador no válida" - IDS_STENCIL_NULLPARAM "Parámetro NULL para ParseReplacements" - IDS_STENCIL_INVALIDSTRING "Se pasó una cadena vacía o negativa a ParseReplacements" - IDS_STENCIL_EMBEDDED_NULL "Carácter null incrustado en el cliché" - IDS_STENCIL_UNMATCHED_TAG_START "Las llaves {{ no coinciden" - IDS_STENCIL_MISMATCHED_TAG_START "Diferente número de llaves {{" - IDS_STENCIL_BAD_PARAMETER "Parámetro erróneo" - IDS_STENCIL_METHODNAME_TOO_LONG "Nombre de método demasiado largo" - IDS_STENCIL_HANDLERNAME_TOO_LONG "Nombre de controlador demasiado largo" - IDS_STENCIL_INVALID_SUBHANDLER "Etiqueta de controlador secundario no válida" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "Reemplazo no resuelto: '%s'" - - IDS_STENCIL_INCLUDE_ERROR "No se puede abrir el archivo incluido" - IDS_STENCIL_INCLUDE_INVALID "El archivo incluido no es un archivo de disco" - - IDS_STENCIL_MLANG_COCREATE "No se puede crear CMultiLanguage" - IDS_STENCIL_MLANG_LCID "Error al obtener el identificador LCID" - IDS_STENCIL_MLANG_GETLOCALE "Error en GetLocaleInfo" - IDS_STENCIL_MLANG_GETCHARSET "Error en GetCharsetInfo" - - IDS_STENCIL_OUTOFMEMORY "Memoria insuficiente" - IDS_STENCIL_UNEXPECTED "Error inesperado" -END - -#endif diff --git a/ATL90/include/l.fra/atlsrv.rc b/ATL90/include/l.fra/atlsrv.rc deleted file mode 100644 index dc26cb8..0000000 --- a/ATL90/include/l.fra/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "Demande incorrecteDemande incorrecte" - IDS_ATLSRV_AUTH_REQUIRED - "Autorisation requiseUne autorisation est requise" - IDS_ATLSRV_FORBIDDEN "InterditInterdit" - IDS_ATLSRV_NOT_FOUND "IntrouvableIntrouvable" - IDS_ATLSRV_SERVER_ERROR "Erreur serveurErreur serveur" - IDS_ATLSRV_NOT_IMPLEMENTED - "Non implémentéNon implémenté" - IDS_ATLSRV_BAD_GATEWAY "Passerelle incorrectePasserelle incorrecte" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "Service non disponibleService non disponible" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Erreur serveur

Erreur serveur

Impossible de charger le fichier SRF." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "Erreur serveur

Erreur serveur

Le fichier SRF requis a été chargé mais n'a pas pu être traité correctement." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "Erreur serveur

Erreur serveur

Un objet système Windows n'a pas pu être créé." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "Erreur serveur

Erreur serveur

Une opération de lecture de fichier a échoué." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Erreur serveur

Erreur serveur

Le fichier spécifié n'a pas pu être ouvert." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "Erreur serveur

Erreur serveur

Échec de LoadLibrary." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "Erreur serveur

Erreur serveur

Échec de la récupération de l'interface du gestionnaire des demandes." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "Erreur serveur

Erreur serveur

La mémoire du serveur est saturée." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "Erreur serveur

Erreur serveur

Le serveur a rencontré une erreur inattendue." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "Erreur serveur

Erreur serveur

Le serveur a rencontré une erreur inattendue lors de l'analyse du stencil requis." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "Erreur serveur

Erreur serveur

Le serveur n'a pas pu charger le stencil requis. Le fichier stencil est peut-être endommagé ou manquant sur ce serveur Web." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "Erreur serveur

Erreur serveur

Un gestionnaire spécifié dans une balise de gestionnaire pour le stencil requis n'a pas pu être trouvé dans le fichier .dll de gestionnaire spécifié." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "Erreur serveur

Erreur serveur

Soit ce stencil contient une balise de gestionnaire qui n'a pas pu être analysée correctement par le processeur de stencil, soit il ne contient aucune balise de gestionnaire. Vérifiez la syntaxe correcte à utiliser pour le stencil requis." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "Erreur serveur

Erreur serveur

Le stencil requis ne contient aucune balise de gestionnaire." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "Erreur serveur

Erreur serveur

Le stencil requis contient une balise de remplacement dans laquelle un nom de remplacement est trop long. La longueur maximale du nom de remplacement doit être inférieure ou égale à la valeur de la constante ATL_MAX_METHOD_NAME définie dans atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "Erreur serveur

Erreur serveur

Le stencil requis contient une balise de remplacement, utilisant la syntaxe id.nombalise, dans laquelle un nom de gestionnaire est trop long. La longueur maximale du nom d'un gestionnaire doit être inférieure ou égale à la valeur de la constante ATL_MAX_METHOD_NAME définie dans atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Erreur serveur

Erreur serveur

Impossible d'emprunter l'identité du client qui a émis la demande." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "Erreur serveur

Erreur serveur

L'extension ISAPI utilisée pour traiter cette demande n'a pas pu être chargée en raison d'une erreur inconnue." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "Échec de la création du segment de mémoire demandée" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "Échec de l'initialisation de la thread de traitement" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "Échec de l'initialisation de la section critique" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Échec de l'initialisation du pool de threads" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "Échec de l'initialisation du cache de DLL" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Échec de l'initialisation du cache de page" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Échec de l'initialisation du cache du stencil" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "Échec de l'initialisation du service d'état de session" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Échec de l'initialisation du cache BLOB" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "Échec de l'initialisation du cache du fichier" - - IDS_PERFMON_CACHE "Serveur ATL : Cache" - IDS_PERFMON_CACHE_HELP "Information sur le cache du serveur ATL" - IDS_PERFMON_HITCOUNT "Accès cache avec résultat" - IDS_PERFMON_HITCOUNT_HELP "Nombre des accès cache avec résultat" - IDS_PERFMON_MISSCOUNT "Accès cache sans résultat" - IDS_PERFMON_MISSCOUNT_HELP "Nombre des accès cache sans résultat" - IDS_PERFMON_CURRENTALLOCATIONS "Allocations cache actuelles" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "Mémoire actuellement allouée au cache" - IDS_PERFMON_MAXALLOCATIONS "Allocations cache maximales" - IDS_PERFMON_MAXALLOCATIONS_HELP "Mémoire maximale allouée au cache" - IDS_PERFMON_CURRENTENTRIES "Entrées cache actuelles" - IDS_PERFMON_CURRENTENTRIES_HELP "Nombre actuel d'entrées du cache" - IDS_PERFMON_MAXENTRIES "Entrées cache maximales" - IDS_PERFMON_MAXENTRIES_HELP "Nombre maximal d'entrées du cache" - IDS_PERFMON_HITCOUNTRATE "Taux d'accès au cache" - IDS_PERFMON_HITCOUNTRATE_HELP "Nombre d'accès par seconde" - IDS_PERFMON_REQUEST "Serveur ATL : Demande" - IDS_PERFMON_REQUEST_HELP "Statistiques sur les demandes serveur entrantes" - IDS_PERFMON_REQUEST_TOTAL "Total des demandes serveur" - IDS_PERFMON_REQUEST_TOTAL_HELP "Nombre total des demandes" - IDS_PERFMON_REQUEST_FAILED "Demandes serveur échouées" - IDS_PERFMON_REQUEST_FAILED_HELP "Nombre de demandes ayant échoué" - IDS_PERFMON_REQUEST_RATE "Demandes serveur/s" - IDS_PERFMON_REQUEST_RATE_HELP "Nombre de demandes par seconde" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Temps de réponse moyen" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "Durée moyenne du traitement d'une demande" - IDS_PERFMON_REQUEST_CURR_WAITING "Demandes actuelles en attente" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Nombre de demandes actuellement en attente d'être traitées" - IDS_PERFMON_REQUEST_MAX_WAITING "Demandes maximales en attente" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "Nombre maximal de demandes en attente d'être traitées" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "Threads actives" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "Nombre de threads qui traitent activement des demandes" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

Lors de la tentative d'analyse d'un fichier stencil, les erreurs suivantes se sont produites :

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
Type d'erreur{{GetErrorText}}
Numéro de ligne{{GetErrorLineNumber}}
Texte de l'erreur
{{GetErrorLine}}
\r\n{{endwhile}}
La sortie du stencil est la suivante :\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} sans {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} sans {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} sans {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} sans {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} sans {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} sans {{if}} ou {{else}}" - - IDS_STENCIL_INVALID_HANDLER "Balise de gestionnaire non valide" - IDS_STENCIL_NULLPARAM "Paramètre NULL à ParseReplacements" - IDS_STENCIL_INVALIDSTRING "Chaîne vide ou négative passée à ParseReplacements" - IDS_STENCIL_EMBEDDED_NULL "Caractère null incorporé dans le stencil" - IDS_STENCIL_UNMATCHED_TAG_START "{{ non apparié" - IDS_STENCIL_MISMATCHED_TAG_START "{{ incompatible" - IDS_STENCIL_BAD_PARAMETER "Paramètre incorrect" - IDS_STENCIL_METHODNAME_TOO_LONG "Nom de méthode trop long" - IDS_STENCIL_HANDLERNAME_TOO_LONG "Nom de gestionnaire trop long" - IDS_STENCIL_INVALID_SUBHANDLER "Balise de sous-gestionnaire non valide" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "Remplacement non résolu : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "Impossible d'ouvrir le fichier inclus" - IDS_STENCIL_INCLUDE_INVALID "Le fichier inclus n'est pas un fichier disque" - - IDS_STENCIL_MLANG_COCREATE "Impossible de créer CMultiLanguage" - IDS_STENCIL_MLANG_LCID "Erreur lors de l'obtention du lcid" - IDS_STENCIL_MLANG_GETLOCALE "Échec de GetLocaleInfo" - IDS_STENCIL_MLANG_GETCHARSET "Échec de GetCharsetInfo" - - IDS_STENCIL_OUTOFMEMORY "Mémoire insuffisante" - IDS_STENCIL_UNEXPECTED "Erreur inattendue" -END - -#endif diff --git a/ATL90/include/l.ita/atlsrv.rc b/ATL90/include/l.ita/atlsrv.rc deleted file mode 100644 index 009e0b2..0000000 --- a/ATL90/include/l.ita/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "Richiesta non validaRichiesta non valida" - IDS_ATLSRV_AUTH_REQUIRED - "Autorizzazione richiestaAutorizzazione richiesta" - IDS_ATLSRV_FORBIDDEN "Non consentitoNon consentito" - IDS_ATLSRV_NOT_FOUND "Non trovatoNon trovato" - IDS_ATLSRV_SERVER_ERROR "Errore del serverErrore del server" - IDS_ATLSRV_NOT_IMPLEMENTED - "Non implementatoNon implementato" - IDS_ATLSRV_BAD_GATEWAY "Gateway non validoGateway non valido" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "Servizio non disponibileServizio non disponibile" - IDS_ATLSRV_SERVER_ERROR_BADSRF "Errore del server

Errore del server

Impossibile caricare il file SRF." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "Errore del server

Errore del server

Il file SRF richiesto è stato caricato ma non elaborato correttamente." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "Errore del server

Errore del server

Impossibile creare un oggetto di sistema Windows." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "Errore del server

Errore del server

Operazione di lettura file non riuscita." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Errore del server

Errore del server

Impossibile aprire il file specificato." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "Errore del server

Errore del server

LoadLibrary non riuscito." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "Errore del server

Errore del server

Impossibile recuperare l'interfaccia del gestore delle richieste." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "Errore del server

Errore del server

Memoria del server esaurita." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "Errore del server

Errore del server

Errore imprevisto del server." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "Errore del server

Errore del server

Errore imprevisto del server durante il tentativo di analizzare il file SRF richiesto." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "Errore del server

Errore del server

Impossibile caricare il file SRF richiesto. Il file potrebbe essere danneggiato o mancante sul server Web." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "Errore del server

Errore del server

Impossibile trovare nella DLL del gestore specificata uno dei gestori denominati in un tag di gestione per il file SRF richiesto." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "Errore del server

Errore del server

Questo file SRF contiene un tag di gestione che non può essere analizzato correttamente dal processore dei file SRF o non contiene affatto un tag di gestione. Cercare nel file SRF richiesto la sintassi appropriata." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "Errore del server

Errore del server

Il file SRF richiesto non contiene un tag di gestione." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "Errore del server

Errore del server

Rilevato un tag di sostituzione nel file SRF richiesto con un nome di sostituzione troppo lungo. Il nome di sostituzione deve contenere un numero di caratteri inferiore o uguale alla costante ATL_MAX_METHOD_NAME definita in atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "Errore del server

Errore del server

Rilevato nel file SRF richiesto un tag di sostituzione che utilizza la sintassi id.tagname con un nome di gestore troppo lungo. Un nome di gestore deve contenere un numero di caratteri inferiore o uguale alla costante ATL_MAX_METHOD_NAME definita in atlstencil.h" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Errore del server

Errore del server

Tentativo di rappresentare il client eseguendo la richiesta non riuscito." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "Errore del server

Errore del server

L'estensione ISAPI utilizzata per soddisfare questa richiesta non è riuscita a eseguire il caricamento correttamente. Errore sconosciuto." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "Creazione heap richiesta non riuscita" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "Inizializzazione thread di lavoro non riuscita" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "Inizializzazione sezione critica non riuscita" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "Inizializzazione pool di thread non riuscita" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "Inizializzazione cache DLL non riuscita" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "Inizializzazione cache pagina non riuscita" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "Inizializzazione cache file SRF non riuscita" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "Inizializzazione servizio di stato sessione non riuscita" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Inizializzazione cache dati BLOB non riuscita" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "Inizializzazione cache file non riuscita" - - IDS_PERFMON_CACHE "Server ATL:Cache" - IDS_PERFMON_CACHE_HELP "Informazioni sulla cache del server ATL" - IDS_PERFMON_HITCOUNT "Passaggi cache" - IDS_PERFMON_HITCOUNT_HELP "Numero di riscontri cache" - IDS_PERFMON_MISSCOUNT "Conteggio mancati riscontri cache" - IDS_PERFMON_MISSCOUNT_HELP "Numero di mancati riscontri cache" - IDS_PERFMON_CURRENTALLOCATIONS "Allocazioni correnti cache" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "Memoria corrente allocata per la cache" - IDS_PERFMON_MAXALLOCATIONS "Numero massimo allocazioni cache" - IDS_PERFMON_MAXALLOCATIONS_HELP "Quantità massima di memoria allocata per la cache" - IDS_PERFMON_CURRENTENTRIES "Voci correnti cache" - IDS_PERFMON_CURRENTENTRIES_HELP "Numero corrente di voci della cache" - IDS_PERFMON_MAXENTRIES "Numero massimo voci cache" - IDS_PERFMON_MAXENTRIES_HELP "Numero massimo di voci della cache" - IDS_PERFMON_HITCOUNTRATE "Frequenza passaggi cache" - IDS_PERFMON_HITCOUNTRATE_HELP "Numero di passaggi al secondo" - IDS_PERFMON_REQUEST "Server ATL:Richiesta" - IDS_PERFMON_REQUEST_HELP "Statistica sulle richieste pervenute al server" - IDS_PERFMON_REQUEST_TOTAL "Richieste totali al server" - IDS_PERFMON_REQUEST_TOTAL_HELP "Numero totale di richieste" - IDS_PERFMON_REQUEST_FAILED "Richieste al server non riuscite" - IDS_PERFMON_REQUEST_FAILED_HELP "Numero di richieste non riuscite" - IDS_PERFMON_REQUEST_RATE "Richieste al server /sec" - IDS_PERFMON_REQUEST_RATE_HELP "Numero di richieste al secondo" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Tempo medio di risposta" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "Tempo medio impiegato per la gestione di una richiesta" - IDS_PERFMON_REQUEST_CURR_WAITING "Richieste correnti in coda" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Numero corrente di richieste in attesa di essere gestite" - IDS_PERFMON_REQUEST_MAX_WAITING "Numero massimo di richieste in coda" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "Numero massimo di richieste in attesa di essere gestite" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "Thread attivi" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "Numero di thread che gestiscono attivamente le richieste" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

Durante l'analisi di un file SRF, si è verificato il seguente errore:

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
Tipo di errore{{GetErrorText}}
Numero della riga{{GetErrorLineNumber}}
Testo dell'errore
{{GetErrorLine}}
\r\n{{endwhile}}
Output file SRF:\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} senza {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} senza {{endif}}" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} senza {{endwhile}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} senza {{while}}" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} senza {{if}}" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} senza {{if}} o {{else}}" - - IDS_STENCIL_INVALID_HANDLER "Tag di gestione non valido" - IDS_STENCIL_NULLPARAM "Parametro NULL in ParseReplacements" - IDS_STENCIL_INVALIDSTRING "Stringa vuota o negativa passata a ParseReplacements" - IDS_STENCIL_EMBEDDED_NULL "Carattere null incorporato in file SRF" - IDS_STENCIL_UNMATCHED_TAG_START "{{ non corrispondenti" - IDS_STENCIL_MISMATCHED_TAG_START "{{ non corrispondenti" - IDS_STENCIL_BAD_PARAMETER "Parametro non valido" - IDS_STENCIL_METHODNAME_TOO_LONG "Nome metodo troppo lungo" - IDS_STENCIL_HANDLERNAME_TOO_LONG "Nome gestore troppo lungo" - IDS_STENCIL_INVALID_SUBHANDLER "Tag di gestione secondaria non valida" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "Sostituzione non risolta: '%s'" - - IDS_STENCIL_INCLUDE_ERROR "Impossibile aprire il file incluso" - IDS_STENCIL_INCLUDE_INVALID "Il file incluso non è un file su disco" - - IDS_STENCIL_MLANG_COCREATE "Impossibile creare CMultiLanguage" - IDS_STENCIL_MLANG_LCID "Errore durante la ricerca di lcid" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo non riuscito" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo non riuscito" - - IDS_STENCIL_OUTOFMEMORY "Memoria insufficiente" - IDS_STENCIL_UNEXPECTED "Errore imprevisto" -END - -#endif diff --git a/ATL90/include/l.jpn/atlsrv.rc b/ATL90/include/l.jpn/atlsrv.rc deleted file mode 100644 index d908acc..0000000 --- a/ATL90/include/l.jpn/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "•s“K؂ȗv‹•s“K؂ȗv‹" - IDS_ATLSRV_AUTH_REQUIRED - "”FØ‚ª•K—v‚Å‚·”FØ‚ª•K—v‚Å‚·" - IDS_ATLSRV_FORBIDDEN "Œ ŒÀ‚È‚µ/title></head><body>Œ ŒÀ‚È‚µ</body></html>" - IDS_ATLSRV_NOT_FOUND "<html><head><title>Œ©‚‚©‚è‚Ü‚¹‚ñŒ©‚‚©‚è‚Ü‚¹‚ñ" - IDS_ATLSRV_SERVER_ERROR "ƒT[ƒo[ ƒGƒ‰[ƒT[ƒo[ ƒGƒ‰[" - IDS_ATLSRV_NOT_IMPLEMENTED - "ŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚¹‚ñŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ" - IDS_ATLSRV_BAD_GATEWAY "•s“K؂ȃQ[ƒgƒEƒFƒC•s“K؂ȃQ[ƒgƒEƒFƒC" - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "ƒT[ƒrƒX‚ªŽg—p‚Å‚«‚Ü‚¹‚ñƒT[ƒrƒX‚ªŽg—p‚Å‚«‚Ü‚¹‚ñ" - IDS_ATLSRV_SERVER_ERROR_BADSRF "ƒT[ƒo[ ƒGƒ‰[

Server Error

SRF ƒtƒ@ƒCƒ‹‚ð“ǂݞ‚߂܂¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

—v‹‚³‚ꂽ SRF ƒtƒ@ƒCƒ‹‚͓ǂݞ‚߂܂µ‚½‚ªA³í‚ɃvƒƒZƒX‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

Windows ƒVƒXƒeƒ€ ƒIƒuƒWƒFƒNƒg‚ð쬂ł«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ƒtƒ@ƒCƒ‹‚̓ǂݎæ‚葀삪‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

Žw’肳‚ꂽƒtƒ@ƒCƒ‹‚ðŠJ‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_LOADLIB "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

LoadLibrary ‚ªŽ¸”s‚µ‚Ü‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ƒnƒ“ƒhƒ‰—v‹ ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ðŽæ“¾‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[‚̃ƒ‚ƒŠ‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[‚É—\Šú‚µ‚È‚¢ƒGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚ð‰ðÍ’†‚ÉAƒT[ƒo[‚É—\Šú‚µ‚È‚¢ƒGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ‚Í—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚ð“ǂݞ‚߂܂¹‚ñ‚Å‚µ‚½BƒXƒeƒ“ƒVƒ‹ ƒtƒ@ƒCƒ‹‚ª‰ó‚ê‚Ä‚¢‚é‚©A‚±‚Ì Web ƒT[ƒo[‚ɂȂ¢‰Â”\«‚ª‚ ‚è‚Ü‚·B" - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚̃nƒ“ƒhƒ‰ ƒ^ƒO‚Å–¼‘OŽw’肳‚ꂽƒnƒ“ƒhƒ‰‚Ì 1 ‚‚ªŽw’肳‚ꂽƒnƒ“ƒhƒ‰ .dll ‚ÉŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

‚±‚̃Xƒeƒ“ƒVƒ‹‚ÍAƒXƒeƒ“ƒVƒ‹ ƒvƒƒZƒbƒT‚É‚æ‚Á‚Ä“K؂ɉð͂ł«‚È‚¢ƒnƒ“ƒhƒ‰ ƒ^ƒO‚ðŠÜ‚ñ‚Å‚¢‚é‚©A‚Ü‚½‚̓nƒ“ƒhƒ‰ ƒ^ƒO‚ð‰½‚àŽ‚Á‚Ä‚¢‚Ü‚¹‚ñB—v‹‚µ‚½ƒXƒeƒ“ƒVƒ‹‚̃Xƒeƒ“ƒVƒ‹\•¶‚ª“K؂ł ‚é‚©‚Ç‚¤‚©’m‚ç‚ׂĂ­‚¾‚³‚¢B" - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚̓nƒ“ƒhƒ‰ ƒ^ƒO‚ðŽ‚Á‚Ä‚¢‚Ü‚¹‚ñB" - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚Å’uŠ·ƒ^ƒO‚ªŒ©‚‚©‚è‚Ü‚µ‚½‚ªA’uŠ·–¼‚ª’·‚·‚¬‚Ü‚·B’uŠ·–¼‚ÌÅ‘åŒÀ‚Ì’·‚³‚ÍAatlstencil.h ‚Å’è‹`‚³‚ꂽ ATL_MAX_METHOD_NAME ’è” ‚Æ“¯‚¶‚©‚»‚ê‚æ‚è’Z‚­‚È‚­‚Ă͂Ȃè‚Ü‚¹‚ñB" - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

ID.tagname \•¶‚ðŽg—p‚·‚é’uŠ·ƒ^ƒO‚ªA—v‹‚³‚ꂽƒXƒeƒ“ƒVƒ‹‚ÅŒ©‚‚©‚è‚Ü‚µ‚½‚ªA‚±‚̃^ƒO‚̃nƒ“ƒhƒ‰–¼‚Í’·‚·‚¬‚Ü‚·Bƒnƒ“ƒhƒ‰–¼‚ÌÅ‘åŒÀ‚Ì’·‚³‚ÍAatlstencil.h ‚Å’è‹`‚³‚ꂽ ATL_MAX_METHOD_NAME ’蔂Ɠ¯‚¶‚©‚»‚ê‚æ‚è’Z‚­‚È‚­‚Ă͂Ȃè‚Ü‚¹‚ñB" - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "Server Error

Server Error

An attempt to impersonate the client making the request failed." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "ƒT[ƒo[ ƒGƒ‰[

ƒT[ƒo[ ƒGƒ‰[

‚±‚Ì—v‹‚É“š‚¦‚é‚½‚߂Ɏg—p‚³‚ê‚é ISAPI Šg’£Žq‚ÍA—\Šú‚µ‚È‚¢ƒGƒ‰[‚Ì‚½‚ß³í‚ɓǂݞ‚Ý‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "ƒq[ƒv‚Ì쬗v‹‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "ƒ[ƒJ[ ƒXƒŒƒbƒh‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "ƒNƒŠƒeƒBƒJƒ‹‚ȃZƒNƒVƒ‡ƒ“‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "ƒXƒŒƒbƒh ƒv[ƒ‹‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL ƒLƒƒƒbƒVƒ…‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "ƒy[ƒW ƒLƒƒƒbƒVƒ…‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "ƒXƒeƒ“ƒVƒ‹ ƒLƒƒƒbƒVƒ…‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "ƒZƒbƒVƒ‡ƒ“ó‘ÔƒT[ƒrƒX‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blob ƒLƒƒƒbƒVƒ…‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "ƒtƒ@ƒCƒ‹ ƒLƒƒƒbƒVƒ…‚̉Šú‰»‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B" - - IDS_PERFMON_CACHE "ATL ƒT[ƒo[ : ƒLƒƒƒbƒVƒ…" - IDS_PERFMON_CACHE_HELP "ATL ƒT[ƒo[ ƒLƒƒƒbƒVƒ…‚Ìî•ñ" - IDS_PERFMON_HITCOUNT "ƒLƒƒƒbƒVƒ…‚̃qƒbƒg ƒJƒEƒ“ƒg" - IDS_PERFMON_HITCOUNT_HELP "ƒLƒƒƒbƒVƒ… ƒqƒbƒg‚̉ñ”" - IDS_PERFMON_MISSCOUNT "ƒLƒƒƒbƒVƒ…‚̃~ƒX ƒJƒEƒ“ƒg" - IDS_PERFMON_MISSCOUNT_HELP "ƒLƒƒƒbƒVƒ…‚̃~ƒX ƒJƒEƒ“ƒg‚̉ñ”" - IDS_PERFMON_CURRENTALLOCATIONS "ƒLƒƒƒbƒVƒ…‚ÌŒ»Ý‚ÌŠ„‚è“–‚Ä" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "ƒLƒƒƒbƒVƒ…‚ÉŒ»ÝŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚郃‚ƒŠ" - IDS_PERFMON_MAXALLOCATIONS "ƒLƒƒƒbƒVƒ…‚ÌÅ‘å‚ÌŠ„‚è“–‚Ä" - IDS_PERFMON_MAXALLOCATIONS_HELP "ƒLƒƒƒbƒVƒ…‚ÉŠ„‚è“–‚Ä‚ç‚ꂽő僃‚ƒŠ" - IDS_PERFMON_CURRENTENTRIES "Œ»Ý‚̃LƒƒƒbƒVƒ… ƒGƒ“ƒgƒŠ" - IDS_PERFMON_CURRENTENTRIES_HELP "Œ»Ý‚̃LƒƒƒbƒVƒ… ƒGƒ“ƒgƒŠ‚Ì”" - IDS_PERFMON_MAXENTRIES "Å‘å‚̃LƒƒƒbƒVƒ… ƒGƒ“ƒgƒŠ" - IDS_PERFMON_MAXENTRIES_HELP "ƒLƒƒƒbƒVƒ… ƒGƒ“ƒgƒŠ‚ÌÅ‘å”" - IDS_PERFMON_HITCOUNTRATE "ƒLƒƒƒbƒVƒ…‚̃qƒbƒg ƒJƒEƒ“ƒg—¦" - IDS_PERFMON_HITCOUNTRATE_HELP "–ˆ•b‚̃qƒbƒg ƒJƒEƒ“ƒg”" - IDS_PERFMON_REQUEST "ATL ƒT[ƒo[ : —v‹" - IDS_PERFMON_REQUEST_HELP "ƒT[ƒo[‚É“ü‚Á‚Ä‚­‚é—v‹‚Ì“Œv" - IDS_PERFMON_REQUEST_TOTAL "ƒT[ƒo[—v‹‚Ì‘”" - IDS_PERFMON_REQUEST_TOTAL_HELP "—v‹‚Ì‘”" - IDS_PERFMON_REQUEST_FAILED "ƒT[ƒo[‚ª‰ž‚¶‚ç‚ê‚È‚©‚Á‚½—v‹ " - IDS_PERFMON_REQUEST_FAILED_HELP "‰ž‚¶‚ç‚ê‚È‚©‚Á‚½—v‹”" - IDS_PERFMON_REQUEST_RATE "ƒT[ƒo[—v‹ /sec" - IDS_PERFMON_REQUEST_RATE_HELP "–ˆ•b‚Ì—v‹”" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "•½‹Ï‚̉ž‘ÎŽžŠÔ" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "—v‹‚̈—‚É‚©‚©‚Á‚½•½‹ÏŽžŠÔ" - IDS_PERFMON_REQUEST_CURR_WAITING "Œ»ÝƒLƒ…[‚É‚ ‚é—v‹" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "Œ»Ý‰ž‘΂ð‘Ò‚Á‚Ä‚¢‚é—v‹”" - IDS_PERFMON_REQUEST_MAX_WAITING "ƒLƒ…[‚É‚ ‚é—v‹‚ÌÅ‘å”" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "‰ž‘΂ð‘Ò‚Á‚Ä‚¢‚é—v‹‚ÌÅ‘å”" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "ƒAƒNƒeƒBƒu ƒXƒŒƒbƒh" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "—v‹‚ðŒ»Ýˆ—’†‚̃XƒŒƒbƒh”" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{codepage 0}}

ƒXƒeƒ“ƒVƒ‹ ƒtƒ@ƒCƒ‹‚ð‰ðÍ’†‚ÉŽŸ‚̃Gƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½ :

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
ƒGƒ‰[‚ÌŽí—Þ{{GetErrorText}}
sƒiƒ“ƒo{{GetErrorLineNumber}}
ƒGƒ‰[ ƒeƒLƒXƒg
{{GetErrorLine}}
\r\n{{endwhile}}
ƒXƒeƒ“ƒVƒ‹o—͎͂Ÿ‚̂悤‚ɂȂÁ‚Ä‚¢‚Ü‚· :\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} ‚É {{endif}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} ‚É {{endif}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} ‚É {{endwhile}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} ‚É {{while}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} ‚É {{if}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} ‚É {{if}} or {{else}} ‚ªŒ‡‚¯‚Ä‚¢‚Ü‚·" - - IDS_STENCIL_INVALID_HANDLER "–³Œø‚ȃnƒ“ƒhƒ‰ ƒ^ƒO" - IDS_STENCIL_NULLPARAM "ParseReplacements ‚Ö‚Ì NULL ƒpƒ‰ƒ[ƒ^" - IDS_STENCIL_INVALIDSTRING "ParseReplacements ‚É‹óA‚Ü‚½‚Í•‰‚Ì•¶Žš—ñ‚ª“n‚³‚ê‚Ü‚µ‚½" - IDS_STENCIL_EMBEDDED_NULL "ƒXƒeƒ“ƒVƒ‹‚É –„‚ßž‚Ý‚Ì null •¶Žš‚ª‚ ‚è‚Ü‚·" - IDS_STENCIL_UNMATCHED_TAG_START "ˆê’v‚µ‚Ü‚¹‚ñ {{" - IDS_STENCIL_MISMATCHED_TAG_START "ˆê’v‚µ‚Ü‚¹‚ñ {{" - IDS_STENCIL_BAD_PARAMETER "•s“K؂ȃpƒ‰ƒ[ƒ^‚Å‚·" - IDS_STENCIL_METHODNAME_TOO_LONG "ƒƒ\ƒbƒh–¼‚ª’·‚·‚¬‚Ü‚·" - IDS_STENCIL_HANDLERNAME_TOO_LONG "ƒnƒ“ƒhƒ‰–¼‚ª’·‚·‚¬‚Ü‚·" - IDS_STENCIL_INVALID_SUBHANDLER "ƒTƒuƒnƒ“ƒhƒ‰ ƒ^ƒO‚ª–³Œø‚Å‚·" - IDS_STENCIL_UNRESOLVED_REPLACEMENT "’uŠ·‚ð‰ðŒˆ‚Å‚«‚Ü‚¹‚ñ : '%s'" - - IDS_STENCIL_INCLUDE_ERROR "“Y•tƒtƒ@ƒCƒ‹‚ðŠJ‚¯‚Ü‚¹‚ñ" - IDS_STENCIL_INCLUDE_INVALID "“Y•tƒtƒ@ƒCƒ‹‚̓fƒBƒXƒN ƒtƒ@ƒCƒ‹‚ł͂ ‚è‚Ü‚¹‚ñ" - - IDS_STENCIL_MLANG_COCREATE "CMultiLanguage ‚ð쬂ł«‚Ü‚¹‚ñ‚Å‚µ‚½" - IDS_STENCIL_MLANG_LCID "lcid Žæ“¾‚̃Gƒ‰[‚Å‚·" - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½" - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½" - - IDS_STENCIL_OUTOFMEMORY "ƒƒ‚ƒŠ‚ª‚ ‚è‚Ü‚¹‚ñ" - IDS_STENCIL_UNEXPECTED "—\Šú‚µ‚È‚¢ƒGƒ‰[‚Å‚·" -END - -#endif diff --git a/ATL90/include/l.kor/atlsrv.rc b/ATL90/include/l.kor/atlsrv.rc deleted file mode 100644 index 54208d9..0000000 --- a/ATL90/include/l.kor/atlsrv.rc +++ /dev/null @@ -1,146 +0,0 @@ -// This is a part of the Active Template Library. -// Copyright (C) Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Active Template Library Reference and related -// electronic documentation provided with the library. -// See these sources for detailed information regarding the -// Active Template Library product. - -#include -#include "atlsrvres.h" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ATLSRV_BAD_REQUEST "À߸øµÈ ¿äûÀ߸øµÈ ¿äûÀÔ´Ï´Ù." - IDS_ATLSRV_AUTH_REQUIRED - "ÀÎÁõ ÇÊ¿äÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù." - IDS_ATLSRV_FORBIDDEN "±ÝÁöµÊ±ÝÁöµÇ¾ú½À´Ï´Ù." - IDS_ATLSRV_NOT_FOUND "ãÀ» ¼ö ¾øÀ½Ã£À» ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR "¼­¹ö ¿À·ù¼­¹ö ¿À·ù" - IDS_ATLSRV_NOT_IMPLEMENTED - "±¸Çö ¾ÈµÊ±¸ÇöµÇÁö ¾Ê¾Ò½À´Ï´Ù." - IDS_ATLSRV_BAD_GATEWAY "À߸øµÈ °ÔÀÌÆ®¿þÀÌÀ߸øµÈ °ÔÀÌÆ®¿þÀÌÀÔ´Ï´Ù." - IDS_ATLSRV_SERVICE_NOT_AVAILABLE - "¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_BADSRF "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

SRF ÆÄÀÏÀ» ·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_HNDLFAIL "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ SRF ÆÄÀÏÀ» ·ÎµåÇßÁö¸¸ ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_SYSOBJFAIL "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

Windows ½Ã½ºÅÛ °³Ã¼¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_READFILEFAIL "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

ÆÄÀÏ Àбâ ÀÛ¾÷À» ¼öÇàÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_LOADFILEFAIL "Server Error

Server Error

ÁöÁ¤ÇÑ ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_LOADLIB "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

LoadLibrary È£ÃâÀÌ ½ÇÆÐÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_HANDLERIF "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ Ã³¸®±â ÀÎÅÍÆäÀ̽º¸¦ °¡Á®¿ÀÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_OUTOFMEM "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¼­¹öÀÇ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÕ´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_UNEXPECTED "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¼­¹ö¿¡¼­ ¿¹±âÄ¡ ¾ÊÀº ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_STENCILPARSEFAIL "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ ½ºÅÙ½ÇÀ» ±¸¹® ºÐ¼®ÇÏ´Â µ¿¾È ¼­¹ö¿¡¼­ ¿¹±âÄ¡ ¾ÊÀº ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_STENCILLOADFAIL "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ ½ºÅÙ½ÇÀ» ¼­¹ö¿¡¼­ ·ÎµåÇÏÁö ¸øÇß½À´Ï´Ù. ½ºÅÙ½Ç ÆÄÀÏÀÌ ¼Õ»óµÇ¾ú°Å³ª À¥ ¼­¹ö¿¡ ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_HANDLERNOTFOUND "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

ÁöÁ¤ÇÑ Ã³¸®±â .dll¿¡ ¿äûÇÑ ½ºÅÙ½ÇÀÇ Ã³¸®±â ű׿¡ ¸í¸íµÈ 󸮱â Áß Çϳª°¡ ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_BADHANDLERTAG "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

ÀÌ ½ºÅٽǿ¡´Â 󸮱â űװ¡ ¾ø°Å³ª ½ºÅÙ½Ç ÇÁ·Î¼¼¼­¿¡¼­ Á¦´ë·Î ó¸®ÇÒ ¼ö Àִ ó¸®±â űװ¡ ¾ø½À´Ï´Ù. ¿äûÇÑ ½ºÅÙ½ÇÀ» È®ÀÎÇÏ¿© ½ºÅÙ½Ç ±¸¹®ÀÌ ¿Ã¹Ù¸¥Áö °ËÅäÇØ º¸½Ê½Ã¿À." - IDS_ATLSRV_SERVER_ERROR_NOHANDLERTAG "¼­¹ö ¿À·ù

¼­¹ö ¿À·ùServer Error

¿äûÇÑ ½ºÅٽǿ¡ 󸮱â űװ¡ ¾ø½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_LONGMETHODNAME "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ ½ºÅÙ½ÇÀÇ ´ëü ÅÂ±× À̸§ÀÌ ³Ê¹« ±é´Ï´Ù. ÀÌ °æ¿ì ¹Ù²Ü À̸§ÀÇ ÃÖ´ë ±æÀÌ´Â atlstencil.h¿¡ Á¤ÀÇµÈ ATL_MAX_METHOD_NAME »ó¼öº¸´Ù À۰ųª °°¾Æ¾ß ÇÕ´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_LONGHANDLERNAME "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¿äûÇÑ ½ºÅÙ½ÇÀÇ id.tagnameÀ» »ç¿ëÇÏ´Â ´ëü ű×ÀÇ Ã³¸®±â À̸§ÀÌ ³Ê¹« ±é´Ï´Ù. ÀÌ °æ¿ì 󸮱â À̸§ÀÇ ÃÖ´ë ±æÀÌ´Â atlstencil.h¿¡ Á¤ÀÇµÈ ATL_MAX_METHOD_NAME »ó¼öº¸´Ù À۰ųª °°¾Æ¾ß ÇÕ´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_IMPERSONATIONFAILED "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

Ŭ¶óÀÌ¾ðÆ®¸¦ °¡ÀåÇ߱⠶§¹®¿¡ ¿äûÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_ISAPISTARTUPFAILED "¼­¹ö ¿À·ù

¼­¹ö ¿À·ù

¾Ë ¼ö ¾ø´Â ¿À·ù·Î ÀÎÇØ ÀÌ ¿äûÀ» ó¸®ÇÏ´Â µ¥ »ç¿ëµÈ ISAPI ÀͽºÅÙ¼ÇÀ» Á¦´ë·Î ·ÎµåÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_SERVER_ERROR_SOAPNOSOAPACTION "Server Error

Server Error

SOAP request did not provide SOAPACTION header." - - IDS_ATLSRV_CRITICAL_HEAPCREATEFAILED "¿äû ÈüÀ» ÀÛ¼ºÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_WORKERINITFAILED "ÀÛ¾÷ÀÚ ½º·¹µå¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_CRITSECINITFAILED "ÀÓ°è ¼½¼ÇÀ» ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_THREADPOOLFAILED "½º·¹µå Ç®À» ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_DLLCACHEFAILED "DLL ij½Ã¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_PAGECACHEFAILED "ÆäÀÌÁö ij½Ã¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_STENCILCACHEFAILED "½ºÅÙ½Ç Ä³½Ã¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_SESSIONSTATEFAILED "¼¼¼Ç »óÅ ¼­ºñ½º¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_BLOBCACHEFAILED "Blob ij½Ã¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - IDS_ATLSRV_CRITICAL_FILECACHEFAILED "ÆÄÀÏ Ä³½Ã¸¦ ÃʱâÈ­ÇÏÁö ¸øÇß½À´Ï´Ù." - - IDS_PERFMON_CACHE "ATL ¼­¹ö:ij½Ã" - IDS_PERFMON_CACHE_HELP "ATL ¼­¹ö ij½Ã¿¡ ´ëÇÑ Á¤º¸" - IDS_PERFMON_HITCOUNT "ij½Ã ÀûÁß È½¼ö" - IDS_PERFMON_HITCOUNT_HELP "ij½Ã ÀûÁß È½¼ö" - IDS_PERFMON_MISSCOUNT "ij½Ã ÀûÁß ½ÇÆÐ Ƚ¼ö" - IDS_PERFMON_MISSCOUNT_HELP "ij½Ã ÀûÁß ½ÇÆÐ Ƚ¼ö" - IDS_PERFMON_CURRENTALLOCATIONS "ÇöÀç ij½Ã ÇÒ´ç·®" - IDS_PERFMON_CURRENTALLOCATIONS_HELP "ij½Ã·Î ÇÒ´çµÈ ÇöÀç ¸Þ¸ð¸® ¾ç" - IDS_PERFMON_MAXALLOCATIONS "ÃÖ´ë ij½Ã ÇÒ´ç·®" - IDS_PERFMON_MAXALLOCATIONS_HELP "ij½Ã·Î ÇÒ´çµÈ ÃÖ´ë ¸Þ¸ð¸® ¾ç" - IDS_PERFMON_CURRENTENTRIES "ÇöÀç ij½Ã ¿£Æ®¸®" - IDS_PERFMON_CURRENTENTRIES_HELP "ÇöÀç ij½Ã ¿£Æ®¸® ¼ö" - IDS_PERFMON_MAXENTRIES "ÃÖ´ë ij½Ã ¿£Æ®¸®" - IDS_PERFMON_MAXENTRIES_HELP "ÃÖ´ë ij½Ã ¿£Æ®¸® ¼ö" - IDS_PERFMON_HITCOUNTRATE "ij½Ã ÀûÁß·ü" - IDS_PERFMON_HITCOUNTRATE_HELP "ÃÊ ´ç ÀûÁß È½¼ö" - IDS_PERFMON_REQUEST "ATL ¼­¹ö:¿äû" - IDS_PERFMON_REQUEST_HELP "¼­¹ö¿¡ Àü´ÞµÇ´Â ¿äû¿¡ ´ëÇÑ Åë°è" - IDS_PERFMON_REQUEST_TOTAL "¼­¹ö ÃÑ ¿äû ¼ö" - IDS_PERFMON_REQUEST_TOTAL_HELP "ÃÑ ¿äû ¼ö" - IDS_PERFMON_REQUEST_FAILED "¼­¹ö ½ÇÆÐ ¿äû ¼ö" - IDS_PERFMON_REQUEST_FAILED_HELP "½ÇÆÐÇÑ ¿äû ¼ö" - IDS_PERFMON_REQUEST_RATE "¼­¹ö ¿äû ¼ö/ÃÊ" - IDS_PERFMON_REQUEST_RATE_HELP "ÃÊ ´ç ¿äû ¼ö" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME "Æò±Õ ÀÀ´ä ½Ã°£" - IDS_PERFMON_REQUEST_AVG_RESPONSE_TIME_HELP "¿äû ó¸® Æò±Õ ¼Ò¿ä ½Ã°£" - IDS_PERFMON_REQUEST_CURR_WAITING "´ë±â¿­¿¡ ÀÖ´Â ÇöÀç ¿äû" - IDS_PERFMON_REQUEST_CURR_WAITING_HELP "ó¸® ´ë±â ÁßÀÎ ÇöÀç ¿äû ¼ö" - IDS_PERFMON_REQUEST_MAX_WAITING "ÃÖ´ë ´ë±â ¿äû ¼ö" - IDS_PERFMON_REQUEST_MAX_WAITING_HELP "ó¸® ´ë±â °¡´ÉÇÑ ÃÖ´ë ¿äû ¼ö" - IDS_PERFMON_REQUEST_ACTIVE_THREADS "Ȱ¼º ½º·¹µå" - IDS_PERFMON_REQUEST_ACTIVE_THREADS_HELP "¿äûÀ» ´ëÈ­ÇüÀ¸·Î ó¸®ÇÏ´Â ½º·¹µå ¼ö" -END - - -#ifndef ATL_NO_DEFAULT_STENCIL_RESOURCE -dllmgr.srf HTML "res\\dllmgr.srf" -stencilmgr.srf HTML "res\\stencilmgr.srf" -threadmgr.srf HTML "res\\threadmgr.srf" -#endif - - -// -// Stencil parse error support -// -#ifdef ATL_DEBUG_STENCILS - -STRINGTABLE DISCARDABLE -BEGIN - IDS_STENCIL_ERROR_STENCIL -"{{ÄÚµå ÆäÀÌÁö 0}}

½ºÅÙ½Ç ÆÄÀÏÀ» ±¸¹® ºÐ¼®ÇÏ´Â µ¿¾È ´ÙÀ½ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.

\r\n{{while GetNextError}}\r\n\r\n\r\n\r\n
¿À·ù Çü½Ä{{GetErrorText}}
ÁÙ ¹øÈ£{{GetErrorLineNumber}}
¿À·ù ÅØ½ºÆ®
{{GetErrorLine}}
\r\n{{endwhile}}
½ºÅÙ½Ç Ãâ·ÂÀº ´ÙÀ½°ú °°½À´Ï´Ù.\r\n
" - - IDS_STENCIL_UNCLOSEDBLOCK_IF "{{if}} ¹®¿¡ {{endif}}°¡ ¾ø½À´Ï´Ù." - IDS_STENCIL_UNCLOSEDBLOCK_ELSE "{{else}} ¹®¿¡ {{endif}}°¡ ¾ø½À´Ï´Ù." - IDS_STENCIL_UNCLOSEDBLOCK_WHILE "{{while}} ¹®¿¡ {{endwhile}}ÀÌ ¾ø½À´Ï´Ù." - IDS_STENCIL_UNOPENEDBLOCK_ENDWHILE "{{endwhile}} ¹®¿¡ {{while}}ÀÌ ¾ø½À´Ï´Ù" - IDS_STENCIL_UNOPENEDBLOCK_ELSE "{{else}} ¹®¿¡ {{if}}°¡ ¾ø½À´Ï´Ù." - IDS_STENCIL_UNOPENEDBLOCK_ENDIF "{{endif}} ¹®¿¡ {{if}} ¶Ç´Â {{else}}°¡ ¾ø½À´Ï´Ù." - - IDS_STENCIL_INVALID_HANDLER "󸮱â űװ¡ À߸øµÇ¾ú½À´Ï´Ù." - IDS_STENCIL_NULLPARAM "ParseReplacements¿¡ ´ëÇÑ ¸Å°³ º¯¼ö°¡ NULLÀÔ´Ï´Ù." - IDS_STENCIL_INVALIDSTRING "ºñ¾î Àְųª À½¼öÀÎ ¹®ÀÚ¿­ÀÌ ParseReplacements¿¡ Àü´ÞµÇ¾ú½À´Ï´Ù." - IDS_STENCIL_EMBEDDED_NULL "½ºÅٽǿ¡ Æ÷ÇÔµÈ null ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù." - IDS_STENCIL_UNMATCHED_TAG_START "{{°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù." - IDS_STENCIL_MISMATCHED_TAG_START "{{°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù." - IDS_STENCIL_BAD_PARAMETER "¸Å°³ º¯¼ö°¡ À߸øµÇ¾ú½À´Ï´Ù." - IDS_STENCIL_METHODNAME_TOO_LONG "¸Þ¼­µå À̸§ÀÌ ³Ê¹« ±é´Ï´Ù." - IDS_STENCIL_HANDLERNAME_TOO_LONG "󸮱â À̸§ÀÌ ³Ê¹« ±é´Ï´Ù." - IDS_STENCIL_INVALID_SUBHANDLER "ÇÏÀ§ 󸮱â űװ¡ À߸øµÇ¾ú½À´Ï´Ù." - IDS_STENCIL_UNRESOLVED_REPLACEMENT "´ëü ¹®À» È®ÀÎÇÒ ¼ö ¾ø½À´Ï´Ù: '%s'" - - IDS_STENCIL_INCLUDE_ERROR "Æ÷ÇÔµÈ ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù." - IDS_STENCIL_INCLUDE_INVALID "Æ÷ÇÔµÈ ÆÄÀÏÀÌ µð½ºÅ© ÆÄÀÏÀÌ ¾Æ´Õ´Ï´Ù." - - IDS_STENCIL_MLANG_COCREATE "CMultiLanguage¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù." - IDS_STENCIL_MLANG_LCID "lcid¸¦ °¡Á®¿À´Â µ¿¾È ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù." - IDS_STENCIL_MLANG_GETLOCALE "GetLocaleInfo°¡ ½ÇÆÐÇß½À´Ï´Ù." - IDS_STENCIL_MLANG_GETCHARSET "GetCharsetInfo°¡ ½ÇÆÐÇß½À´Ï´Ù." - - IDS_STENCIL_OUTOFMEMORY "¸Þ¸ð¸®°¡ ºÎÁ·ÇÕ´Ï´Ù." - IDS_STENCIL_UNEXPECTED "¿¹±âÄ¡ ¾ÊÀº ¿À·ùÀÔ´Ï´Ù." -END - -#endif diff --git a/ATL90/include/res/dllmgr.srf b/ATL90/include/res/dllmgr.srf deleted file mode 100644 index 45f9c70..0000000 --- a/ATL90/include/res/dllmgr.srf +++ /dev/null @@ -1,29 +0,0 @@ - - - - -

ATL Server DLL Cache Manager

- -Current DLL Cache Entries: {{GetNumEntries}}

- - - - -{{while EnumEntries}} - -{{endwhile}} - -
DLL PathRef Count
{{GetDllName}}{{GetDllReferences}}
- - - \ No newline at end of file diff --git a/ATL90/include/res/stencilmgr.srf b/ATL90/include/res/stencilmgr.srf deleted file mode 100644 index f0ca82f..0000000 --- a/ATL90/include/res/stencilmgr.srf +++ /dev/null @@ -1,69 +0,0 @@ - - - -

- ATL Server Stencil Cache Management -

- - - - {{while GetNextStencilCacheStats}} - - - - - {{endwhile}} -
- ValueQuantity
{{GetCacheValue}}{{GetCacheQuantity}}
-
- - -
- -
- -
- - - diff --git a/ATL90/include/res/threadmgr.srf b/ATL90/include/res/threadmgr.srf deleted file mode 100644 index fd322be..0000000 --- a/ATL90/include/res/threadmgr.srf +++ /dev/null @@ -1,24 +0,0 @@ - - - -

- ATL Server Thread Pool Management -

- This server's thread pool is currently using {{GetSize}} threads.

-

- - Enter a new thread pool size: - -
- - diff --git a/ATL90/source/CLStencil/ReadMe.htm b/ATL90/source/CLStencil/ReadMe.htm deleted file mode 100644 index 527a06e..0000000 --- a/ATL90/source/CLStencil/ReadMe.htm +++ /dev/null @@ -1,6 +0,0 @@ - - -CLStencil Sample: Runs Request Handler DLLs or SRF Files from the Command Line

CLStencil Sample: Runs Request Handler DLLs or SRF Files from the Command Line

Demonstrates how to provide custom implementations of IHttpServerContext and IIsapiExtension to create a command-line tool for generating responses from SRF files and Web application DLLs without requiring IIS.

Note that CLStencil only provides a partial implementation of IHttpServerContext and CIsapiExtension. Items that are specific to a Web server, such as IHttpServerContext::MapUrlToPathEx, are not supported.

CLStencil tries to locate server variables in the current environment, so if the request handler needs a specific server variable, be sure to set it in the environment before running the application. For example, you can run the following command at a command prompt to make the SERVER_PROTOCOL variable available to CLStencil and the request handlers it loads:

SET SERVER_PROTOCOL=HTTP/1.1.

Security Note

This sample code is provided to illustrate a concept and should not be used in applications or Web sites, as it may not illustrate the safest coding practices.

Building and Running the Sample

It is not necessary to build this sample to see the tool in action. The executable file (clstencil.exe) is shipped with Visual Studio in the Vc7\bin directory. Instructions for use can be found below:

To use CLStencil

  • Run clstencil.exe from the command line using the following command:

    clstencil i SrfFile o OutputFile e ErrorFile

    Where:

    SrfFile   The name of the SRF file to be processed.

    OutputFile   The name of the file to which the generated content will be written.

    ErrorFile   The name of the file to which warning and error messages will be written.

    Run clstencil.exe with no arguments for more information on its command line arguments.

Demonstrates

IHttpServerContext | IIsapiExtension | AtlServerRequest

diff --git a/ATL90/source/CLStencil/StdAfx.cpp b/ATL90/source/CLStencil/StdAfx.cpp deleted file mode 100644 index e7d8834..0000000 --- a/ATL90/source/CLStencil/StdAfx.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// clstencil.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Classes Reference and related electronic -// documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft C++ Libraries products. - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/ATL90/source/CLStencil/StdAfx.h b/ATL90/source/CLStencil/StdAfx.h deleted file mode 100644 index 725024c..0000000 --- a/ATL90/source/CLStencil/StdAfx.h +++ /dev/null @@ -1,34 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Classes Reference and related electronic -// documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft C++ Libraries products. - -#if !defined(AFX_STDAFX_H__1114FD51_D788_4B00_80A9_9D9485A0F7D7__INCLUDED_) -#define AFX_STDAFX_H__1114FD51_D788_4B00_80A9_9D9485A0F7D7__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - - -// Insert your headers here -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#define _WIN32_WINNT 0x0502 - -#include -#include -#include -#include -#include "clstencil.h" - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__1114FD51_D788_4B00_80A9_9D9485A0F7D7__INCLUDED_) diff --git a/ATL90/source/CLStencil/clstencil.cpp b/ATL90/source/CLStencil/clstencil.cpp deleted file mode 100644 index ae5a95a..0000000 --- a/ATL90/source/CLStencil/clstencil.cpp +++ /dev/null @@ -1,622 +0,0 @@ -// clstencil.cpp : Defines the entry point for the console application. -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Classes Reference and related electronic -// documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft C++ Libraries products. - -#include "stdafx.h" -#include -////////////////////////////////////////////////////////////////////// -//Resource (satellite) dll search and load routines. see LoadLocResDll -//an example. -//Note: Change made here must be sync with all other tools. - -__inline -errno_t __cdecl DuplicateEnvString(TCHAR **ppszBuffer, size_t *pnBufferSizeInTChars, const TCHAR *pszVarName) -{ - /* validation section */ - if (ppszBuffer == NULL) { return EINVAL; } - *ppszBuffer = NULL; - if (pnBufferSizeInTChars != NULL) - { - *pnBufferSizeInTChars = 0; - } - /* varname is already validated in getenv */ - TCHAR szDummyBuff[1] = {0}; - size_t nSizeNeeded = 0; - errno_t ret=_tgetenv_s(&nSizeNeeded,szDummyBuff,1,pszVarName); - if (nSizeNeeded > 0) - { - *ppszBuffer = new TCHAR[nSizeNeeded]; - if (*ppszBuffer != NULL) - { - size_t nSizeNeeded2 = 0; - ret=_tgetenv_s(&nSizeNeeded2,*ppszBuffer,nSizeNeeded,pszVarName); - if (nSizeNeeded2!=nSizeNeeded) - { - ret=ERANGE; - } else if (pnBufferSizeInTChars != NULL) - { - *pnBufferSizeInTChars = nSizeNeeded; - } - } else - { - ret=ENOMEM; - } - } - return ret; -} - -#define _TCSNLEN(sz,c) (min(_tcslen(sz), c)) -#define PATHLEFT(sz) (_MAX_PATH - _TCSNLEN(sz, (_MAX_PATH-1)) - 1) - -typedef LANGID (WINAPI* PFNGETUSERDEFAULTUILANGUAGE)(); - -static BOOL CALLBACK _EnumResLangProc(HMODULE /*hModule*/, LPCTSTR /*pszType*/, - LPCTSTR /*pszName*/, WORD langid, LONG_PTR lParam) -{ - if(lParam == NULL) - { - return FALSE; - } - - LANGID* plangid = reinterpret_cast< LANGID* >( lParam ); - *plangid = langid; - - return TRUE; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: GetUserDefaultUILanguage for downlevel platforms (Win9x, NT4). -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HRESULT GetUserDefaultUILanguageLegacyCompat(LANGID* pLangid) -{ - HRESULT hr=E_FAIL; - if (pLangid == NULL) { return E_POINTER; } - PFNGETUSERDEFAULTUILANGUAGE pfnGetUserDefaultUILanguage; - HINSTANCE hKernel32 = ::GetModuleHandle(_T("kernel32.dll")); - pfnGetUserDefaultUILanguage = (PFNGETUSERDEFAULTUILANGUAGE)::GetProcAddress(hKernel32, "GetUserDefaultUILanguage"); - if(pfnGetUserDefaultUILanguage != NULL) - { - *pLangid = pfnGetUserDefaultUILanguage(); - hr = S_OK; - } else - { - // We're not on an MUI-capable system. - OSVERSIONINFO version; - memset(&version, 0, sizeof(version)); - version.dwOSVersionInfoSize = sizeof(version); - ::GetVersionEx(&version); - if( version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) - { - // We're on Windows 9x, so look in the registry for the UI language - HKEY hKey = NULL; - LONG nResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, - _T( "Control Panel\\Desktop\\ResourceLocale" ), 0, KEY_READ, &hKey); - if (nResult == ERROR_SUCCESS) - { - DWORD dwType; - TCHAR szValue[16]; - ULONG nBytes = sizeof( szValue ); - nResult = ::RegQueryValueEx(hKey, NULL, NULL, &dwType, LPBYTE( szValue ), - &nBytes ); - if ((nResult == ERROR_SUCCESS) && (dwType == REG_SZ)) - { - DWORD dwLangID; - int nFields = _stscanf_s( szValue, _T( "%x" ), &dwLangID ); - if( nFields == 1 ) - { - *pLangid = LANGID( dwLangID ); - hr = S_OK; - } - } - - ::RegCloseKey(hKey); - } - } - else - { - // We're on NT 4. The UI language is the same as the language of the version - // resource in ntdll.dll - HMODULE hNTDLL = ::GetModuleHandle( _T( "ntdll.dll" ) ); - if (hNTDLL != NULL) - { - *pLangid = 0; - ::EnumResourceLanguages( hNTDLL, RT_VERSION, MAKEINTRESOURCE( 1 ), - _EnumResLangProc, reinterpret_cast< LONG_PTR >( pLangid ) ); - if (*pLangid != 0) - { - hr = S_OK; - } - } - } - } - return hr; -} - -////////////////////////////////////////////////////////////////////////// -//Purpose: Searches for a resource dll in sub directories using a search order -// based on szPath - a directory to search res dll below. -// see example at . -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success (found dll) - S_OK , Failure - E_FAIL or E_UNEXPECTED -////////////////////////////////////////////////////////////////////////// -HRESULT LoadUILibrary(LPCTSTR szPath, LPCTSTR szDllName, DWORD dwExFlags, - HINSTANCE *phinstOut, LPTSTR szFullPathOut,size_t sizeInCharacters, - LCID *plcidOut) -{ - TCHAR szPathTemp[_MAX_PATH + 1] = _T(""); - HRESULT hr = E_FAIL; - LCID lcidFound = (LCID)-1; - size_t nPathEnd = 0; - - // Gotta have this stuff! - if (szPath==NULL || *szPath == '\0') - { - return E_POINTER; - } - - if (szDllName==NULL || *szDllName == '\0') - { - return E_POINTER; - } - - if (!szPath || !*szPath || !szDllName || !*szDllName) - { - return E_INVALIDARG; - } - - if (phinstOut != NULL) - { - *phinstOut = NULL; - } - - szPathTemp[_MAX_PATH-1] = L'\0'; - - // Add \ to the end if necessary - _tcsncpy_s(szPathTemp,_countof(szPathTemp), szPath, _TRUNCATE); - if (szPathTemp[_TCSNLEN(szPathTemp, _MAX_PATH-1) - 1] != L'\\') - { - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - } - - // Check if given path even exists - if (GetFileAttributes(szPathTemp) == 0xFFFFFFFF) - { - return E_FAIL; - } - - nPathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1); - - { - LANGID langid=0; - if (FAILED(GetUserDefaultUILanguageLegacyCompat(&langid))) - { - return E_UNEXPECTED; - } - const LCID lcidUser = MAKELCID(langid, SORT_DEFAULT); - - LCID rglcid[3]; - rglcid[0] = lcidUser; - rglcid[1] = MAKELCID(MAKELANGID(PRIMARYLANGID(lcidUser), SUBLANG_DEFAULT), SORTIDFROMLCID(lcidUser)); - rglcid[2] = 0x409; - for (unsigned int i = 0; i < _countof(rglcid); i++) - { - TCHAR szNumBuf[10]; - - // Check if it's the same as any LCID already checked, - // which is very possible - unsigned int n = 0; - for (n = 0; n < i; n++) - { - if (rglcid[n] == rglcid[i]) - break; - } - - if (n < i) - { - continue; - } - - szPathTemp[nPathEnd] = L'\0'; - _itot_s(rglcid[i], szNumBuf,_countof(szNumBuf), 10); - _tcsncat_s(szPathTemp, _countof(szPathTemp),szNumBuf , PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - lcidFound = rglcid[i]; - - hr = S_OK; - goto Done; - } - } - } - - // None of the default choices exists, so now look for the dll in a folder below - //the given path (szPath) - { - szPathTemp[nPathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("*.*"), PATHLEFT(szPathTemp)); - - WIN32_FIND_DATA wfdw; - HANDLE hDirs = FindFirstFile(szPathTemp, &wfdw); - nPathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1)-3; - if (hDirs != INVALID_HANDLE_VALUE) - { - while (FindNextFile(hDirs, &wfdw)) - { - // We are only interested in directories, since at this level, that should - // be the only thing in this directory, i.e, LCID sub dirs - if (wfdw.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - // Skip current and previous dirs, "." and ".." - if (!_tcscmp(wfdw.cFileName, _T(".")) || !_tcscmp(wfdw.cFileName, _T(".."))) - continue; - - // Does this dir have a copy of the dll? - szPathTemp[nPathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), wfdw.cFileName, PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - // Got it! - lcidFound = (LCID)_tstol(wfdw.cFileName); - - hr = S_OK; - break; - } - } - } - - FindClose(hDirs); - } - } - -Done: - if (SUCCEEDED(hr)) - { - // Set the default LCID - if (plcidOut) - { - if (lcidFound == (LCID)-1) - { - return E_UNEXPECTED; - } - *plcidOut = lcidFound; - } - - // Finally, attempt to load the library - // Beware! A dll loaded with LOAD_LIBRARY_AS_DATAFILE won't - // let you use LoadIcon and things like that (only general calls like - // FindResource and LoadResource). - if (phinstOut != NULL) - { - *phinstOut = LoadLibraryEx(szPathTemp, NULL, dwExFlags); - hr = (*phinstOut) ? S_OK : E_FAIL; - } - if ( szFullPathOut ) - { - _tcsncpy_s(szFullPathOut,sizeInCharacters, szPathTemp, _MAX_PATH-1); - } - } - - return hr; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: Iterates env("PATH") directories to try to find (using LoadUILibrary) -// resource dll a directory below PATH dirs. Ex: if PATH="c:\bin;d:\win" -// and szDllName="ToolUI.dll", then the first of c:\bin\1033\ToolUI.dll -// and d:\win\SomeFolder\ToolUI.dll will be loaded. -// See LoadLocResDll doc (below) for example. -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HMODULE LoadSearchPath(LPCTSTR szDllName,TCHAR *szPathOut, size_t sizeInCharacters) -{ - TCHAR * szEnvPATH = NULL; - TCHAR * szEnvPATHBuff = NULL; - int nPathLen = 0; - int nPathIndex = 0; - HMODULE hmod = NULL; - if (DuplicateEnvString(&szEnvPATHBuff,NULL,_T("PATH"))==0 && (szEnvPATH=szEnvPATHBuff) != NULL) - { - while (*szEnvPATH) - { - /* skip leading white space and nop semicolons */ - for (; *szEnvPATH == L' ' || *szEnvPATH == L';'; ++szEnvPATH) - {} /* NOTHING */ - - if (*szEnvPATH == L'\0') - { - break; - } - - ++nPathIndex; - - /* copy this chunk of the path into our trypath */ - nPathLen = 0; - TCHAR szPath[_MAX_PATH+1]; - TCHAR * pszTry = NULL; - for (pszTry = szPath; *szEnvPATH != L'\0' && *szEnvPATH != L';'; ++szEnvPATH) - { - ++nPathLen; - if (nPathLen < _MAX_PATH) - { - *pszTry++ = *szEnvPATH; - } else - { - break; - } - } - *pszTry = L'\0'; - - if (nPathLen == 0 || nPathLen >= _MAX_PATH) - { - continue; - } - - LoadUILibrary(szPath, szDllName, LOAD_LIBRARY_AS_DATAFILE, - &hmod, szPathOut,sizeInCharacters, NULL); - if ( hmod ) - { - break; - } - } - } - if (szEnvPATHBuff!=NULL) - { - delete [] szEnvPATHBuff; - } - return hmod; -} -//Example: Say PATH="c:\bin;d:\win", resource dll name (szDllName) is "ToolUI.dll", -// user locale is 936, and the .exe calling LoadLocResDll is c:\MyTools\Tool.exe -// Search order: -// a) c:\MyTools\936\ToolUI.dll (exe path + user default UI lang) -// b) c:\MyTools\1033 (same with eng) -// c) c:\MyTools\*\ToolUI.dll (where * is sub folder). -// d) c:\bin\936\ToolUI.dll (first in path) -// e) c:\bin\1033\ToolUI.dll (first in path + eng) -// f) c:\bin\*\ToolUI.dll -// g) d:\win\936\ToolUI.dll (second in path) -// h) d:\win\1033\ToolUI.dll (second in path + eng) -// i) d:\win\*\ToolUI.dll (second in path + eng) -// j) if bExeDefaultModule and not found, return exe HINSTANCE. -// Note: The primary lang (without the sublang) is tested after the user ui lang. -// Main Input: szDllName - the name of the resource dll ui.dll. Ex: vcdeployUI.dll -// Main Output: HMODULE of resource dll or NULL - if not found (see bExeDefaultModule). -HMODULE LoadLocResDll(LPCTSTR szDllName,BOOL bExeDefaultModule=TRUE,DWORD dwExFlags=LOAD_LIBRARY_AS_DATAFILE,LPTSTR pszPathOut = NULL,size_t sizeInCharacters = 0 ) -{ - HMODULE hmod = NULL; - TCHAR driverpath[_MAX_PATH + 1], exepath[_MAX_PATH + 1]; - LPTSTR p = NULL; - - GetModuleFileName(GetModuleHandle(NULL), driverpath, _MAX_PATH); - // from MSDN: If the length of the path exceeds the size specified by the nSize parameter, the function succeeds and the string is truncated to nSize characters and may not be null terminated. - driverpath[_MAX_PATH] = '\0'; - - // find path of tool - p = driverpath + _TCSNLEN(driverpath, _MAX_PATH-1)-1; - while ( *p != L'\\' && p != driverpath) - { - p--; - } - *p = '\0'; - - LoadUILibrary(driverpath, szDllName, dwExFlags, - &hmod, exepath,_countof(exepath), NULL); - - if ( hmod == NULL ) - { - // search PATH\ for ui.dll - hmod = LoadSearchPath(szDllName,exepath,_countof(exepath)); - } - - if ( hmod && pszPathOut ) - { - _tcsncpy_s(pszPathOut,sizeInCharacters, exepath, _MAX_PATH-1); - } - //Not found dll, return the exe HINSTANCE as a fallback. - if (hmod == NULL && bExeDefaultModule) - { - hmod=GetModuleHandle(NULL); - } - return hmod; -} -//End loc routines -//////////////////////////////////////////////////////////////////// -const TCHAR* szClStencilUIDll=_T("clstencilUI.dll"); - -CComModule _Module; - -void PrintUsage(LPCSTR lpszErrorText=NULL); -bool GetParameters(int argc, char *argv[], - LPTSTR *ppszInputFile, - LPTSTR *ppszOutputFile, - LPTSTR *ppszQueryString, - LPTSTR *ppszFormInput, - LPTSTR *ppszErrorLog, - LPTSTR *ppszContentType, - LPTSTR *ppszVerb, - LPBOOL pbNoLogo); - -int main(int argc, char* argv[]) -{ - LPTSTR szInputFile = NULL; - LPTSTR szOutputFile = NULL; - LPTSTR szQueryString = NULL; - LPTSTR szFormInput = NULL; - LPTSTR szErrorLog = NULL; - LPTSTR szContentType = NULL; - LPTSTR szVerb = NULL; - BOOL bNoLogo = FALSE; - HINSTANCE hInstResource=LoadLocResDll(szClStencilUIDll,TRUE); - _AtlBaseModule.AddResourceInstance(hInstResource); - - if (argc < 3) - { - CStringA str; - Emit(str, IDS_INVALID_ARGS); - PrintUsage(str); - return 1; - } - - CoInitialize(NULL); - - if (!GetParameters(argc, argv, &szInputFile, &szOutputFile, &szQueryString, &szFormInput, &szErrorLog, &szContentType, &szVerb, &bNoLogo)) - { - return 1; - } - - CStringA strHeader; - if (bNoLogo == FALSE) - { - Emit(strHeader, IDS_HEADER); - printf((LPCSTR) strHeader); - } - - _Module.Init(NULL, GetModuleHandle(NULL)); - - CSProcExtension extension; - if (!extension.Initialize()) - { - CStringA str; - Emit(str, IDS_INIT_FAILED); - printf((LPCSTR) str); - _Module.Term(); - return 1; - } - - if (!extension.DispatchStencilCall(szInputFile, szOutputFile, szQueryString, szErrorLog, szFormInput, szContentType, szVerb)) - printf("%s\n", (LPCSTR) extension.m_strErr); - - extension.Uninitialize(); - _Module.Term(); - CoUninitialize(); - - return 0; -} - - -void PrintUsage(LPCSTR lpszErrorText) -{ - CStringA strBuffer; - if (lpszErrorText && *lpszErrorText) - { - Emit(strBuffer, IDS_ERROR, lpszErrorText); - printf((LPCSTR) strBuffer); - } - - Emit(strBuffer, IDS_USAGE); - printf((LPCSTR) strBuffer); -} - -bool GetParameters(int argc, char *argv[], - LPTSTR *ppszInputFile, - LPTSTR *ppszOutputFile, - LPTSTR *ppszQueryString, - LPTSTR *ppszFormInput, - LPTSTR *ppszErrorLog, - LPTSTR *ppszContentType, - LPTSTR *ppszVerb, - LPBOOL pbNoLogo) -{ - for (int i = 1; i < argc; i++) - { - if (i == (argc-1)) - return false; - if (argv[i][0] != '-') - return false; - - char ch = argv[i][1]; - switch (ch) - { - case 'n' : case 'N': - { - *pbNoLogo = TRUE; - continue; - } - case 'i' : case 'I' : - { - *ppszInputFile = argv[++i]; - continue; - } - case 'o' : case 'O' : - { - *ppszOutputFile = argv[++i]; - continue; - } - case 'q' : case 'Q' : - { - *ppszQueryString = argv[++i]; - continue; - } - case 'f' : case 'F': - { - *ppszFormInput = argv[++i]; - continue; - } - case 'e' : case 'E': - { - *ppszErrorLog = argv[++i]; - continue; - } - case 'c' : case 'C': - { - *ppszContentType = argv[++i]; - continue; - } - case 'v' : case 'V': - { - *ppszVerb = argv[++i]; - continue; - } - default: - { - CStringA str; - Emit(str, IDS_UNKNOWN_PARAM, argv[i]); - PrintUsage(str); - return false; - } - } - } - - if (*ppszInputFile == NULL) - { - CStringA str; - Emit(str, IDS_INPUT_FILE); - PrintUsage(str); - return false; - } - - // fix up the query quoted query string - if (*ppszQueryString != NULL) - { - int n = (int) strlen(*ppszQueryString); - (*ppszQueryString)[n] = 0; - } - - // fix up the query quoted content-type string - if (*ppszContentType != NULL) - { - int n = (int) strlen(*ppszContentType); - (*ppszContentType)[n] = 0; - } - - return true; -} \ No newline at end of file diff --git a/ATL90/source/CLStencil/clstencil.h b/ATL90/source/CLStencil/clstencil.h deleted file mode 100644 index aaab291..0000000 --- a/ATL90/source/CLStencil/clstencil.h +++ /dev/null @@ -1,1074 +0,0 @@ -// File: clstencil.h -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Classes Reference and related electronic -// documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft C++ Libraries products. - -#pragma once - -#include -#include -#include "resource.h" - -ATL_NOINLINE inline void GetHrErrorDescription(HRESULT hr, CString& strErr) throw() -{ - LPTSTR pszMsg = NULL; - ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, 0, (LPSTR)&pszMsg, 0, NULL); - strErr+= pszMsg; - ::LocalFree(pszMsg); -} - -inline bool Emit(CStringA& strBuffer, UINT uID, ...) -{ - _ATLTRY - { - CStringA str; - if (str.LoadString(uID)) - { - va_list arglist; - va_start(arglist, uID); - int nLen = _vscprintf((LPCSTR) str, arglist); - char *szBuf = strBuffer.GetBuffer(nLen+1); - if (szBuf != NULL) - { - vsprintf_s(szBuf, nLen+1, str, arglist); - strBuffer.ReleaseBuffer(nLen); - } - else - { - strBuffer.ReleaseBuffer(); - } - - va_end(arglist); - return true; - } - } - _ATLCATCHALL() - { - return false; - } - return false; -} - -class CSProcServerContext : public IHttpServerContext -{ -protected: - - CAtlFile m_OutFile; - CAtlFile m_InFile; - CAtlFile m_ErrFile; - - bool m_bStdInput; - bool m_bStdOutput; - bool m_bStdError; - - char m_szPathTranslated[MAX_PATH]; - char m_szScriptPathTranslated[MAX_PATH]; - char m_szQueryString[ATL_URL_MAX_URL_LENGTH]; - char m_szContentType[ATL_URL_MAX_URL_LENGTH]; - char m_szVerb[MAX_PATH]; - - void CloseFiles() - { - if(m_bStdInput) - m_InFile.Detach(); - else - m_InFile.Close(); - - if(m_bStdOutput) - m_OutFile.Detach() ; - else - m_OutFile.Close(); - - if(m_bStdError) - m_ErrFile.Detach() ; - else - m_ErrFile.Close(); - } - -public: - CString m_strErr; - - CSProcServerContext() - { - m_szQueryString[0] = '\0'; - m_szScriptPathTranslated[0] = '\0'; - m_szQueryString[0] = '\0'; - m_szContentType[0] = '\0'; - m_szVerb[0] = '\0'; - m_bStdInput = false; - m_bStdOutput = false; - m_bStdError = false; - } - - void LogServerError(LPCSTR szErr) throw() - { - if (m_ErrFile.m_h == NULL) - return; - - CStringA strBuffer; - if (Emit(strBuffer, IDS_NOTSUPPORTED, szErr)) - { - m_ErrFile.Write(strBuffer, strBuffer.GetLength()); - } - } - - // Implementation - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv) throw() - { - if (!ppv) - return E_POINTER; - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IHttpServerContext))) - { - *ppv = static_cast(this); - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - // Implementation - ULONG STDMETHODCALLTYPE AddRef() throw() - { - return 1; - } - - // Implementation - ULONG STDMETHODCALLTYPE Release() throw() - { - return 1; - } - - HRESULT Initialize( - LPCSTR szFileName, - LPCSTR szQueryString, - LPCSTR szErrLog, - LPCSTR szFormFile, - LPCSTR szContentType, - LPCSTR szVerb) throw() - { - HRESULT hr; - - if (szFileName == NULL) - { - // use Standard output - HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); - if (hOut == INVALID_HANDLE_VALUE) - return E_FAIL; - m_OutFile.Attach(hOut); - m_bStdOutput = true; - hr = S_OK; - } - else - { - hr = m_OutFile.Create(szFileName, GENERIC_WRITE, FILE_SHARE_READ, CREATE_ALWAYS); - } - - if (hr != S_OK) - { - m_strErr.Format("ERROR: %s : ", szFileName ? szFileName : "stdout"); - GetHrErrorDescription(hr, m_strErr); - return hr; - } - - if (szErrLog) - { - hr = m_ErrFile.Create(szErrLog, GENERIC_WRITE, FILE_SHARE_READ, CREATE_ALWAYS); - } - else - { - HANDLE hErr = GetStdHandle(STD_ERROR_HANDLE); - if (hErr == INVALID_HANDLE_VALUE) - hr = E_FAIL; - else - { - m_ErrFile.Attach(hErr); - m_bStdError = true; - hr = S_OK; - } - } - if (hr != S_OK) - { - m_strErr.Format("ERROR: %s : ", szErrLog ? szErrLog : "stderr"); - GetHrErrorDescription(hr, m_strErr); - CloseFiles(); - return hr; - } - - if (szFormFile) - { - hr = m_InFile.Create(szFormFile, GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS); - } - else - { - HANDLE hForm = GetStdHandle(STD_INPUT_HANDLE); - if (hForm == INVALID_HANDLE_VALUE) - hr = E_FAIL; - else - { - m_InFile.Attach(hForm); - m_bStdInput = true; - hr = S_OK; - } - } - if (hr != S_OK) - { - m_strErr.Format("ERROR: %s : ", szFormFile ? szFormFile : "stdin"); - GetHrErrorDescription(hr, m_strErr); - CloseFiles(); - return hr; - } - - if ( szQueryString != NULL) - if( strlen(szQueryString) < ( sizeof(m_szQueryString)-1 ) ) - strcpy_s(m_szQueryString, sizeof(m_szQueryString), szQueryString); - else - { - m_strErr.LoadString(IDS_QS_TOO_LONG); - CloseFiles(); - return E_INVALIDARG; - } - - if ( szContentType != NULL) - if(strlen(szContentType) < ( sizeof(m_szContentType)-1 ) ) - strcpy_s(m_szContentType, sizeof(m_szContentType), szContentType); - else - { - m_strErr.LoadString(IDS_CT_TOO_LONG); - CloseFiles(); - return E_INVALIDARG; - } - - if (szVerb == NULL) - strcpy_s(m_szVerb, sizeof(m_szVerb), "GET"); - else - { - if ( strlen(szVerb) < ( sizeof(m_szVerb)-1 ) ) - strcpy_s(m_szVerb, sizeof(m_szVerb), szVerb); - else - { - m_strErr.LoadString(IDS_VERB_TOO_LONG); - CloseFiles(); - return E_INVALIDARG; - } - } - - return S_OK; - } - - ~CSProcServerContext() throw() - { - } - - // Returns the HTTP status code. - // Equivalent to EXTENSION_CONTROL_BLOCK::dwHttpStatusCode. - DWORD GetHttpStatusCode() throw() - { - return 0; - } - - // Returns a nul-terminated string that contains the HTTP method of the current request. - // Examples of common HTTP methods include "GET" and "POST". - // Equivalent to the REQUEST_METHOD server variable or EXTENSION_CONTROL_BLOCK::lpszMethod. - LPCSTR GetRequestMethod() throw() - { - return m_szVerb; - } - - // Returns a nul-terminated string that contains the query information. - // This is the part of the URL that appears after the question mark (?). - // Equivalent to the QUERY_STRING server variable or EXTENSION_CONTROL_BLOCK::lpszQueryString. - LPCSTR GetQueryString() throw() - { - return m_szQueryString; - } - - // Returns a nul-terminated string that contains the path of the current request. - // This is the part of the URL that appears after the server name, but before the query string. - // Equivalent to the PATH_INFO server variable or EXTENSION_CONTROL_BLOCK::lpszPathInfo. - LPCSTR GetPathInfo() throw() - { - return m_szPathTranslated; - } - - // Call this function to retrieve a nul-terminated string containing the physical path of the script. - // - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - // The script path is the same as GetPathTranslated up to the first .srf or .dll. - // For example, if GetPathTranslated returns "c:\inetpub\vcisapi\hello.srf\goodmorning", - // then this function returns "c:\inetpub\vcisapi\hello.srf". - LPCSTR GetScriptPathTranslated() throw() - { - return m_szScriptPathTranslated; - } - - // Returns a nul-terminated string that contains the translated path of the requested resource. - // This is the path of the resource on the local server. - // Equivalent to the PATH_TRANSLATED server variable or EXTENSION_CONTROL_BLOCK::lpszPathTranslated. - LPCSTR GetPathTranslated() throw() - { - return m_szPathTranslated; - } - - BOOL SetPathTranslated(LPCSTR szPath) - { - ATLENSURE(szPath != NULL); - m_szPathTranslated[0] = '\0'; - - if ( strlen(szPath) < sizeof(m_szPathTranslated)-1 ) - strcpy_s(m_szPathTranslated, sizeof(m_szPathTranslated), szPath); - else - { - ATLTRACE("SetPathTranslated got a translated path that was too long.\n"); - return FALSE; - } - - // Initialize the translated script path - LPCSTR szEnd = m_szPathTranslated; - - while (TRUE) - { - while (*szEnd != '.' && *szEnd != '\0') - szEnd++; - if (*szEnd == '\0') - break; - - szEnd++; - if (!_strnicmp(szEnd, "dll", 3) || - !_strnicmp(szEnd, c_AtlSRFExtension+1, 3)) - { - szEnd += 3; - if (!*szEnd || *szEnd == '/' || *szEnd == '\\' || *szEnd == '?' || *szEnd == '#') - break; - } - } - - ptrdiff_t nResult = szEnd - m_szPathTranslated; - - if (nResult >= 0 && nResult <= ( sizeof(m_szScriptPathTranslated)-1 ) ) - memcpy_s(m_szScriptPathTranslated, sizeof(m_szScriptPathTranslated), m_szPathTranslated, nResult); - else if (nResult < 0) - { - ATLTRACE("Unexpected path length.\n"); - return FALSE; - } - else - { - ATLTRACE("Path translated was too long.\n"); - return FALSE; - } - - m_szScriptPathTranslated[nResult] = '\0'; - return TRUE; - } - - // Returns the total number of bytes to be received from the client. - // If this value is 0xffffffff, then there are four gigabytes or more of available data. - // In this case, ReadClient or AsyncReadClient should be called until no more data is returned. - // Equivalent to the CONTENT_LENGTH server variable or EXTENSION_CONTROL_BLOCK::cbTotalBytes. - DWORD GetTotalBytes() throw() - { - ULONGLONG nLen = 0; - m_InFile.GetSize(nLen); - return (DWORD)nLen; - } - - // Returns the number of bytes available in the request buffer accessible via GetAvailableData. - // If GetAvailableBytes returns the same value as GetTotalBytes, the request buffer contains the whole request. - // Otherwise, the remaining data should be read from the client using ReadClient or AsyncReadClient. - // Equivalent to EXTENSION_CONTROL_BLOCK::cbAvailable. - DWORD GetAvailableBytes() throw() - { -// LogServerError("IHttpServerContext::GetAvailableBytes not supported in command line mode.\r\n"); - return 0; - } - - // Returns a pointer to the request buffer containing the data sent by the client. - // The size of the buffer can be determined by calling GetAvailableBytes. - // Equivalent to EXTENSION_CONTROL_BLOCK::lpbData - BYTE *GetAvailableData() throw() - { -// LogServerError("IHttpServerContext::GetAvailableData not supported in command line mode.\r\n"); - return NULL; - } - - // Returns a nul-terminated string that contains the content type of the data sent by the client. - // Equivalent to the CONTENT_TYPE server variable or EXTENSION_CONTROL_BLOCK::lpszContentType. - LPCSTR GetContentType() throw() - { -// LogServerError("IHttpServerContext::GetContentType not supported in command line mode.\r\n"); - return m_szContentType; - } - - // Call this function to retrieve a nul-terminated string containing the value of the requested server variable. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // On entry, pdwSize should point to a DWORD that indicates the size of the buffer in bytes. - // On exit, the DWORD contains the number of bytes transferred or available to be transferred into the buffer (including the nul-terminating byte). - // Equivalent to EXTENSION_CONTROL_BLOCK::GetServerVariable. - BOOL GetServerVariable( - LPCSTR szVariableName, - LPSTR pvBuffer, - DWORD * pdwSize) throw() - { - if( !pdwSize ) - return FALSE; - - BOOL bRet = TRUE; - - LPCSTR szVar; - size_t retVal = 0; - size_t bufSize = 0; - - // retrieve size of buffer - getenv_s(&retVal, NULL, bufSize, szVariableName); - - if (retVal != 0) - { - char *buf = new char[retVal]; - - bufSize = retVal; - getenv_s(&retVal, buf, bufSize, szVariableName); - szVar = buf; - - if( pvBuffer && *pdwSize > strlen(szVar) ) - strcpy_s( pvBuffer, bufSize, szVar ); - else - { - ::SetLastError( ERROR_INSUFFICIENT_BUFFER ); - *pdwSize = 1 + (DWORD)strlen( szVar ); - bRet = FALSE; - } - } - else - { - if( m_ErrFile.m_h != NULL ) - { - CStringA strErrMsg; - Emit(strErrMsg, IDS_SERVER_VARIABLE_NOT_FOUND, szVariableName ? szVariableName : ""); - m_ErrFile.Write(strErrMsg, strErrMsg.GetLength()); - } - - *pdwSize = 0; - ::SetLastError( ERROR_NO_DATA); - bRet = FALSE; - } - - return bRet; - - - } - - // Synchronously sends the data present in the given buffer to the client that made the request. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::WriteClient(..., HSE_IO_SYNC). - BOOL WriteClient(void *pvBuffer, DWORD *pdwBytes) throw() - { - return (m_OutFile.Write(pvBuffer, *pdwBytes) == S_OK ? TRUE : FALSE); - - } - - // Asynchronously sends the data present in the given buffer to the client that made the request. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::WriteClient(..., HSE_IO_ASYNC). - BOOL AsyncWriteClient(void *pvBuffer, DWORD *pdwBytes) throw() - { - return WriteClient(pvBuffer, pdwBytes); - } - - // Call this function to synchronously read information from the body of the web client's HTTP request into the buffer supplied by the caller. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to EXTENSION_CONTROL_BLOCK::ReadClient. - BOOL ReadClient(void * pvBuffer, DWORD * pdwSize) throw() - { - ATLENSURE(pdwSize != NULL); - DWORD dwRead = 0; - HRESULT hr = m_InFile.Read(pvBuffer, *pdwSize, dwRead); - *pdwSize = dwRead; - return (hr == S_OK ? TRUE : FALSE); - } - - // Call this function to asynchronously read information from the body of the web client's HTTP request into the buffer supplied by the caller. - // Returns TRUE on success, and FALSE on failure. Call GetLastError to get extended error information. - // Equivalent to the HSE_REQ_ASYNC_READ_CLIENT server support function. - BOOL AsyncReadClient(void * pvBuffer, DWORD * pdwSize) throw() - { - return ReadClient(pvBuffer, pdwSize); - } - - // Call this function to redirect the client to the specified URL. - // The client receives a 302 (Found) HTTP status code. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_SEND_URL_REDIRECT_RESP server support function. - BOOL SendRedirectResponse(LPCSTR /*pszRedirectURL*/) throw() - { - LogServerError("IHttpServerContext::SendRedirectResponse"); - return FALSE; - } - - // Call this function to retrieve a handle to the impersonation token for this request. - // An impersonation token represents a user context. You can use the handle in calls to ImpersonateLoggedOnUser or SetThreadToken. - // Do not call CloseHandle on the handle. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_GET_IMPERSONATION_TOKEN server support function. - - BOOL GetImpersonationToken(HANDLE * /*pToken*/) throw() - { - LogServerError("IHttpServerContext::GetImpersonationToken"); - return FALSE; - } - - // Call this function to send an HTTP response header to the client including the HTTP status, server version, message time, and MIME version. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_SEND_RESPONSE_HEADER_EX server support function. - BOOL SendResponseHeader( - LPCSTR /*pszHeader = "Content-Type: text/html\r\n\r\n"*/, - LPCSTR /*pszStatusCode = "200 OK"*/, - BOOL /*fKeepConn=FALSE*/) throw() - { - LogServerError("IHttpServerContext::SendResponseHeader"); - return FALSE; - } - - // Call this function to terminate the session for the current request. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_DONE_WITH_SESSION server support function. - BOOL DoneWithSession(DWORD /*dwStatusCode*/) throw() - { - LogServerError("IHttpServerContext::DoneWithSession"); - return FALSE; - } - - // Call this function to set a special callback function that will be used for handling the completion of asynchronous I/O operations. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_IO_COMPLETION server support function. - BOOL RequestIOCompletion(PFN_HSE_IO_COMPLETION /*pfn*/, DWORD * /*pdwContext*/) throw() - { - LogServerError("IHttpServerContext::RequestIOCompletion"); - return FALSE; - } - - // Call this function to transmit a file asynchronously to the client. - // Returns TRUE on success, and FALSE on failure. - // Equivalent to the HSE_REQ_TRANSMIT_FILE server support function. - BOOL TransmitFile( - HANDLE hFile, - PFN_HSE_IO_COMPLETION /*pfn*/, - void * /*pContext*/, - LPCSTR /*szStatusCode*/, - DWORD /*dwBytesToWrite*/, - DWORD /*dwOffset*/, - void * /*pvHead*/, - DWORD /*dwHeadLen*/, - void * /*pvTail*/, - DWORD /*dwTailLen*/, - DWORD /*dwFlags*/) throw() - { - char szBuffer[1024]; - DWORD dwLen; - OVERLAPPED overlapped; - memset(&overlapped, 0, sizeof(OVERLAPPED)); - HANDLE hEvent = CreateEvent(NULL, TRUE, TRUE, NULL); - if (!hEvent) - return FALSE; - overlapped.hEvent = hEvent; - CHandle hdlEvent; - hdlEvent.Attach(hEvent); - DWORD dwErr; - do - { - BOOL bRet = ::ReadFile(hFile, szBuffer, 1024, &dwLen, &overlapped); - if (!bRet && (dwErr = GetLastError()) != ERROR_IO_PENDING && dwErr != ERROR_IO_INCOMPLETE) - return FALSE; - - if (!GetOverlappedResult(hFile, &overlapped, &dwLen, TRUE)) - return FALSE; - - if (dwLen) - { - DWORD dwWritten = dwLen; - if (!WriteClient(szBuffer, &dwWritten)) - return FALSE; - } - - } while (dwLen != 0); - - return TRUE; - } - - // Appends the string szMessage to the web server log for the current - // request. - // Returns TRUE on success, FALSE on failure. - // Equivalent to the HSE_APPEND_LOG_PARAMETER server support function. - BOOL AppendToLog(LPCSTR /*szMessage*/, DWORD * /*pdwLen*/) throw() - { - LogServerError("IHttpServerContext::AppendToLog"); - return FALSE; - } - - BOOL MapUrlToPathEx(LPCSTR /*szLogicalPath*/, DWORD /*dwLen*/, HSE_URL_MAPEX_INFO * /*pumInfo*/) - { - LogServerError("IHttpServerContext::MapUrlToPathEx"); - return FALSE; - } -}; // class CSprocServerContext - - -class CSProcExtension : public IServiceProvider, public IIsapiExtension -{ -protected: - - typedef CStencilCache > stencilCacheType; - CWorkerThread<> m_WorkerThread; - CDllCache, CDllCachePeer> m_DllCache; - CComObjectGlobal > > m_StencilCache; - CDefaultErrorProvider m_UserErrorProvider; - - CIsapiWorker m_Worker; - - // Dynamic services stuff - struct ServiceNode - { - HINSTANCE hInst; - IUnknown *punk; - GUID guidService; - IID riid; - - ServiceNode() throw() - { - } - - ServiceNode(const ServiceNode& that) throw() - :hInst(that.hInst), punk(that.punk), guidService(that.guidService), riid(that.riid) - { - } - - const ServiceNode& operator=(const ServiceNode& that) throw() - { - if (this != &that) - { - hInst = that.hInst; - punk = that.punk; - memcpy_s(&guidService, sizeof(guidService), &that.guidService, sizeof(guidService)); - memcpy_s(&riid, sizeof(riid), &that.riid, sizeof(riid)); - } - return *this; - } - }; - - class CServiceEqualHelper - { - public: - static bool IsEqual(const ServiceNode& t1, const ServiceNode& t2) - { - return (InlineIsEqualGUID(t1.guidService, t2.guidService) != 0); - } - }; - - CSimpleArray m_serviceMap; - -public: - - CString m_strErr; - - CSProcExtension() throw() - { - } - - AtlServerRequest *CreateRequest() - { - AtlServerRequest *pRequest = (AtlServerRequest *) malloc(max(sizeof(AtlServerRequest), sizeof(CComObjectNoLock))); - if (!pRequest) - return NULL; - pRequest->cbSize = sizeof(AtlServerRequest); - return pRequest; - } - - void FreeRequest(AtlServerRequest *pRequest) - { - if (pRequest) - { - if (pRequest->pHandler) - pRequest->pHandler->Release(); - if (pRequest->pServerContext) - pRequest->pServerContext->Release(); - if (pRequest->pDllCache && pRequest->hInstDll) - pRequest->pDllCache->ReleaseModule(pRequest->hInstDll); - } - - //free(pRequest); - } - - BOOL Initialize() throw() - { - if (!m_Worker.Initialize(static_cast(this))) - return FALSE; - - if (S_OK != m_WorkerThread.Initialize()) - return FALSE; - - if (FAILED(m_DllCache.Initialize(&m_WorkerThread, ATL_DLL_CACHE_TIMEOUT))) - { - m_WorkerThread.Shutdown(); - return FALSE; - } - - if (S_OK != m_StencilCache.Initialize(static_cast(this), &m_WorkerThread, - ATL_STENCIL_CACHE_TIMEOUT, ATL_STENCIL_LIFESPAN)) - { - m_DllCache.Uninitialize(); - m_WorkerThread.Shutdown(); - return FALSE; - } - - return TRUE; - } - - BOOL Uninitialize() throw() - { - for (int i=0; i < m_serviceMap.GetSize(); i++) - { - ATLASSERT(m_serviceMap[i].punk != NULL); - m_serviceMap[i].punk->Release(); - m_DllCache.ReleaseModule(m_serviceMap[i].hInst); - } - - m_StencilCache.Uninitialize(); - m_DllCache.Uninitialize(); - m_Worker.Terminate(static_cast(this)); - m_WorkerThread.Shutdown(); - - return TRUE; - } - - void RequestComplete(AtlServerRequest * /*pRequestInfo*/, DWORD /*dwStatus*/, DWORD /*dwSubStatus*/) throw() - { - } - - HTTP_CODE GetHandlerName(LPCSTR szFileName, LPSTR szHandlerName) throw() - { - return _AtlGetHandlerName(szFileName, szHandlerName); - } - - HTTP_CODE LoadDispatchFile(LPCSTR szFileName, AtlServerRequest *pRequestInfo) throw() - { - CStencil *pStencil = NULL; - HCACHEITEM hStencil = NULL; - CHAR szDllPath[MAX_PATH+1]; - CHAR szHandlerName[ATL_MAX_HANDLER_NAME_LEN+1]; - - pRequestInfo->pHandler = NULL; - pRequestInfo->hInstDll = NULL; - - USES_CONVERSION; - - m_StencilCache.LookupStencil(szFileName, &hStencil); - if (!hStencil) - { - char szHandlerDllName[MAX_PATH+ATL_MAX_HANDLER_NAME_LEN+2]; - // not in the cache, so open the file - HTTP_CODE hcErr = GetHandlerName(szFileName, szHandlerDllName); - if (hcErr) - return hcErr; - DWORD dwDllPathLen = MAX_PATH+1; - DWORD dwHandlerNameLen = ATL_MAX_HANDLER_NAME_LEN+1; - if (!_AtlCrackHandler(szHandlerDllName, szDllPath, &dwDllPathLen, szHandlerName, &dwHandlerNameLen)) - { - HTTP_ERROR(500, ISE_SUBERR_HANDLER_NOT_FOUND); - } - ATLASSERT(*szHandlerName); - ATLASSERT(*szDllPath); - if (!*szHandlerName) - return HTTP_ERROR(500, ISE_SUBERR_HANDLER_NOT_FOUND); - } - else - { - m_StencilCache.GetStencil(hStencil, (void **) &pStencil); - pStencil->GetHandlerName(szDllPath, MAX_PATH+1, szHandlerName, ATL_MAX_HANDLER_NAME_LEN+1); - m_StencilCache.ReleaseStencil(hStencil); - - if (!*szHandlerName) - return HTTP_ERROR(500, ISE_SUBERR_BADSRF); // bad srf file - } - return LoadRequestHandler(szDllPath, szHandlerName, pRequestInfo->pServerContext, &pRequestInfo->hInstDll, &pRequestInfo->pHandler); - } - - - HTTP_CODE LoadDllHandler(LPCSTR szFileName, AtlServerRequest *pRequestInfo) throw() - { - HTTP_CODE hcErr = HTTP_FAIL; - CHttpRequest Request; - BOOL bRet = Request.Initialize(pRequestInfo->pServerContext, 0); - if (bRet) - { - LPCSTR szHandler = Request.QueryParams.Lookup("Handler"); - if (!szHandler) - { - szHandler = "Default"; - } - - hcErr = LoadRequestHandler(szFileName, szHandler, pRequestInfo->pServerContext, - &pRequestInfo->hInstDll, &pRequestInfo->pHandler); - } - else - { - hcErr = HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED); - } - - return hcErr; - } - - - BOOL DispatchStencilCall(AtlServerRequest * /*pRequestInfo*/) throw() - { - return FALSE; - } - - virtual void ThreadTerminate(DWORD /*dwThreadId*/) { } - virtual BOOL QueueRequest(AtlServerRequest * /*pRequestInfo*/) { return FALSE; } - virtual CIsapiWorker *GetThreadWorker() { return &m_Worker; } - virtual BOOL SetThreadWorker(CIsapiWorker * /*pWorker*/) { return TRUE; } - BOOL OnThreadAttach() { return TRUE; } - void OnThreadTerminate() {} - - - BOOL DispatchStencilCall( - LPCSTR szFile, - LPCSTR szOutputFile, - LPCSTR szQueryString, - LPCSTR szErrFile, - LPCSTR szFormFile, - LPCSTR szContentType, - LPCSTR szVerb) - { - ATLASSERT(szFile != NULL); - - CSProcServerContext ServerContext; - HRESULT hr = ServerContext.Initialize(szOutputFile, szQueryString, szErrFile, szFormFile, szContentType, szVerb); - if (hr != S_OK) - { - m_strErr = ServerContext.m_strErr; - return FALSE; - } - - if (!ServerContext.SetPathTranslated(szFile)) - return FALSE; - - AtlServerRequest RequestInfo; - AtlServerRequest *pRequestInfo = &RequestInfo; - pRequestInfo->pServerContext = static_cast(&ServerContext); - pRequestInfo->dwRequestType = ATLSRV_REQUEST_STENCIL; - pRequestInfo->dwRequestState = ATLSRV_STATE_BEGIN; - pRequestInfo->pExtension = static_cast(this); - pRequestInfo->pDllCache = static_cast(&m_DllCache); - pRequestInfo->dwStartTicks = 0; - - HTTP_CODE hcErr = HTTP_SUCCESS; - if (pRequestInfo->dwRequestState == ATLSRV_STATE_BEGIN) - { - LPCSTR szFileName = ServerContext.GetScriptPathTranslated(); - - if (!szFileName) - { - m_strErr.Format("ERROR: Invalid file: %s", szFile); - RequestComplete(pRequestInfo, 500, 8); - return FALSE; - } - - LPCSTR szDot = szFileName + strlen(szFileName)-4; - if (_tcsicmp(szDot, c_AtlSRFExtension) == 0) - { - pRequestInfo->dwRequestType = ATLSRV_REQUEST_STENCIL; - hcErr = LoadDispatchFile(szFileName, pRequestInfo); - } - else if (_stricmp(szDot, ".dll") == 0) - { - pRequestInfo->dwRequestType = ATLSRV_REQUEST_DLL; - hcErr = LoadDllHandler(szFileName, pRequestInfo); - } - else - { - hcErr = HTTP_FAIL; - } - - if (hcErr) - { - if (hcErr == HTTP_ERROR(500, ISE_SUBERR_BADSRF)) - m_strErr.Format("ERROR: Invalid SRF file: %s", szFile); - else if (hcErr == HTTP_ERROR(500, ISE_SUBERR_READFILEFAIL)) - m_strErr.Format("ERROR: Failed to read SRF file: %s", szFile); - else if (hcErr == HTTP_ERROR(500, ISE_SUBERR_UNEXPECTED)) - m_strErr = "ERROR: Unexpected Error Loading DLL"; - RequestComplete(pRequestInfo, HTTP_ERROR_CODE(hcErr), HTTP_SUBERROR_CODE(hcErr)); - return FALSE; - } - - // initialize the handler - DWORD dwStatus = 0; - - hcErr = pRequestInfo->pHandler->GetFlags(&dwStatus); - // Ignoring caching options - // Log errors on async - if (dwStatus & ATLSRV_INIT_USEASYNC) - { - // TODO: Log error, or come up with a way to make it work - RequestComplete(pRequestInfo, 500, SUBERR_NONE); - return FALSE; - } - - hcErr = pRequestInfo->pHandler->InitializeHandler(pRequestInfo, static_cast(this)); - if (hcErr == HTTP_SUCCESS) - hcErr = pRequestInfo->pHandler->HandleRequest(pRequestInfo, static_cast(this)); - } - - if (hcErr == HTTP_SUCCESS_ASYNC || hcErr == HTTP_SUCCESS_ASYNC_DONE) - { - return FALSE; - } - else - { - pRequestInfo->pHandler->UninitializeHandler(); - RequestComplete(pRequestInfo, HTTP_ERROR_CODE(hcErr), HTTP_SUBERROR_CODE(hcErr)); - } - - FreeRequest(pRequestInfo); - return TRUE; - } - - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppv) throw() - { - if (!ppv) - return E_POINTER; - if (InlineIsEqualGUID(riid, __uuidof(IUnknown)) || - InlineIsEqualGUID(riid, __uuidof(IServiceProvider))) - { - *ppv = static_cast(static_cast(this)); - AddRef(); - return S_OK; - } - if (InlineIsEqualGUID(riid, __uuidof(IIsapiExtension))) - { - *ppv = static_cast(static_cast(this)); - AddRef(); - return S_OK; - } - return E_NOINTERFACE; - } - - virtual HRESULT STDMETHODCALLTYPE QueryService( - REFGUID guidService, - REFIID riid, - void **ppvObject) throw() - { - if (!ppvObject) - return E_POINTER; - - if (InlineIsEqualGUID(guidService, __uuidof(IDllCache))) - return m_DllCache.QueryInterface(riid, ppvObject); - else if (InlineIsEqualGUID(guidService, __uuidof(IStencilCache))) - return m_StencilCache.QueryInterface(riid, ppvObject); - - return E_NOINTERFACE; - } - - - virtual HRESULT AddService(REFGUID guidService, REFIID riid, IUnknown *punk, HINSTANCE hInstance) throw() - { - if (!m_DllCache.AddRefModule(hInstance)) - return E_FAIL; - - ServiceNode srvNode; - srvNode.hInst = hInstance; - srvNode.punk = punk; - memcpy_s(&srvNode.guidService, sizeof(guidService), &guidService, sizeof(guidService)); - memcpy_s(&srvNode.riid, sizeof(guidService), &riid, sizeof(riid)); - - // if the service is already there, return S_FALSE - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex >= 0) - return S_FALSE; - - if (!m_serviceMap.Add(srvNode)) - return E_OUTOFMEMORY; - - punk->AddRef(); - return S_OK; - } - - virtual HRESULT RemoveService(REFGUID guidService, REFIID riid) throw() - { - ServiceNode srvNode; - memcpy_s(&srvNode.guidService, sizeof(guidService), &guidService, sizeof(guidService)); - memcpy_s(&srvNode.riid, sizeof(riid), &riid, sizeof(riid)); - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex < 0) - return S_FALSE; - - ATLASSERT(m_serviceMap[nIndex].punk != NULL); - m_serviceMap[nIndex].punk->Release(); - - HINSTANCE hInstRemove = m_serviceMap[nIndex].hInst; - - m_serviceMap.RemoveAt(nIndex); - - if (!m_DllCache.ReleaseModule(hInstRemove)) - return S_FALSE; - - return S_OK; - } - - HRESULT GetService(REFGUID guidService, REFIID riid, void **ppvObject) throw() - { - if (!ppvObject) - return E_POINTER; - - ServiceNode srvNode; - memcpy_s(&srvNode.guidService, sizeof(guidService), &guidService, sizeof(guidService)); - memcpy_s(&srvNode.riid, sizeof(guidService), &riid, sizeof(riid)); - - int nIndex = m_serviceMap.Find(srvNode); - if (nIndex < 0) - return E_NOINTERFACE; - - ATLASSERT(m_serviceMap[nIndex].punk != NULL); - return m_serviceMap[nIndex].punk->QueryInterface(riid, ppvObject); - } - - ULONG STDMETHODCALLTYPE AddRef() - { - return 1; - } - - ULONG STDMETHODCALLTYPE Release() - { - return 1; - } - - HTTP_CODE LoadRequestHandler(LPCSTR szDllPath, LPCSTR szHandlerName, IHttpServerContext *pServerContext, - HINSTANCE *phInstance, IRequestHandler **ppHandler) throw() - { - return _AtlLoadRequestHandler(szDllPath, szHandlerName, pServerContext, phInstance, - ppHandler, this, static_cast(&m_DllCache)); - } // LoadRequestHandler - - - HTTP_CODE TransferRequest( - AtlServerRequest *pRequest, - IServiceProvider *pServiceProvider, - IWriteStream *pWriteStream, - IHttpRequestLookup *pLookup, - LPCSTR szNewUrl, - WORD nCodePage, - bool bContinueAfterProcess, - CStencilState *pState) - { - return _AtlTransferRequest(pRequest, pServiceProvider, pWriteStream, - pLookup, szNewUrl, nCodePage, bContinueAfterProcess, pState); - } -}; diff --git a/ATL90/source/CLStencil/clstencil.rc b/ATL90/source/CLStencil/clstencil.rc deleted file mode 100644 index 56da58e..0000000 --- a/ATL90/source/CLStencil/clstencil.rc +++ /dev/null @@ -1,106 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// VERSION -// -#ifdef RC_INVOKED - -#define VER_FILETYPE VFT_APP - -#define VER_FILEDESCRIPTION_STR "Microsoft \256 ATL Server Command Line Stencil Processor" - -#define VER_INTERNALNAME_STR "CLSTENCIL" - -#define VER_ORIGINALFILENAME_STR "CLSTENCIL.EXE" - -#define VER_COPYRIGHTSTARTYEAR_STR "1999" - -#include "ver_.rc" - -#endif - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_HEADER "Microsoft (R) Command Line Stencil Processor 7.00.9128\r\nCopyright (c) Microsoft Corporation 2005. All rights reserved.\r\n\r\n" - IDS_NOTSUPPORTED "%s not supported in command line mode.\n" - IDS_USAGE "Usage: clstencil -i inputfile -o outputfile [-n] [-q ""querystring""] [-f forminput] [-e errorlog] [-c content-type] [-v verb]\n-i inputfile : the .srf or .dll to process\n-n : suppress startup banner\n-o outputfile : the file to write to (defaults to stdout)\n-q ""querystring"" : the query string to pass to the processor\n-f forminput : the input file for user data (e.g. form data) (defaults to stdin)\n-e errorlog : the file where errors are written (defaults to stderr)\n-c ""content-type"" : the content type of the request\n-v verb : the request verb\n" - IDS_ERROR "Error: %s\n" - IDS_UNKNOWN_PARAM "Unknown Parameter: %s" - IDS_INPUT_FILE "You must provide an input file" - IDS_INVALID_ARGS "Invalid number of arguments" - IDS_INIT_FAILED "ERROR: Failed to initialize extension\n" - IDS_SERVER_VARIABLE_NOT_FOUND - "WARNING: GetServerVariable: variable %s not found in the environment\n" - IDS_QS_TOO_LONG "ERROR: querystring too long" - IDS_CT_TOO_LONG "ERROR: content-type of the request too long" - IDS_VERB_TOO_LONG "ERROR: request verb too long" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/ATL90/source/CLStencil/clstencil.sln b/ATL90/source/CLStencil/clstencil.sln deleted file mode 100644 index 497e55e..0000000 --- a/ATL90/source/CLStencil/clstencil.sln +++ /dev/null @@ -1,45 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clstencil", "clstencil.vcproj", "{001C823F-0CA4-4B47-BC00-7EFA1B8104AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clstencilui", "clstencilui.vcproj", "{9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Itanium = Debug|Itanium - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Itanium = Release|Itanium - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|Itanium.ActiveCfg = Debug|Itanium - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|Itanium.Build.0 = Debug|Itanium - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|Win32.ActiveCfg = Debug|Win32 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|Win32.Build.0 = Debug|Win32 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|x64.ActiveCfg = Debug|x64 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Debug|x64.Build.0 = Debug|x64 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|Itanium.ActiveCfg = Release|Itanium - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|Itanium.Build.0 = Release|Itanium - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|Win32.ActiveCfg = Release|Win32 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|Win32.Build.0 = Release|Win32 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|x64.ActiveCfg = Release|x64 - {001C823F-0CA4-4B47-BC00-7EFA1B8104AF}.Release|x64.Build.0 = Release|x64 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|Itanium.ActiveCfg = Debug|Itanium - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|Itanium.Build.0 = Debug|Itanium - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|Win32.ActiveCfg = Debug|Win32 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|Win32.Build.0 = Debug|Win32 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|x64.ActiveCfg = Debug|x64 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Debug|x64.Build.0 = Debug|x64 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|Itanium.ActiveCfg = Release|Itanium - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|Itanium.Build.0 = Release|Itanium - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|Win32.ActiveCfg = Release|Win32 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|Win32.Build.0 = Release|Win32 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|x64.ActiveCfg = Release|x64 - {9A27D633-9C74-4C4E-93FB-F9DFCCEFEDBE}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ATL90/source/CLStencil/clstencil.vcproj b/ATL90/source/CLStencil/clstencil.vcproj deleted file mode 100644 index 5335f8d..0000000 --- a/ATL90/source/CLStencil/clstencil.vcproj +++ /dev/null @@ -1,690 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ATL90/source/CLStencil/clstencilui.mak b/ATL90/source/CLStencil/clstencilui.mak deleted file mode 100644 index cca2dcd..0000000 --- a/ATL90/source/CLStencil/clstencilui.mak +++ /dev/null @@ -1,100 +0,0 @@ -!ifndef DEBUG -DEBUG=1 -!endif - -TARGETNAME=clstencil -RCFILE=$(TARGETNAME).rc - - -# Default PLATFORM depending on host environment -!if "$(PLATFORM)" == "" -!if "$(PROCESSOR_ARCHITECTURE)" == "" -!error PLATFORM must be set to intended target -!endif -!if "$(PROCESSOR_ARCHITECTURE)" == "x86" -PLATFORM=INTEL -!endif -!endif - - - -# -# PLATFORM options -# -LINK32=link -RC=rc - -# -# TARGET platform -# -!if "$(TARGET)" == "" -!if "$(PROCESSOR_ARCHITECTURE)" == "AMD64" -TARGET=amd64 -!else if "$(PROCESSOR_ARCHITECTURE)" == "IA64" -TARGET=ia64 -!endif -!endif - -# -# Object File Directory -# -!ifndef D -!if "$(DEBUG)" == "0" -D=Release$(_OD_EXT) -!else -D=Debug$(_OD_EXT) -!endif -!if "$(UNICODE)" == "1" -D=$(D)U -!endif -!if "$(TARGET)" != "" -D=$(TARGET)\$(D) -!endif -!endif - -# -# link /MACHINE: option -# -!if "$(TARGET)" == "" -LINK_MACHINE=X86 -!else if "$(TARGET)" == "amd64" -LINK_MACHINE=X64 -!else if "$(TARGET)" == "x64" -LINK_MACHINE=X64 -!else if "$(TARGET)" == "ia64" -LINK_MACHINE=IA64 -!endif - -DEFS=$(DEFS) $(DEBDEFS) $(TARGDEFS) -RCFLAGS=$(RCFLAGS) /l 0x409 $(DEFS) - -############################################################################# -# Goals to build - -GOALS=resource_dll -goal: $(GOALS) - -create.dir: - @-if not exist $D\*.* mkdir $D - -clean: - -if exist $D\*.obj erase $D\*.obj - -if exist $D\*.pch erase $D\*.pch - -if exist $D\*.res erase $D\*.res - -if exist $D\*.rsc erase $D\*.rsc - -if exist $D\*.map erase $D\*.map - -if exist $D\*.pdb erase $D\*.pdb - -if exist $D\*.tlb erase $D\*.tlb - -if exist $D\*.h erase $D\*.h - -if not exist $D\*.* rmdir $D - - -RESFILE=$(D)\$(RCFILE:.rc=.res) - - -resource_dll: - -if not exist $(D) mkdir $(D) - $(RC) $(RCFLAGS) /fo$(RESFILE) $(RCFILE) - -if not exist $(D)\1033 mkdir $(D)\1033 - $(LINK32) /MACHINE:$(LINK_MACHINE) $(RESFILE) -DLL -NOENTRY /out:$(D)\1033\$(TARGETNAME)UI.dll - \ No newline at end of file diff --git a/ATL90/source/CLStencil/clstencilui.vcproj b/ATL90/source/CLStencil/clstencilui.vcproj deleted file mode 100644 index 340361b..0000000 --- a/ATL90/source/CLStencil/clstencilui.vcproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ATL90/source/CLStencil/resource.h b/ATL90/source/CLStencil/resource.h deleted file mode 100644 index 28d4d3b..0000000 --- a/ATL90/source/CLStencil/resource.h +++ /dev/null @@ -1,28 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by clstencil.rc -// -#define IDS_HEADER 101 -#define IDS_NOTSUPPORTED 102 -#define IDS_USAGE 103 -#define IDS_ERROR 104 -#define IDS_UNKNOWN_PARAM 105 -#define IDS_INPUT_FILE 106 -#define IDS_INVALID_ARGS 107 -#define IDS_INIT_FAILED 108 -#define IDS_SERVER_VARIABLE_NOT_FOUND 109 -#define IDS_QS_TOO_LONG 110 -#define IDS_CONTENT_TYPE_TOO_LONG 111 -#define IDS_CT_TOO_LONG 111 -#define IDS_VERB_TOO_LONG 112 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 109 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/ATL90/source/SProxy/Attribute.h b/ATL90/source/SProxy/Attribute.h deleted file mode 100644 index 69fbfe0..0000000 --- a/ATL90/source/SProxy/Attribute.h +++ /dev/null @@ -1,309 +0,0 @@ -// -// Attribute.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" -#include "QName.h" - -enum ATTRIBUTEFORM -{ - ATTRFORM_UNK = 0, - ATTRFORM_QUALIFIED, - ATTRFORM_UNQUALIFIED -}; - -inline ATTRIBUTEFORM GetAttributeForm(const wchar_t *wsz, int cch) -{ - struct _attrform - { - wchar_t *wsz; - int cch; - ATTRIBUTEFORM attrform; - }; - - ATTRIBUTEFORM retForm = ATTRFORM_UNK; - - // data driven is kind of overkill for two options, but makes it - // easy to extend later - static const _attrform s_forms[] = - { - { L"qualified", sizeof("qualified")-1, ATTRFORM_QUALIFIED }, - { L"unqualified", sizeof("unqualified")-1, ATTRFORM_UNQUALIFIED } - }; - - for (int i=0; i<(sizeof(s_forms)/sizeof(s_forms[0])); i++) - { - if (cch == s_forms[i].cch && !wcsncmp(wsz, s_forms[i].wsz, cch)) - { - retForm = s_forms[i].attrform; - break; - } - } - - return retForm; -} - -enum ATTRIBUTEUSE -{ - ATTRUSE_UNK = 0, - ATTRUSE_PROHIBITED, - ATTRUSE_OPTIONAL, - ATTRUSE_REQUIRED, - ATTRUSE_DEFAULT, - ATTRUSE_FIXED -}; - -inline ATTRIBUTEUSE GetAttributeUse(const wchar_t *wsz, int cch) -{ - struct _attruse - { - wchar_t *wsz; - int cch; - ATTRIBUTEUSE attruse; - }; - - ATTRIBUTEUSE retUse = ATTRUSE_UNK; - - // data driven is kind of overkill for two options, but makes it - // easy to extend later - static const _attruse s_uses[] = - { - { L"prohibited", sizeof("prohibited")-1, ATTRUSE_PROHIBITED }, - { L"optional", sizeof("optional")-1, ATTRUSE_OPTIONAL }, - { L"required", sizeof("required")-1, ATTRUSE_REQUIRED }, - { L"default", sizeof("default")-1, ATTRUSE_DEFAULT }, - { L"fixed", sizeof("fixed")-1, ATTRUSE_FIXED }, - }; - - for (int i=0; i<(sizeof(s_uses)/sizeof(s_uses[0])); i++) - { - if (cch == s_uses[i].cch && !wcsncmp(wsz, s_uses[i].wsz, cch)) - { - retUse = s_uses[i].attruse; - break; - } - } - - return retUse; -} - -class CAttribute : public CXSDElement -{ -private: - - ATTRIBUTEFORM m_attrForm; - ATTRIBUTEUSE m_attrUse; - CStringW m_strName; - CQName m_ref; - CQName m_type; - CStringW m_strValue; - CStringW m_strID; - - // WSDL:arrayType attribute - CStringW m_strArrayType; - -protected: - -public: - - // REVIEW: set to defaults? - CAttribute() - :m_attrForm(ATTRFORM_UNK), m_attrUse(ATTRUSE_UNK) - { - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetArrayType(const wchar_t *wszArrayType, int cchArrayType) - { - if (!wszArrayType) - { - return E_FAIL; - } - - m_strArrayType.SetString(wszArrayType, cchArrayType); - - return S_OK; - } - - inline HRESULT SetArrayType(const CStringW& strArrayType) - { - m_strArrayType = strArrayType; - - return S_OK; - } - - inline const CStringW& GetArrayType() - { - return m_strArrayType; - } - - inline HRESULT SetValue(const wchar_t *wszValue, int cchValue) - { - if (!wszValue) - { - return E_FAIL; - } - - m_strValue.SetString(wszValue, cchValue); - - return S_OK; - } - - inline HRESULT SetValue(const CStringW& strValue) - { - m_strValue = strValue; - - return S_OK; - } - - inline const CStringW& GetValue() - { - return m_strValue; - } - - inline HRESULT SetID(const wchar_t *wszID, int cchID) - { - if (!wszID) - { - return E_FAIL; - } - - m_strID.SetString(wszID, cchID); - - return S_OK; - } - - inline HRESULT SetID(const CStringW& strID) - { - m_strID = strID; - - return S_OK; - } - - inline const CStringW& GetID() - { - return m_strID; - } - - inline HRESULT SetType(const CStringW& strQName) - { - m_type.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetType(const CStringW& strPrefix, const CStringW& strName) - { - m_type.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetType(const wchar_t *wszQName, int cchQName) - { - m_type.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetTypeName() - { - return m_type; - } - - inline HRESULT SetRef(const CStringW& strQName) - { - m_ref.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetRef(const CStringW& strPrefix, const CStringW& strName) - { - m_ref.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetRef(const wchar_t *wszQName, int cchQName) - { - m_ref.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetRefName() - { - return m_ref; - } - - inline HRESULT SetAttributeForm(const wchar_t *wsz, int cch) - { - m_attrForm = ::GetAttributeForm(wsz, cch); - if (m_attrForm != ATTRFORM_UNK) - { - return S_OK; - } - - return E_FAIL; - } - - inline HRESULT SetAttributeForm(const CStringW& str) - { - return SetAttributeForm(str, str.GetLength()); - } - - inline ATTRIBUTEFORM GetAttributeForm() - { - return m_attrForm; - } - - inline HRESULT SetAttributeUse(const wchar_t *wsz, int cch) - { - m_attrUse = ::GetAttributeUse(wsz, cch); - if (m_attrUse != ATTRUSE_UNK) - { - return S_OK; - } - - return E_FAIL; - } - - inline HRESULT SetAttributeUse(const CStringW& str) - { - return SetAttributeUse(str, str.GetLength()); - } - - inline ATTRIBUTEUSE GetAttributeUse() - { - return m_attrUse; - } -}; // class CAttribute \ No newline at end of file diff --git a/ATL90/source/SProxy/AttributeParser.cpp b/ATL90/source/SProxy/AttributeParser.cpp deleted file mode 100644 index 118d249..0000000 --- a/ATL90/source/SProxy/AttributeParser.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// -// AttributeParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "AttributeParser.h" -#include "Attribute.h" - -TAG_METHOD_IMPL(CAttributeParser, OnAnnotation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CAttributeParser, OnSimpleType) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -ATTR_METHOD_IMPL(CAttributeParser, OnForm) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetAttributeForm(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnRef) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetRef(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnType) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetType(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnUse) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetAttributeUse(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnValue) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetValue(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - CAttribute * pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetID(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CAttributeParser, OnArrayType) -{ - TRACE_PARSE_ENTRY(); - - CAttribute *pCurr = GetAttribute(); - if (pCurr != NULL) - { - return pCurr->SetArrayType(wszValue, cchValue); - } - - Emit(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT CAttributeParser::ValidateElement() -{ - // emit a warning when we encounter an attribute that is - // not an arrayType attribute - CAttribute *pCurr = GetAttribute(); - if (pCurr != NULL) - { - if (!pCurr->GetArrayType().GetLength()) - { - EmitFileWarning(IDS_SDL_NO_ATTRIBUTES, pCurr, 0); - } - } - - return S_OK; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/AttributeParser.h b/ATL90/source/SProxy/AttributeParser.h deleted file mode 100644 index 5153d60..0000000 --- a/ATL90/source/SProxy/AttributeParser.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// AttributeParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "Emit.h" -#include "resource.h" - -class CAttribute; - -class CAttributeParser : public CParserBase -{ -private: - - CAttribute *m_pAttribute; - -public: - - inline CAttributeParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CAttribute *pAttribute = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pAttribute(pAttribute) - { - } - - inline CAttribute * GetAttribute() - { - return m_pAttribute; - } - - inline void SetAttribute(CAttribute *pAttribute) - { - m_pAttribute = pAttribute; - } - - HRESULT ValidateElement(); - - /* - - Content: (annotation? , (simpleType?)) - - */ - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation) - XMLTAG_ENTRY_EX("simpleType", XSD_NAMESPACEA, OnSimpleType) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("form", OnForm) - XMLATTR_ENTRY("ref", OnRef) - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY_EX("arrayType", WSDL_NAMESPACEA, OnArrayType) - XMLATTR_ENTRY("type", OnType) - XMLATTR_ENTRY("use", OnUse) - XMLATTR_ENTRY("value", OnValue) - XMLATTR_ENTRY("id", OnID) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnAnnotation); - TAG_METHOD_DECL(OnSimpleType); - - ATTR_METHOD_DECL(OnForm); - ATTR_METHOD_DECL(OnRef); - ATTR_METHOD_DECL(OnArrayType); - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnType); - ATTR_METHOD_DECL(OnUse); - ATTR_METHOD_DECL(OnValue); - ATTR_METHOD_DECL(OnID); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/CodeTypeBuilder.cpp b/ATL90/source/SProxy/CodeTypeBuilder.cpp deleted file mode 100644 index 65dda9c..0000000 --- a/ATL90/source/SProxy/CodeTypeBuilder.cpp +++ /dev/null @@ -1,2814 +0,0 @@ -// -// CodeTypeBuilder.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "CodeTypeBuilder.h" - -// CXSDTypeLookup CCodeTypeBuilder::m_xsdLookup; -const CStringW cStrMinMaxOccursArray=L"MIN_MAX_OCCURS_ARRAY"; - -HRESULT CCodeTypeBuilder::Build(CCodeProxy * pCodeProxy, CWSDLDocument *pDoc) -{ - if (pDoc != NULL) - { - m_pDoc = pDoc; - } - - if (pCodeProxy != NULL) - { - m_pProxy = pCodeProxy; - } - - if (m_pDoc == NULL || m_pProxy == NULL) - { - return E_INVALIDARG; - } - - HRESULT hr; - POSITION pos = m_pDoc->GetFirstService(); - while (pos != NULL) - { - CWSDLService *p = m_pDoc->GetNextService(pos); - if (p != NULL) - { - hr = ProcessService(p); - if (FAILED(hr)) - { - return hr; - } - } - } - - // check if anything was generated - if (m_pProxy->GetClassName().GetLength() == 0) - { - EmitError(IDS_SDL_NO_GENERATE); - return E_FAIL; - } - - // - // sort structs by dependency - // - - hr = SortStructs(); - - POSITION oldpos = NULL; - - if (SUCCEEDED(hr)) - { - // - // Add functions to proxy - // - - pos = m_functions.GetHeadPosition(); - oldpos = NULL; - while (pos != NULL) - { - oldpos = pos; - m_functions.GetNext(pos); - if (m_pProxy->AddFunction(m_functions.GetAt(oldpos))) - { - m_functions.RemoveAt(oldpos); - } - else - { - hr = E_OUTOFMEMORY; - break; - } - } - } - - if (SUCCEEDED(hr)) - { - // - // Add enums to proxy - // - - m_enums.DisableAutoRehash(); - pos = m_enums.GetStartPosition(); - oldpos = NULL; - while (pos != NULL) - { - oldpos = pos; - CODEENUMMAP::CPair *p = m_enums.GetNext(pos); - if (m_pProxy->AddEnum(p->m_value) != NULL) - { - m_enums.RemoveAtPos(oldpos); - } - else - { - hr = E_OUTOFMEMORY; - break; - } - } - m_enums.EnableAutoRehash(); - } - - if (SUCCEEDED(hr)) - { - // - // Add headers to proxy - // - - m_headersByType.DisableAutoRehash(); - pos = m_headersByType.GetStartPosition(); - oldpos = NULL; - while (pos != NULL) - { - oldpos = pos; - CODEHEADERTYPEMAP::CPair *p = m_headersByType.GetNext(pos); - if (m_pProxy->AddHeader(p->m_value) != NULL) - { - m_headersByType.RemoveAtPos(oldpos); - } - else - { - hr = E_OUTOFMEMORY; - break; - } - } - m_headersByType.EnableAutoRehash(); - } - - if (SUCCEEDED(hr)) - { - hr = m_pProxy->SetTargetNamespace(m_pDoc->GetTargetNamespace()); - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessService(CWSDLService *pSvc) -{ - HRESULT hr = S_FALSE; - POSITION pos = pSvc->GetFirstPort(); - while (pos != NULL) - { - CWSDLPort *p = pSvc->GetNextPort(pos); - if (m_pProxy->GetClassName().GetLength() != 0) - { - EmitFileWarning(IDS_SDL_ONE_PORT, p, 0); - continue; - } - if (p != NULL) - { - hr = ProcessPort(p); - if (FAILED(hr)) - { - return hr; - } - } - if (hr == S_OK) - { - if (pSvc->GetName().GetLength() != 0) - { - CString strClassName; - strClassName.Append("C", 1); - strClassName+= pSvc->GetName(); - - if (FAILED(m_pProxy->SetClassName(strClassName))) - { - return E_FAIL; - } - if (FAILED(m_pProxy->SetServiceName(pSvc->GetName()))) - { - return E_FAIL; - } - } - else - { - if (FAILED(m_pProxy->SetClassName("CAtlServerProxy"))) - { - return E_FAIL; - } - if (FAILED(m_pProxy->SetServiceName("AtlServerProxy"))) - { - return E_FAIL; - } - } - } - } - - return S_OK; -} - -HRESULT CCodeTypeBuilder::ProcessPort(CWSDLPort *pPort) -{ - ATLASSERT( pPort != NULL ); - - // TODO: handle other kinds of transport (SMTP) - if (pPort->GetSoapAddress().GetLength() != 0) - { - if (SUCCEEDED(m_pProxy->SetAddressUri(pPort->GetSoapAddress()))) - { - CWSDLBinding * pBinding = pPort->GetBinding(); - if (pBinding != NULL) - { - return ProcessBinding(pBinding); - } - } - - return E_FAIL; - } - - EmitFileWarning(IDS_SDL_SOAP_PORT_ONLY, pPort, 0); - - return S_FALSE; -} - -HRESULT CCodeTypeBuilder::ProcessBinding(CWSDLBinding *pBinding) -{ - // - // REVIEW: right now only support the SOAP binding - // - - CSoapBinding *pSoapBinding = pBinding->GetSoapBinding(); - - if (pSoapBinding != NULL) - { - CWSDLPortType * pPortType = pBinding->GetPortType(); - if (pPortType != NULL) - { - return ProcessPortType(pPortType, pBinding); - } - - return E_FAIL; - } - - EmitFileWarning(IDS_SDL_SOAP_BINDING_ONLY, pBinding, 0); - - return S_OK; -} - -HRESULT CCodeTypeBuilder::ProcessPortType(CWSDLPortType *pPortType, CWSDLBinding *pBinding) -{ - HRESULT hr = S_OK; - POSITION pos = pPortType->GetFirstOperation(); - while (pos != NULL) - { - CWSDLPortTypeOperation * p = pPortType->GetNextOperation(pos); - CWSDLPortTypeInput *pBindingInput = NULL; - CWSDLPortTypeOutput *pBindingOutput = NULL; - CStringW strSoapAction; - CStringW strMethodNamespace; - if (p != NULL) - { - hr = E_FAIL; - CWSDLPortTypeOperation *pBindingOp = pBinding->GetOperation(p->GetName()); - if (pBindingOp != NULL) - { - hr = S_OK; - pBindingInput = pBindingOp->GetInput(); - if (pBindingInput != NULL) - { - hr = E_FAIL; - CSoapBody *pBody = pBindingInput->GetSoapBody(); - if (pBody != NULL) - { - // TODO (jasjitg): support all uses and styles - if ((pBody->GetUse() == SOAPUSE_LITERAL) || - ((pBody->GetUse() == SOAPUSE_ENCODED) && - (pBody->GetEncodingStyle() == SOAP_ENCODINGSTYLEW))) - { - strMethodNamespace = pBody->GetNamespace(); - hr = S_OK; - CSoapOperation *pSoapOperation = pBindingOp->GetSoapOperation(); - if (pSoapOperation != NULL) - { - strSoapAction = pSoapOperation->GetSoapAction(); - } - } - } - } - - if (SUCCEEDED(hr)) - { - pBindingOutput = pBindingOp->GetOutput(); - if (pBindingOutput != NULL) - { - hr = E_FAIL; - CSoapBody *pBody = pBindingOutput->GetSoapBody(); - if (pBody != NULL) - { - // TODO (jasjitg): support all uses and styles - if ((pBody->GetUse() == SOAPUSE_LITERAL) || - ((pBody->GetUse() == SOAPUSE_ENCODED) && - (pBody->GetEncodingStyle() == SOAP_ENCODINGSTYLEW))) - { - if ((strMethodNamespace.GetLength() != 0) && - (strMethodNamespace != pBody->GetNamespace())) - { - // ATL Server does not support input/output operations with different namespaces - EmitFileError(IDS_SDL_IO_DIFF_NAMESPACES, pBody, 0); - hr = E_FAIL; - } - else - { - if (strSoapAction.GetLength() == 0) - { - CSoapOperation *pSoapOperation = pBindingOp->GetSoapOperation(); - if (pSoapOperation != NULL) - { - strSoapAction = pSoapOperation->GetSoapAction(); - hr = S_OK; - } - } - else - { - hr = S_OK; - } - } - } - } - } - } - } - - if (strMethodNamespace.GetLength() == 0) - { - strMethodNamespace = m_pDoc->GetTargetNamespace(); - } - - CAutoPtr spElem; - if (SUCCEEDED(hr)) - { - ATLASSERT( pBindingOp != NULL ); - spElem.Attach( new CCodeFunction ); - if (spElem != NULL) - { - if (FAILED(spElem->SetNamespace(strMethodNamespace))) - { - return E_FAIL; - } - - CWSDLPortTypeInput *pInput = p->GetInput(); - if (pInput != NULL) - { - // - // process input - // - - // TODO: WSDL1.1 only process parts specified by body (if parts attribute exists) - CWSDLMessage *pMsg = pInput->GetMessage(); - if (pMsg != NULL) - { - hr = ProcessMessage(pBindingInput, pBindingOp, pBinding, pMsg, spElem, CODEFLAG_IN); - } - - if (SUCCEEDED(hr)) - { - hr = ProcessSoapHeaders(spElem, pBindingInput, pBindingOp, pBinding, CODEFLAG_IN); - } - } - - if (SUCCEEDED(hr)) - { - CWSDLPortTypeOutput *pOutput = p->GetOutput(); - - if (pOutput != NULL) - { - // - // process output - // - - // TODO: WSDL1.1 only process parts specified by body (if parts attribute exists) - CWSDLMessage *pMsg = pOutput->GetMessage(); - if (pMsg != NULL) - { - hr = ProcessMessage(pBindingOutput, pBindingOp, pBinding, pMsg, spElem, CODEFLAG_OUT); - } - - if (SUCCEEDED(hr)) - { - hr = ProcessSoapHeaders(spElem, pBindingOutput, pBindingOp, pBinding, CODEFLAG_OUT); - } - } - } - } - else - { - hr = E_OUTOFMEMORY; - } - } - - // - // Add spElem to function list - // - if (SUCCEEDED(hr) && spElem != NULL) - { - hr = spElem->SetName(p->GetName()); - if (pBindingOutput == NULL) - { - // if the output is NULL, it is a one-way method - spElem->SetCallFlags(spElem->GetCallFlags() | CODEFLAG_ONEWAY); - } - if (SUCCEEDED(hr)) - { - if (SUCCEEDED(spElem->SetSoapAction(strSoapAction))) - { - // safe-naming - hr = CreateSafeNames(spElem); - if (SUCCEEDED(hr)) - { - if (m_functions.AddTail(spElem) != NULL) - { - spElem.Detach(); - } - else - { - hr = E_OUTOFMEMORY; - } - } - } - } - } - - if (FAILED(hr)) - { - EmitErrorHr(hr); - break; - } - } - } - - return hr; -} - -// TODO: respect the parts= attribute -HRESULT CCodeTypeBuilder::ProcessMessage( - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - CWSDLMessage *pMessage, - CCodeFunction *pCodeFunc, - DWORD dwFlags) -{ - ATLASSERT( pIO != NULL ); - ATLASSERT( pBindingOp != NULL ); - ATLASSERT( pBinding != NULL ); - ATLASSERT( pMessage != NULL ); - ATLASSERT( pCodeFunc != NULL ); - - DWORD dwCallFlags = 0; - HRESULT hr = GetCallFlags(NULL, pMessage, pIO, pBindingOp, pBinding, &dwCallFlags); - if (SUCCEEDED(hr)) - { - bool bInternalError = false; - - if ((pCodeFunc->GetCallFlags() & CODEFLAG_CHAIN) && - ((dwCallFlags & CODEFLAG_CHAIN)==0)) - { - // REVIEW: sproxy.exe limitation -- may fix in future - return E_FAIL; - } - - pCodeFunc->SetCallFlags(dwCallFlags); - - if (dwCallFlags & CODEFLAG_PID) - { - hr = ProcessMessage_PID(pMessage, pCodeFunc, dwFlags, dwCallFlags); - } - else if (dwCallFlags & CODEFLAG_PAD) - { - hr = ProcessMessage_PAD(pMessage, pCodeFunc, dwFlags, dwCallFlags); - } - else if (dwCallFlags & CODEFLAG_RPC) - { - if (dwCallFlags & CODEFLAG_ENCODED) - { - hr = ProcessMessage_RPC_Encoded(pMessage, pCodeFunc, dwFlags, dwCallFlags); - } -// else if (dwCallFlags & CODEFLAG_LITERAL) -// { -// hr = ProcessMessage_RPC_Literal(pMessage, pCodeFunc, dwFlags, dwCallFlags); -// } - else - { - bInternalError = true; - } - - if (SUCCEEDED(hr)) - { - if (dwFlags & CODEFLAG_IN) - { - hr = pCodeFunc->SetSendName(pBindingOp->GetName()); - } - else if (dwFlags & CODEFLAG_OUT) - { - hr = pCodeFunc->SetResponseName(pBindingOp->GetName()); - } - else - { - bInternalError = true; - } - } - } - else - { - bInternalError = true; - } - - if (bInternalError != false) - { - ATLASSERT( FALSE ); - EmitError(IDS_SDL_INTERNAL); - hr = E_FAIL; - } - } - - return hr; -} - -// -// PID means ParametersInDocument -// structure of the referenced message and part is: -// -// -// -// -// -// where MyFunctionElement looks like: -// -// -// -// -// -// -// -// -// -// -// for the referenced message and part for input operation from the binding/port, -// each element of the complexType represents an in-parameter. -// for the referenced message and part for output operation from the binding/port, -// each element of the complexType represents an out-parameter. -// as a proxy-generating convention, two "parameters" that have the same in the -// input element and output element are considered the same parameter--that logic -// is in ProcessElement. The wrapper element under for the request, -// is the name of the referenced element for the input operation message part. -// The wrapper element under for the response is the name of the -// referenced element for the output operation message part. -// See sections 2.3 and 3.5 in the WSDL 1.1 spec for more details. -// -HRESULT CCodeTypeBuilder::ProcessMessage_PID( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pMsg != NULL ); - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( dwCallFlags & CODEFLAG_PID ); - - // REVIEW (jasjitg): maybe ATLASSERT is too lenient here - ATLASSERT( pMsg->GetNumParts() == 1 ); - - dwCallFlags; - - POSITION pos = pMsg->GetFirstPart(); - if (pos != NULL) - { - CWSDLMessagePart *pPart = pMsg->GetNextPart(pos); - if (pPart != NULL) - { - return ProcessMessagePart_PID(pPart, pCodeFunc, dwFlags, dwCallFlags); - } - } - - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; -} - -HRESULT CCodeTypeBuilder::ProcessMessagePart_PID( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pPart != NULL ); - ATLASSERT( pCodeFunc != NULL ); - - HRESULT hr = E_FAIL; - CODETYPE codeType = (dwFlags & CODEFLAG_HEADER) ? CODETYPE_HEADER : CODETYPE_UNK; - if (pPart->GetElementName().GetName().GetLength() != 0) - { - CElement *pElem; - hr = pPart->GetElement(&pElem); - if (SUCCEEDED(hr)) - { - ATLASSERT( pElem != NULL ); - - hr = CheckDocLiteralNamespace(pCodeFunc, pElem, dwFlags, dwCallFlags); - if (hr == S_OK) - { - hr = ProcessElement(pElem, pCodeFunc, dwFlags | dwCallFlags, codeType, TRUE, pPart); - if (SUCCEEDED(hr)) - { - // do not reset these if processing headers - if ((dwFlags & CODEFLAG_HEADER) == 0) - { - if (dwFlags & CODEFLAG_OUT) - { - hr = pCodeFunc->SetResponseName(pElem->GetName()); - } - else if (dwFlags & CODEFLAG_IN) - { - hr = pCodeFunc->SetSendName(pElem->GetName()); - } - } - } - } - } - } - else - { - EmitError(IDS_SDL_INTERNAL); - } - - return hr; -} - -// TODO (jasjitg): must respect parts= with all these - -// -// PAD means ParametersAsDocument -// each message part represents a parameter -// NOTE: if any referenced part references its schema component -// using the type= attribute it MUST be the only referenced message -// part, per the second example in section 2.3.1 in the WSDL 1.1 spec. -// -// structure of the referenced message and part is: -// -// -// -// -// -// -// where schema looks like (showing element= example -- see 2.3.1 for type= example): -// -// -// -// -// -// -// -// -// -// -// -// -// the expected wire format is: -// -// -// -// 123 -// 123some string -// -// -// -// see 2.3, 2.3.1, and 3.5 in the WSDL 1.1 spec for more details. -// -HRESULT CCodeTypeBuilder::ProcessMessage_PAD( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pMsg != NULL ); - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( dwCallFlags & CODEFLAG_PAD ); - - bool bType = false; - POSITION pos = pMsg->GetFirstPart(); - while (pos != NULL) - { - if (bType != false) - { - EmitFileError(IDS_SDL_PAD_TYPE, pMsg, 0); - return E_FAIL; - } - - CWSDLMessagePart *pCheck = pMsg->GetNextPart(pos); - ATLASSERT( pCheck != NULL ); - if (pCheck->GetTypeName().GetName().GetLength() != 0) - { - bType = true; - } - } - - HRESULT hr = S_OK; - if (dwFlags & CODEFLAG_IN) - { - // clear the namespace--it should be set from the schema - pCodeFunc->GetNamespace().Empty(); - } - - if (bType != false) - { - // REVIEW (jasjitg): not implemented correctly in atlsoap.h!!! - - // REVIEW (jasjitg): comment/assert below... - // must have CODEFLAG_CHAIN - ATLASSERT( dwCallFlags & CODEFLAG_CHAIN ); - - // referenced by type= ==> only one message part - pos = pMsg->GetFirstPart(); - CWSDLMessagePart *pPart = pMsg->GetNextPart(pos); - ATLASSERT( pPart != NULL ); - - hr = ProcessMessagePart_PAD(pPart, pCodeFunc, dwFlags, dwCallFlags); - } - else // referenced by element= - { - pos = pMsg->GetFirstPart(); - while (pos != NULL) - { - CWSDLMessagePart *pPart = pMsg->GetNextPart(pos); - ATLASSERT( pPart != NULL ); - - hr = ProcessMessagePart_PAD(pPart, pCodeFunc, dwFlags, dwCallFlags); - - if (FAILED(hr)) - { - break; - } - } - } - - if (FAILED(hr)) - { - EmitErrorHr(E_FAIL); - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessMessagePart_PAD( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pPart != NULL ); - ATLASSERT( pCodeFunc != NULL ); - - HRESULT hr = E_FAIL; - bool isHeader = (dwFlags & CODEFLAG_HEADER) != 0; - CODETYPE codeType = isHeader ? CODETYPE_HEADER : CODETYPE_UNK; - if (pPart->GetTypeName().GetName().GetLength() == 0) - { - CElement *pElement = NULL; - hr = pPart->GetElement(&pElement); - if (SUCCEEDED(hr)) - { - ATLASSERT( pElement != NULL ); - - // set/verify namespace - hr = CheckDocLiteralNamespace(pCodeFunc, pElement, dwFlags, dwCallFlags); - if (hr == S_OK) - { - hr = ProcessElement(pElement, pCodeFunc, dwFlags | dwCallFlags, codeType, TRUE, pPart); - } - } - } - else - { - CXSDElement *pXSDElement = NULL; - XSDTYPE xsdType = XSDTYPE_ERR; - - if (SUCCEEDED(pPart->GetType(&pXSDElement, &xsdType))) - { - // must be complexType, or else wire format will not be valid by SOAP section 4.3 - if ((pXSDElement != NULL) && - (pXSDElement->GetElementType() == XSD_COMPLEXTYPE)) - { - hr = CheckDocLiteralNamespace(pCodeFunc, pXSDElement, dwFlags, dwCallFlags); - if (hr == S_OK) - { - CStringW strName; - hr = GetNameFromSchemaElement(pXSDElement, strName); - if (SUCCEEDED(hr)) - { - // REVIEW (jasjitg): issues here about in/out parameters, etc. - hr = ProcessMessagePart_Type(pPart, pXSDElement, XSDTYPE_ERR, codeType, - pPart->GetName(), pCodeFunc, dwFlags, dwCallFlags); - } - else - { - EmitError(IDS_SDL_INTERNAL); - hr = E_FAIL; - } - } - } - else - { - EmitFileError(IDS_SDL_PAD_INVALID_SOAP, pPart, 0); - hr = E_FAIL; - } - } - } - - return hr; -} - -// TODO (jasjitg): must respect parts= with all these -// TODO (jasjitg): must pass input/output so that send/response names can be set -HRESULT CCodeTypeBuilder::ProcessMessage_RPC_Encoded( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pMsg != NULL ); - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( dwCallFlags & CODEFLAG_RPC ); - ATLASSERT( dwCallFlags & CODEFLAG_ENCODED ); - - pMsg; - pCodeFunc; - dwFlags; - dwCallFlags; - - POSITION pos = pMsg->GetFirstPart(); - HRESULT hr = S_OK; - while (pos != NULL) - { - CWSDLMessagePart *pPart = pMsg->GetNextPart(pos); - ATLASSERT( pPart != NULL ); - - hr = ProcessMessagePart_RPC_Encoded(pPart, pCodeFunc, dwFlags, dwCallFlags); - if (FAILED(hr)) - { - break; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessMessagePart_RPC_Encoded( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - HRESULT hr = S_OK; - CODETYPE codeType = (dwFlags & CODEFLAG_HEADER) ? CODETYPE_HEADER : CODETYPE_UNK; - if (pPart->GetTypeName().GetName().GetLength() != 0) - { - CXSDElement *pXSDElement = NULL; - XSDTYPE xsdType = XSDTYPE_ERR; - - hr = pPart->GetType(&pXSDElement, &xsdType); - if (SUCCEEDED(hr)) - { - hr = ProcessMessagePart_Type(pPart, pXSDElement, xsdType, codeType, - pPart->GetName(), pCodeFunc, dwFlags, dwCallFlags); - } - } - else - { - EmitFileError(IDS_SDL_RPC_ENCODED_TYPE, pPart, 0); - hr = E_FAIL; - } - - return hr; -} - -// REVIEW (jasjitg): not going to support these in this version -#if 0 -HRESULT CCodeTypeBuilder::ProcessMessage_RPC_Literal( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pMsg != NULL ); - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( dwCallFlags & CODEFLAG_RPC ); - ATLASSERT( dwCallFlags & CODEFLAG_LITERAL ); - - pMsg; - pCodeFunc; - dwFlags; - dwCallFlags; - - POSITION pos = pMsg->GetFirstPart(); - HRESULT hr = S_OK; - while (pos != NULL) - { - CWSDLMessagePart *pPart = pMsg->GetNextPart(pos); - ATLASSERT( pPart != NULL ); - - hr = ProcessMessagePart_RPC_Literal(pPart, pCodeFunc, dwFlags, dwCallFlags); - - if (FAILED(hr)) - { - break; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessMessagePart_RPC_Literal( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - HRESULT hr = S_OK; - CODETYPE codeType = (dwFlags & CODEFLAG_HEADER) ? CODETYPE_HEADER : CODETYPE_UNK; - if (pPart->GetElementName().GetName().GetLength() != 0) - { - CElement *pElement = NULL; - hr = pPart->GetElement(&pElement); - if (SUCCEEDED(hr)) - { - ATLASSERT( pElement != NULL ); - hr = ProcessElement(pElement, pCodeFunc, dwFlags | dwCallFlags | CODEFLAG_ELEMENT, codeType, TRUE, pPart); - } - } - else if (pPart->GetTypeName().GetName().GetLength() != 0) - { - CXSDElement *pXSDElement = NULL; - XSDTYPE xsdType = XSDTYPE_ERR; - - hr = pPart->GetType(&pXSDElement, &xsdType); - if (SUCCEEDED(hr)) - { - hr = ProcessMessagePart_Type(pPart, pXSDElement, xsdType, codeType, - pPart->GetName(), pCodeFunc, dwFlags, dwCallFlags); - } - } - else - { - // we should check this in CWSDLMessageParser::OnPart - ATLASSERT( FALSE ); - EmitErrorHr(E_FAIL); - hr = E_FAIL; - } - - return hr; -} -#endif - -HRESULT CCodeTypeBuilder::ProcessMessagePart_Type( - CWSDLMessagePart *pPart, - CXSDElement *pXSDElement, - XSDTYPE xsdType, - CODETYPE codeType, - const CStringW& strName, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags) -{ - CCodeTypedElement *pCodeElem = NULL; - CAutoPtr spCodeElem; - bool bFound = false; - if (codeType != CODETYPE_HEADER) - { - pCodeElem = GetParameterByName(pCodeFunc, strName); - if (pCodeElem == NULL) - { - pCodeElem = pCodeFunc->AddElement(); - } - else - { - bFound = true; - } - } - else - { - // REVIEW: I'm not sure about this... (!!!) - pCodeElem = GetHeaderByName(pCodeFunc, strName); - if (pCodeElem == NULL) - { - spCodeElem.Attach( new CCodeTypedElement ); - if (spCodeElem == NULL) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - - pCodeElem = spCodeElem; - pCodeElem->SetName(strName); - } - else - { - bFound = true; - } - } - - HRESULT hr = E_FAIL; - if (pCodeElem != NULL) - { - dwFlags |= dwCallFlags; - if (!bFound) - { - if (pXSDElement != NULL) - { - hr = ProcessSchemaElement(pXSDElement, pCodeElem, pCodeFunc, dwFlags); - } - else if (xsdType != XSDTYPE_ERR) - { - hr = S_OK; - pCodeElem->SetXSDType(xsdType); - } - } - else - { - hr = S_OK; - } - - if (SUCCEEDED(hr)) - { - pCodeElem->AddFlags(dwFlags); - if (!bFound) - { - hr = pCodeElem->SetName(strName); - } - if (SUCCEEDED(hr) && spCodeElem != NULL) - { - ATLASSERT( codeType == CODETYPE_HEADER ); - hr = CheckAndAddHeader(pCodeFunc, spCodeElem, dwFlags, pPart); - } - } - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessElement( - CElement *pElem, - CCodeElementContainer *pContainer, - DWORD dwFlags, - CODETYPE parentCodeType, - BOOL fTopLevel, - CWSDLMessagePart *pMsgPart - ) -{ - HRESULT hr = E_FAIL; - - // - // REVIEW: element must have a name - // (could do this check in CElementParser) - // - if (pElem->GetName().GetLength() == 0) - { - return E_FAIL; - } - - if ((fTopLevel != FALSE) && - (parentCodeType == CODETYPE_FUNCTION) && - (pElem->GetNumChildren() == 0)) - { - return S_OK; - } - - POSITION pos = pElem->GetFirstElement(); - CAutoPtr spCodeElem; - - if (pContainer != NULL) - { - spCodeElem.Attach( new CCodeTypedElement ); - if (spCodeElem == NULL) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - } - - CCodeTypedElement typedElem; - - CODETYPE codeType; - if ((parentCodeType == CODETYPE_FUNCTION) || (pElem->GetNumChildren() == 0)) - { - fTopLevel = FALSE; - if (dwFlags & CODEFLAG_HEADER) - { - codeType = CODETYPE_HEADER; - } - else - { - codeType = CODETYPE_PARAMETER; - } - } - else if (parentCodeType == CODETYPE_STRUCT) - { - codeType = CODETYPE_FIELD; - } - else if (parentCodeType == CODETYPE_HEADER) - { - fTopLevel = FALSE; - codeType = CODETYPE_HEADER; - } - else - { - codeType = CODETYPE_UNK; - } - - if (pos == NULL) - { - hr = GetTypeFromElement(pElem, spCodeElem, pContainer, dwFlags); - } - - bool bCheckArray = false; - if ((pos != NULL) && (pElem->GetTypeName().GetName().GetLength() == 0) && (fTopLevel != TRUE)) - { - POSITION checkPos = pos; - CXSDElement *p = pElem->GetNextElement(checkPos); - if (p->GetElementType() == XSD_COMPLEXTYPE) - { - spCodeElem->SetNamespace(p->GetParentSchema()->GetTargetNamespace()); - bCheckArray = true; - } - } - - if (bCheckArray != false) - { - ATLASSERT( spCodeElem != NULL ); - - hr = ProcessArrayDefintion(pElem, pContainer, spCodeElem, dwFlags); - if (hr == S_FALSE) - { - spCodeElem->SetXSDType(XSDTYPE_STRING); - hr = S_OK; - } - } - else - { - if (dwFlags & CODEFLAG_PAD) - { - fTopLevel = FALSE; - } - - while (pos != NULL) - { - CXSDElement *p = pElem->GetNextElement(pos); - if (p == NULL) - { - return E_FAIL; - } - - switch (p->GetElementType()) - { - case XSD_COMPLEXTYPE: - { - hr = ProcessComplexType(static_cast(p), pContainer, dwFlags); - - if ((fTopLevel != TRUE) && (SUCCEEDED(hr)) && (spCodeElem != NULL)) - { - CODETYPEMAP::CPair *pPair = m_codeTypes.Lookup(static_cast(p)); - ATLASSERT( pPair != NULL ); - *spCodeElem = pPair->m_value; - } - - break; - } - case XSD_SIMPLETYPE: - { - XSDTYPE xsdType = XSDTYPE_UNK; - DWORD dwTypeFlags = 0; - hr = ProcessSimpleType(static_cast(p), &xsdType, &dwTypeFlags); - - if ((fTopLevel != TRUE) && (SUCCEEDED(hr)) && (spCodeElem != NULL)) - { - if (xsdType != XSDTYPE_UNK) - { - spCodeElem->SetXSDType(xsdType); - spCodeElem->SetElement(pElem); - if (spCodeElem->GetNamespace().GetLength() == 0) - { - spCodeElem->SetNamespace(p->GetParentSchema()->GetTargetNamespace()); - } - } - else - { - CODESIMPLETYPEMAP::CPair *pPair = m_codeEnums.Lookup(static_cast(p)); - ATLASSERT( pPair != NULL ); - *spCodeElem = pPair->m_value; - } - } - break; - } - case XSD_UNSUPPORTED: - { - if ((fTopLevel != TRUE) && (spCodeElem != NULL)) - { - spCodeElem->SetXSDType(XSDTYPE_STRING); - spCodeElem->SetElement(pElem); - hr = S_OK; - } - break; - } - default: - { - hr = E_FAIL; - break; - } - } - - if (FAILED(hr)) - { - break; - } - } - } - - if (fTopLevel != TRUE && SUCCEEDED(hr) && spCodeElem != NULL) - { - CStringW strChkName; - if ((dwFlags & CODEFLAG_RPC) && (pMsgPart != NULL)) - { - ATLASSERT( dwFlags & CODEFLAG_LITERAL ); - strChkName = pMsgPart->GetName(); - } - else - { - strChkName = pElem->GetName(); - } - - // check if in/out parameter - if (codeType == CODETYPE_PARAMETER) - { - CCodeTypedElement *p = GetParameterByName(pContainer, strChkName); - if (p != NULL) - { - p->AddFlags(dwFlags); - return S_OK; - } - } - - // REVIEW: safe-naming ... - if (FAILED(spCodeElem->SetName(strChkName))) - { - return E_FAIL; - } - - spCodeElem->SetSizeIs(pElem->GetSizeIs()); - - spCodeElem->AddFlags(dwFlags); - if (spCodeElem->GetCodeType() == CODETYPE_UNK) - { - spCodeElem->SetCodeType(codeType); - } -// if (codeType == CODETYPE_PARAMETER) -// { -// spCodeElem->SetElement(pElem); -// } - - if (codeType != CODETYPE_HEADER) - { - if (pContainer->AddElement(spCodeElem) != NULL) - { - spCodeElem.Detach(); - } - } - else // header - { - hr = CheckAndAddHeader(pContainer, spCodeElem, dwFlags, pMsgPart); - } - - if (spCodeElem != NULL) - { - hr = E_OUTOFMEMORY; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessComplexType( - CComplexType *pType, - CCodeElementContainer *pContainer, - DWORD dwFlags) -{ - HRESULT hr = S_OK; - CODETYPE codeType = CODETYPE_FUNCTION; - CAutoPtr spElem; - - // - // any named complexType will be considered its own struct, - // regardless of whether pContainer is null or not - // - if (pType->GetName().GetLength() != 0) - { - if (m_structs.Lookup(pType) != NULL) - { - // - // we've already processed this element - // - - return S_OK; - } - - if (m_currParse.Lookup(pType) != NULL) - { - // recursive types are not supported - EmitFileError(IDS_SDL_RECURSIVE_TYPE, pType, 0, pType->GetParentSchema()->GetTargetNamespace(), pType->GetName()); - - return E_FAIL; - } - - // add to the list of types we are currently parsing - if (m_currParse.SetAt(pType, 1) == NULL) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; - } - - spElem.Attach( new CCodeElementContainer ); - if (spElem == NULL) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - - ATLASSERT( pType->GetParentSchema() != NULL ); - - // set the type name - hr = spElem->SetName(pType->GetName()); - if (FAILED(hr)) - { - return hr; - } - - // set the type namespace - hr = spElem->SetNamespace(pType->GetParentSchema()->GetTargetNamespace()); - if (FAILED(hr)) - { - return hr; - } - - pContainer = spElem; - codeType = CODETYPE_STRUCT; - } - - bool bArrayOfElem = false; -// if (spElem == NULL) -// { - POSITION pos = pType->GetFirstElement(); - while (pos != NULL) - { - hr = E_FAIL; - CElement *pElem = pType->GetNextElement(pos); - - if (pElem != NULL) - { - hr = ProcessElement(pElem, pContainer, dwFlags, codeType, FALSE, NULL); - if (pElem->GetArrayType() == cStrMinMaxOccursArray) - { - bArrayOfElem = true; - } - } - - if (FAILED(hr)) - { - break; - } - } -// } - - if (SUCCEEDED(hr) && spElem != NULL) - { - hr = CreateSafeNames(spElem); - if (SUCCEEDED(hr)) - { - hr = E_FAIL; - if (m_structs.SetAt(pType, spElem) != NULL) - { - CStringA strSafeName = spElem->GetSafeName(); - spElem.Detach(); - CCodeTypedElement typedElem; - typedElem.SetCodeType(codeType); - typedElem.SetElement(pType); - if ((SUCCEEDED(typedElem.SetCodeTypeName(pType->GetName()))) && - (SUCCEEDED(typedElem.SetSafeCodeTypeName(strSafeName)))) - { - typedElem.SetXSDType(XSDTYPE_UNK); - if (m_codeTypes.SetAt(pType, typedElem) != NULL) - { - hr = S_OK; - } - } - } - } - } - - if( true == bArrayOfElem ) - { - CODETYPEMAP::CPair *pPair = m_codeTypes.Lookup(pType); - ATLASSERT( pPair != NULL ); - CCodeTypedElement& codeElem = pPair->m_value; - codeElem.SetFlags(codeElem.GetFlags() | CODEFLAG_DYNARRAYWRAPPER); - } - // remove from the list of types we are currently parsing - m_currParse.RemoveKey(pType); - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessSimpleType( - CSimpleType *pType, - XSDTYPE *pXSDType, - LPDWORD pdwFlags) -{ - ATLASSERT( pType != NULL ); - ATLASSERT( pXSDType != NULL ); - ATLASSERT( pdwFlags != NULL ); - - // check CLR/FX-specific namespaces - ATLASSERT( pType->GetParentSchema() != NULL ); - - if ((pType->GetParentSchema()->GetTargetNamespace() == FX_TYPES_NAMESPACEW) || - (pType->GetParentSchema()->GetTargetNamespace() == CLR_TYPES_NAMESPACEW)) - { - // treat their custom types as strings - *pXSDType = XSDTYPE_STRING; - - return S_OK; - } - - HRESULT hr = S_OK; - CAutoPtr spElem; - - *pXSDType = XSDTYPE_UNK; - - // - // any named simpleType will be considered its own enum - // REVIEW (jasjitg): inefficient when type is binary - // - if (pType->GetName().GetLength() != 0) - { - if (m_enums.Lookup(pType) != NULL) - { - // - // we've already processed this element - // - - return S_OK; - } - - spElem.Attach( new CCodeElementContainer ); - if (spElem == NULL) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - - hr = spElem->SetName(pType->GetName()); - if (FAILED(hr)) - { - return hr; - } - } - - POSITION pos = pType->GetFirstEnumeration(); - if (pos != NULL) - { - ATLASSERT( pType->GetParentSchema() != NULL ); - if (FAILED(spElem->SetNamespace(pType->GetParentSchema()->GetTargetNamespace()))) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - - NAMEMAP scopedMap; - - while (pos != NULL) - { - CEnumeration * p = pType->GetNextEnumeration(pos); - ATLASSERT( p != NULL ); - - CCodeTypedElement *pNewElem = spElem->AddElement(); - if (pNewElem != NULL) - { - if (FAILED(pNewElem->SetCodeTypeName(p->GetValue()))) - { - hr = E_FAIL; - } - else - { - if ((FAILED(CreateSafeCppName(pNewElem->GetSafeCodeTypeName(), pNewElem->GetCodeTypeName()))) || - (FAILED(CheckNameMap(scopedMap, pNewElem->GetSafeCodeTypeName(), true)))) - { - hr = E_FAIL; - } - } - } - else - { - hr = E_OUTOFMEMORY; - } - if (FAILED(hr)) - { - break; - } - } - - if (SUCCEEDED(hr) && spElem != NULL) - { - hr = CreateSafeNames(spElem); - if (SUCCEEDED(hr)) - { - hr = E_FAIL; - if (m_enums.SetAt(pType, spElem) != NULL) - { - CStringA strSafeName = spElem->GetSafeName(); - spElem.Detach(); - CCodeTypedElement typedElem; - typedElem.SetCodeType(CODETYPE_ENUM); - typedElem.SetElement(pType); - if ((SUCCEEDED(typedElem.SetCodeTypeName(pType->GetName()))) && - (SUCCEEDED(typedElem.SetSafeCodeTypeName(strSafeName)))) - { - typedElem.SetXSDType(XSDTYPE_UNK); - if (m_codeEnums.SetAt(pType, typedElem) != NULL) - { - hr = S_OK; - } - } - } - } - } - } - else - { - // derived types - - CXSDElement *pXSDOut = NULL; - hr = GetTypeFromQName(pType->GetBase(), pType, &pXSDOut, pXSDType); - if (SUCCEEDED(hr)) - { - hr = E_FAIL; - if (*pXSDType != XSDTYPE_ERR) - { - hr = S_OK; - } - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::SortStructs() -{ - POSITION pos = m_structs.GetStartPosition(); - POSITION oldpos = NULL; - m_structs.DisableAutoRehash(); - - while (pos != NULL) - { - oldpos = pos; - m_structs.GetNext(pos); - HRESULT hr = SortStructHelper(oldpos); - if (FAILED(hr)) - { - return hr; - } - } - - m_structs.EnableAutoRehash(); - - return S_OK; -} - -HRESULT CCodeTypeBuilder::SortStructHelper(POSITION currPos) -{ - ATLASSERT( currPos != NULL ); - - CCodeStruct *pStruct = m_structs.GetValueAt(currPos); - if (pStruct == NULL) - { - return S_OK; - } - - HRESULT hr = S_OK; - - POSITION pos = pStruct->GetFirstElement(); - while (pos != NULL) - { - CCodeTypedElement *pElem = pStruct->GetNextElement(pos); - - ATLASSERT( pElem != NULL ); - - CXSDElement *pXSD = pElem->GetElement(); - if (pXSD != NULL && pXSD->GetElementType() == XSD_COMPLEXTYPE) - { - CComplexType *pType = static_cast(pXSD); - CODESTRUCTMAP::CPair *p = m_structs.Lookup(pType); - - if (p != NULL) - { - // - // it's okay for it to be NULL -- it means it's already been visited - // - if (p->m_value != NULL) - { - hr = SortStructHelper(p); - } - } - // REVIEW (jasjitg): !!! -// else -// { -// hr = E_FAIL; -// } - } - - if (FAILED(hr)) - { - break; - } - } - - if (SUCCEEDED(hr)) - { - if (m_pProxy->AddStruct(pStruct) != NULL) - { - CODESTRUCTMAP::CPair *pRem = m_structs.GetNext(currPos); - pRem->m_value = NULL; - } - else - { - hr = E_OUTOFMEMORY; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::GetTypeFromElement( - CElement *pElem, - CCodeTypedElement *pCodeElem, - CCodeElementContainer *pContainer, - DWORD dwFlags) -{ - HRESULT hr = E_FAIL; - CXSDElement *pRet = pElem->GetType(); - if (pRet == NULL) - { - hr = ProcessXSDElement(pElem, pElem->GetTypeName(), pCodeElem); - } - else - { - hr = ProcessSchemaElement(pRet, pCodeElem, pContainer, dwFlags); - if (FAILED(hr)) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM, pElem, 0, - pElem->GetParentSchema()->GetTargetNamespace(), - pElem->GetTypeName().GetName()); - } - } - if (pElem->GetArrayType() == cStrMinMaxOccursArray) - { - pCodeElem->SetFlags((pCodeElem->GetFlags() & ~CODEFLAG_FIXEDARRAY) | CODEFLAG_DYNARRAY); - } - if (pElem->GetNullable()) - { - pCodeElem->AddFlags(CODEFLAG_NULLABLE); - } - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessXSDElement( - CXMLElement *pElem, - CQName& typeName, - CCodeTypedElement *pCodeElem) -{ - CStringW strUri; - if(typeName.GetPrefix().IsEmpty() && typeName.GetName().IsEmpty()) - { - pCodeElem->SetXSDType(XSDTYPE_STRING); - EmitFileWarning(IDS_SDL_DEFAULT_TYPE, pElem, 0); - return S_OK; - } - - if (SUCCEEDED(pElem->GetNamespaceUri(typeName.GetPrefix(), strUri))) - { - // check CLR/FX-specific namespaces - if ((strUri == FX_TYPES_NAMESPACEW) || - (strUri == CLR_TYPES_NAMESPACEW)) - { - // treat their custom types as strings - pCodeElem->SetXSDType(XSDTYPE_STRING); - EmitFileWarning(IDS_SDL_CUSTOM_TYPE, pElem, 0, - strUri, typeName.GetName()); - return S_OK; - } - XSDTYPE xsdType; - HRESULT hr = GetXSDType(strUri, typeName.GetName(), &xsdType); - if (hr == S_OK) - { - pCodeElem->SetXSDType(xsdType); - return S_OK; - } - } - - EmitFileError(IDS_SDL_UNRESOLVED_ELEM, pElem, 0, strUri, typeName.GetName()); - - return E_FAIL; -} - -HRESULT CCodeTypeBuilder::ProcessSchemaElement( - CXSDElement *pElem, - CCodeTypedElement *pCodeElem, - CCodeElementContainer *pContainer, - DWORD dwFlags) -{ - ATLASSERT( pCodeElem != NULL ); - - HRESULT hr = E_FAIL; - switch (pElem->GetElementType()) - { - case XSD_COMPLEXTYPE: - { - CComplexType *pCplx = static_cast(pElem); - DWORD dwTypeFlags = IsArrayDefinition(pCplx); - CElement *pVarArrElement = NULL; - if (dwTypeFlags & CODEFLAG_FIXEDARRAY) - { - hr = ProcessArray(pCplx, pContainer, pCodeElem, dwFlags); - if (pCodeElem->GetNamespace().GetLength() == 0) - { - pCodeElem->SetNamespace(pElem->GetParentSchema()->GetTargetNamespace()); - } - } - else if (dwTypeFlags & CODEFLAG_DYNARRAY) - { - EmitFileWarning(IDS_SDL_INVALID_ARRAY_DESC, pElem, 0); - pCodeElem->SetXSDType(XSDTYPE_STRING); - if (pCodeElem->GetNamespace().GetLength() == 0) - { - pCodeElem->SetNamespace(pElem->GetParentSchema()->GetTargetNamespace()); - } - hr = S_OK; - } - else if ((dwTypeFlags == CODEFLAG_ERR) && (IsVarArrayDefinition(pCplx,dwFlags, &pVarArrElement) != FALSE)) - { - ATLASSERT( pVarArrElement != NULL ); - hr = ProcessVarArray(pVarArrElement, pContainer, pCodeElem, dwFlags); - if (pCodeElem->GetNamespace().GetLength() == 0) - { - pCodeElem->SetNamespace(pElem->GetParentSchema()->GetTargetNamespace()); - } - } - else - { - hr = ProcessComplexType(pCplx, pContainer, dwFlags); - if (SUCCEEDED(hr) && (pContainer != NULL)) - { - CODETYPEMAP::CPair *pPair = m_codeTypes.Lookup(pCplx); - ATLASSERT( pPair != NULL ); - *pCodeElem = pPair->m_value; - } - } - - if (FAILED(hr)) - { - break; - } - - break; - } - case XSD_SIMPLETYPE: - { - XSDTYPE xsdType = XSDTYPE_UNK; - DWORD dwTypeFlags = 0; - hr = ProcessSimpleType(static_cast(pElem), &xsdType, &dwTypeFlags); - - if (FAILED(hr)) - { - break; - } - - if (xsdType != XSDTYPE_UNK) - { - pCodeElem->SetXSDType(xsdType); - pCodeElem->SetElement(pElem); - if (pCodeElem->GetNamespace().GetLength() == 0) - { - pCodeElem->SetNamespace(pElem->GetParentSchema()->GetTargetNamespace()); - } - } - else if (pContainer != NULL) - { - CODESIMPLETYPEMAP::CPair *pPair = m_codeEnums.Lookup(static_cast(pElem)); - ATLASSERT( pPair != NULL ); - *pCodeElem = pPair->m_value; - } - - break; - } - case XSD_UNSUPPORTED: - { - if (pContainer != NULL) - { - pCodeElem->SetXSDType(XSDTYPE_STRING); - pCodeElem->SetElement(pElem); - } - break; - } - default: - { - hr = E_FAIL; - break; - } - } - - if (SUCCEEDED(hr)) - { - if (pCodeElem->GetElement() == NULL) - { - pCodeElem->SetElement(pElem); - } - } - - return hr; -} - -// - PAD or PID (style="document", use="literal") -// - if one part and part element references an element w/o a type attribute and child is a complexType child that is not an array descriptor -// or type attribute references a complexType that is not an array descriptor -// - it is a PID -// - else it is a PAD -// -// - Also need a function to determine the element given the element QName and the message part -// - it will need to handle the case where the QName::prefix is XSD - -HRESULT CCodeTypeBuilder::GetCallFlags( - LPCWSTR wszParts, - CWSDLMessage *pMessage, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - LPDWORD pdwFlags) -{ - // TODO (jasjitg): support the parts= attribute - -// ATLASSERT( wszParts != NULL ); - ATLASSERT( pMessage != NULL ); - ATLASSERT( pIO != NULL ); - ATLASSERT( pBindingOp != NULL ); - ATLASSERT( pBinding != NULL ); - ATLASSERT( pdwFlags != NULL ); - - POSITION pos = pMessage->GetFirstPart(); - CWSDLMessagePart *pPart = NULL; - if (pos != NULL) - { - pPart = pMessage->GetNextPart(pos); - ATLASSERT( pPart != NULL ); - } - - // REVIEW: ... semantics of message with no parts? - return GetCallFlags(pMessage, pPart, pIO, pBindingOp, pBinding, pdwFlags); -} - -HRESULT CCodeTypeBuilder::GetCallFlags( - CWSDLMessage *pMessage, - CWSDLMessagePart *pPart, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - LPDWORD pdwFlags) -{ - ATLASSERT( pMessage != NULL ); -// ATLASSERT( pPart != NULL ); - ATLASSERT( pIO != NULL ); - ATLASSERT( pBindingOp != NULL ); - ATLASSERT( pBinding != NULL ); - ATLASSERT( pdwFlags != NULL ); - - SOAPUSE use = SOAPUSE_UNK; - SOAPSTYLE style = SOAPSTYLE_UNK; - CStringW strEncodingStyle; - - CSoapBody *pBody = pIO->GetSoapBody(); - if (pBody != NULL) - { - use = pBody->GetUse(); - strEncodingStyle = pBody->GetEncodingStyle(); - } - if (use == SOAPUSE_UNK) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - - // get style - CSoapOperation *pSoapOp = pBindingOp->GetSoapOperation(); - if (pSoapOp != NULL) - { - style = pSoapOp->GetStyle(); - } - if (style == SOAPSTYLE_UNK) - { - // get from parent - CSoapBinding *pSoapBinding = pBinding->GetSoapBinding(); - if (pSoapBinding != NULL) - { - style = pSoapBinding->GetStyle(); - } - } - if (style == SOAPSTYLE_UNK) - { - // if not specified by or - // default to document - style = SOAPSTYLE_DOC; - } - - if ((use == SOAPUSE_ENCODED) && (style != SOAPSTYLE_RPC)) - { - EmitFileError(IDS_SDL_DOC_ENCODED, pBindingOp, 0); - return E_FAIL; - } - - // REVIEW (jasjitg): not supported properly in atlsoap!!! - if ((use == SOAPUSE_LITERAL) && (style != SOAPSTYLE_DOC)) - { - // REVIEW (jasjitg): may support this (?) - EmitFileError(IDS_SDL_RPC_LITERAL, pBindingOp, 0); - return E_FAIL; - } - - DWORD dwFlags = 0; - if (use == SOAPUSE_ENCODED) - { - if (pBody->GetEncodingStyle() != SOAP_ENCODINGSTYLEW) - { - EmitFileError(IDS_SDL_ENCODINGSTYLE, pBody, 0, pBody->GetEncodingStyle()); - return E_FAIL; - } - - dwFlags |= CODEFLAG_ENCODED; - } - else - { - ATLASSERT( use == SOAPUSE_LITERAL ); - dwFlags |= CODEFLAG_LITERAL; - } - - if (style == SOAPSTYLE_RPC) - { - dwFlags |= CODEFLAG_RPC; - } - else - { - ATLASSERT( style == SOAPSTYLE_DOC ); - dwFlags |= CODEFLAG_DOCUMENT; - } - - if (style == SOAPSTYLE_DOC) - { - if ((pPart != NULL) && - (pMessage->GetNumParts() == 1) && - (pPart->GetElementName().GetName().GetLength() != 0) && - (pPart->GetName() == L"parameters")) - { - // hack to determine ParametersAsDocument or ParametersInDocument - // basically, the hack is to see if the message part is named "parameters" - // (URT does it in the same way, basically) - dwFlags |= CODEFLAG_PID; - } - else - { - dwFlags |= CODEFLAG_PAD; - - if ((pPart != NULL) && - (pPart->GetTypeName().GetName().GetLength() != 0)) - { - // if referenced by type, see if the type is a simpleType or complexType - CXSDElement *pXSDElement = NULL; - XSDTYPE xsdType = XSDTYPE_ERR; - if (FAILED(pPart->GetType(&pXSDElement, &xsdType))) - { - return E_FAIL; - } - - if (pXSDElement != NULL) - { - // it is a simpleType or complexType, which will require special processing - // at runtime - dwFlags |= CODEFLAG_CHAIN; - } - } - } - } - - *pdwFlags = dwFlags; - return S_OK; -} - -// -// WSDL array defintions are of the form: -// -// -// -// -// -// -// -// -// -CODEFLAGS CCodeTypeBuilder::IsArrayDefinition(CComplexType *pType) -{ - ATLASSERT( pType != NULL ); - - CContent *pContent = pType->GetContent(); - if (pContent != NULL) - { - CComplexType *pRestriction = pContent->GetType(); - if ((pRestriction != NULL) && (pRestriction->GetElementType() == XSD_RESTRICTION)) - { - CQName& base = pRestriction->GetBase(); - if (base.GetName().GetLength() != 0) - { - CStringW strUri; - if ((SUCCEEDED(pRestriction->GetNamespaceUri(base.GetPrefix(), strUri))) && - (strUri == SOAP_ENCODINGSTYLEW) && (base.GetName() == L"Array")) - { - if (pRestriction->GetNumAttributes() == 1) - { - POSITION pos = pRestriction->GetFirstAttribute(); - ATLASSERT( pos != NULL ); - - CAttribute *pAttribute = pRestriction->GetNextAttribute(pos); - ATLASSERT( pAttribute != NULL ); - - CQName& ref = pAttribute->GetRefName(); - if (ref.GetName().GetLength() != 0) - { - if ((SUCCEEDED(pAttribute->GetNamespaceUri(ref.GetPrefix(), strUri))) && - (strUri == SOAP_ENCODINGSTYLEW) && (ref.GetName() == L"arrayType")) - { - if (pAttribute->GetArrayType().GetLength() != 0) - { - // it is an array definition - return CODEFLAG_FIXEDARRAY; - } - } - } - } - } - - // dynamic array (maybe) - return CODEFLAG_DYNARRAY; - } - } - } - - return CODEFLAG_ERR; -} - -BOOL CCodeTypeBuilder::IsVarArrayDefinition(CComplexType *pType,DWORD dwFlags, CElement **ppElement) -{ - ATLASSERT( pType != NULL ); - ATLASSERT( ppElement != NULL ); - POSITION pos = pType->GetFirstElement(); - BOOL bFirstElement=TRUE; - while (pos != NULL) - { - CElement *pElem = pType->GetNextElement(pos); - ATLASSERT( pElem != NULL ); - - //If doc\lit sees an unbounded single elem within complexType - - //complexType is var array. All other unbounded elems (in both doc/lit and rpc/enc) are var arrays themselves (childs of complexType struct). - // b1) unbounded <==> max-min >= 1, except when min=0 and max=1 - this is considered single scalar - // (not array). - //Example: If Method(Message?) is Rpc/enc - in - // - // that contain only 1 elem, the 2 lines below are equiv (in terms of proxy output). - // - // - // If Method is Doc/Lit (PID or PAD), then first line generates - // XAgentRegBean itself is string[], but second line XAgentRegBean is a - //struct with member string[]. - - if (((pElem->GetMinOccurs()==0) && - (pElem->GetMaxOccurs() != 1) && - ((pElem->GetMaxOccurs()==MAXOCCURS_UNBOUNDED) || - (pElem->GetMinOccurs() <= pElem->GetMaxOccurs()))) || - (pElem->GetMinOccurs() > 0 && - (pElem->GetMaxOccurs()==MAXOCCURS_UNBOUNDED || - pElem->GetMinOccurs() < pElem->GetMaxOccurs()))) - { - *ppElement = pElem; - if (dwFlags & CODEFLAG_DOCUMENT && bFirstElement && pos == NULL) - { - // should be the only element - return TRUE; - } - (*ppElement)->SetArrayType(cStrMinMaxOccursArray); - } - bFirstElement=FALSE; - } //end while - - *ppElement = NULL; - return FALSE; -} - -HRESULT CCodeTypeBuilder::ProcessArrayDefintion( - CElement *pElem, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags) -{ - ATLASSERT( pElem != NULL ); - - POSITION pos = pElem->GetFirstElement(); - ATLASSERT( pos != NULL ); // pre-condition - CXSDElement *p = pElem->GetNextElement(pos); - - if (pCodeElem->GetNamespace().GetLength()==0) - { - pCodeElem->SetNamespace(pElem->GetParentSchema()->GetTargetNamespace()); - } - - if ((p == NULL) || (p->GetElementType() != XSD_COMPLEXTYPE)) - { - EmitFileWarning(IDS_SDL_INVALID_ARRAY_DESC, pElem, 0); - return S_FALSE; - } - - HRESULT hr = E_FAIL; - CComplexType *pArrElem = static_cast(p); - POSITION arrPos = pArrElem->GetFirstElement(); - CElement *pArrDesc = NULL; - if (arrPos != NULL) - { - pArrDesc = pArrElem->GetNextElement(arrPos); - ATLASSERT( pArrDesc != NULL ); - - hr = ProcessVarArray(pArrDesc, pContainer, pCodeElem, dwFlags); - if (arrPos != NULL) - { - hr = E_FAIL; - } - } -// else if (IsVarArrayDefinition(pArrElem, &pArrDesc)) -// { -// hr = ProcessVarArray(pArrDesc, pContainer, pCodeElem, dwFlags); -// } - else - { - CODEFLAGS dwArrayFlags = IsArrayDefinition(pArrElem); - if (dwArrayFlags & CODEFLAG_FIXEDARRAY) - { - hr = ProcessArray(pArrElem, pContainer, pCodeElem, dwArrayFlags); - } - else if (dwArrayFlags & CODEFLAG_DYNARRAY) - { - hr = S_FALSE; - } - } - - if (hr == S_FALSE) - { - EmitFileWarning(IDS_SDL_INVALID_ARRAY_DESC, pElem, 0); - } - - return hr; -} - -HRESULT CCodeTypeBuilder::ProcessVarArray( - CElement *pArrDesc, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags) -{ - ATLASSERT( pArrDesc != NULL ); - ATLASSERT( pContainer != NULL ); - ATLASSERT( pCodeElem != NULL ); - - HRESULT hr = S_OK; - if (pArrDesc->HasMinOccurs() && pArrDesc->HasMaxOccurs()) - { - hr = GetTypeFromElement(pArrDesc, pCodeElem, pContainer, 0); - if (SUCCEEDED(hr)) - { - ATLASSERT( pCodeElem != NULL ); - if ((pArrDesc->GetMinOccurs() == pArrDesc->GetMaxOccurs()) && - (pArrDesc->GetMinOccurs() != MAXOCCURS_UNBOUNDED)) // REVIEW: error? - { - // treat as fixed-size one-dimensional - pCodeElem->AddDimension(1); - pCodeElem->AddDimension(pArrDesc->GetMaxOccurs()); - pCodeElem->AddFlags(CODEFLAG_FIXEDARRAY); - } - else - { - pCodeElem->AddFlags(CODEFLAG_DYNARRAY); - } - } - } - - return hr; -} - -// NOTE: precondition: IsArrayDefintion(pType, ...) is TRUE -// the expected format is assumed -HRESULT CCodeTypeBuilder::ProcessArray( - CComplexType *pType, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags) -{ - ATLASSERT( pType != NULL ); - ATLASSERT( pContainer != NULL ); - ATLASSERT( pCodeElem != NULL ); - ATLASSERT( IsArrayDefinition(pType) != FALSE ); - - CContent *pContent = pType->GetContent(); - ATLASSERT( pContent != NULL ); - - CComplexType *pRestriction = pContent->GetType(); - ATLASSERT( pRestriction != NULL ); - ATLASSERT( pRestriction->GetElementType() == XSD_RESTRICTION ); - ATLASSERT( pRestriction->GetNumAttributes() == 1 ); - - POSITION pos = pRestriction->GetFirstAttribute(); - ATLASSERT( pos != NULL ); - - CAttribute *pAttribute = pRestriction->GetNextAttribute(pos); - ATLASSERT( pAttribute != NULL ); - - CStringW strArrayType = pAttribute->GetArrayType(); - - LPCWSTR wszArrayType = strArrayType; - LPCWSTR wszTmp = wcschr(wszArrayType, L'['); - - HRESULT hr = E_FAIL; - if (wszTmp != NULL) - { - // lookup element - CQName type(wszArrayType, (int)(wszTmp-wszArrayType)); - CXSDElement *pXSDElement; - XSDTYPE xsdType = XSDTYPE_UNK; - hr = GetTypeFromQName(type, pAttribute, &pXSDElement, &xsdType); - if (SUCCEEDED(hr)) - { - if (pXSDElement != NULL) - { - pCodeElem->SetElement(pXSDElement); - hr = ProcessSchemaElement(pXSDElement, pCodeElem, pContainer, dwFlags); - } - else - { - ATLASSERT( xsdType != XSDTYPE_ERR ); - pCodeElem->SetXSDType(xsdType); - } - - if (SUCCEEDED(hr)) - { - hr = GetArrayDimensions(pAttribute, pCodeElem); - if (FAILED(hr)) - { - EmitFileError(IDS_SDL_INVALID_ARRAY_DESC_ERR, pAttribute, 0); - } - } - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::GetTypeFromQName( - CQName& type, - CXSDElement *pXSDElement, - CXSDElement **ppXSDElement, - XSDTYPE *pXSD) -{ - ATLASSERT( pXSDElement != NULL ); - ATLASSERT( ppXSDElement != NULL ); - ATLASSERT( pXSD != NULL ); - - *ppXSDElement = NULL; - *pXSD = XSDTYPE_ERR; - - HRESULT hr = E_FAIL; - CStringW strUri; - hr = pXSDElement->GetNamespaceUri(type.GetPrefix(), strUri); - if (SUCCEEDED(hr)) - { - hr = GetXSDType(strUri, type.GetName(), pXSD); - if (hr == S_FALSE) - { - hr = E_FAIL; - *ppXSDElement = pXSDElement->GetParentSchema()->GetNamedItem(strUri, type.GetName()); - if (*ppXSDElement != NULL) - { - hr = S_OK; - } - } - } - - if (FAILED(hr)) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM, pXSDElement, 0, - strUri, - type.GetName()); - } - return hr; -} - -HRESULT CCodeTypeBuilder::GetArrayDimensions( - CAttribute *pAttribute, - CCodeTypedElement *pCodeElem) -{ - ATLASSERT( pAttribute != NULL ); - ATLASSERT( pCodeElem != NULL ); - ATLASSERT( pAttribute->GetArrayType().GetLength() != 0 ); - - LPCWSTR wszArrayType = pAttribute->GetArrayType(); - LPCWSTR wszChr = wcschr(wszArrayType, L'['); - if (wszChr == NULL) - { - return S_FALSE; - } - if (wszChr[1] == ']') - { - if (wszChr[2] != '\0') - { - // jagged array, or something else - pCodeElem->SetFlags((pCodeElem->GetFlags() & ~(CODEFLAG_FIXEDARRAY | CODEFLAG_DYNARRAY))); - return S_FALSE; - } - - // var array - pCodeElem->SetFlags((pCodeElem->GetFlags() & ~CODEFLAG_FIXEDARRAY) | CODEFLAG_DYNARRAY); - return S_OK; - } - int nDimCnt = 0; - pCodeElem->AddDimension(0); - while ((wszChr != NULL) && (*wszChr)) - { - wszChr++; - nDimCnt++; - - pCodeElem->AddDimension(_wtoi(wszChr)); - int nDim = _wtoi(wszChr); - if (nDim <= 0) - { - // some unknown array description - pCodeElem->ClearDims(); - return E_FAIL; - } - wszChr = wcschr(wszChr, L','); - } - pCodeElem->SetDimension(0, nDimCnt); - - return S_OK; -} - -HRESULT CCodeTypeBuilder::ProcessSoapHeaders( - CCodeFunction *pElem, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - DWORD dwFlags) -{ - ATLASSERT( pElem != NULL ); - ATLASSERT( pIO != NULL ); - - HRESULT hr = S_OK; - POSITION pos = pIO->GetFirstSoapHeader(); - while ((pos != NULL) && (hr == S_OK)) - { - CSoapHeader *pHeader = pIO->GetNextSoapHeader(pos); - ATLASSERT( pHeader != NULL ); - - if ((pHeader->GetNamespace().GetLength() != 0) && - (pElem->GetNamespace() != CW2A(pHeader->GetNamespace()))) - { - // ATL Server does not support headers with a - // namespace different from their associated function - EmitFileError(IDS_SDL_HEADER_DIFF_NAMESPACES, pHeader, 0); - return E_FAIL; - } - - DWORD dwAddFlags = CODEFLAG_HEADER; - if (pHeader->GetRequired() != false) - { - dwAddFlags |= CODEFLAG_MUSTUNDERSTAND; - } - CWSDLMessage *pMessage = pHeader->GetMessage(); - if (pMessage != NULL) - { - CWSDLMessagePart *pPart = pMessage->GetPartByName(pHeader->GetParts()); - if (pPart != NULL) - { - DWORD dwCallFlags; - hr = GetCallFlags(pMessage, pPart, pIO, pBindingOp, pBinding, &dwCallFlags); - if (SUCCEEDED(hr)) - { - if (dwCallFlags & CODEFLAG_CHAIN) - { - if (pIO->GetNumSoapHeaders() > 1) - { - EmitFileError(IDS_SDL_PAD_INVALID_SOAP, pIO, 0); - return E_FAIL; - } - } - - CODEHEADERPARTMAP::CPair *p = m_headersByPart.Lookup(pPart); - if (p == NULL) - { - if (dwCallFlags & CODEFLAG_PID) - { - hr = ProcessMessagePart_PID(pPart, pElem, dwFlags | dwAddFlags, dwCallFlags); - } - else if (dwCallFlags & CODEFLAG_PAD) - { - hr = ProcessMessagePart_PAD(pPart, pElem, dwFlags | dwAddFlags, dwCallFlags); - } - else if ((dwCallFlags & (CODEFLAG_RPC | CODEFLAG_ENCODED)) == (CODEFLAG_RPC | CODEFLAG_ENCODED)) - { - hr = ProcessMessagePart_RPC_Encoded(pPart, pElem, dwFlags | dwAddFlags, dwCallFlags); - } -// else if ((dwCallFlags & (CODEFLAG_RPC | CODEFLAG_LITERAL)) == (CODEFLAG_RPC | CODEFLAG_LITERAL)) -// { -// hr = ProcessMessagePart_RPC_Literal(pPart, pElem, dwFlags | dwAddFlags, dwCallFlags); -// } - else - { - ATLASSERT( FALSE ); - EmitError(IDS_SDL_INTERNAL); - hr = E_FAIL; - } - } - else - { - hr = CheckDuplicateHeaders(pElem, p->m_value, dwFlags | dwAddFlags); - if (SUCCEEDED(hr)) - { - // REVIEW (jasjitg): can maybe make this better (inefficient) - CAutoPtr spElem( new CCodeTypedElement ); - if (spElem != NULL) - { - *spElem = *(p->m_value); - spElem->AddFlags(dwFlags | dwCallFlags); - hr = AddHeaderToFunction(pElem, spElem, pPart); - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - hr = E_OUTOFMEMORY; - } - } - } - } - else - { - hr = E_FAIL; - EmitError(IDS_SDL_INTERNAL); - } - } - else - { - CStringW strUri; - if (SUCCEEDED(GetElementInfo(pHeader, pHeader->GetMessageName(), strUri))) - { - EmitFileError(IDS_SDL_UNRESOLVED_MSGPART, pHeader, 0, - pHeader->GetParts(), strUri, pHeader->GetMessageName().GetName()); - } - else - { - EmitErrorHr(E_FAIL); - } - - hr = E_FAIL; - } - } - else - { - hr = E_FAIL; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::GetElementInfo(CXMLElement *pElem, CQName& name, CStringW& strUri) -{ - ATLASSERT( pElem != NULL ); - return pElem->GetNamespaceUri(name.GetPrefix(), strUri); -} - -HRESULT CCodeTypeBuilder::CheckDuplicateHeaders(CCodeFunction *pCodeFunc, CCodeTypedElement *pElem, DWORD dwFlags) -{ - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( pElem != NULL ); - - CCodeTypedElement *p = GetHeaderByName(pCodeFunc, pElem->GetName()); - if (p != NULL) - { - // REVIEW: I'm not sure about this... - DWORD dwFlagsTmp = dwFlags & CODEFLAG_IN; - if (p->GetFlags() & dwFlagsTmp) - { - CStringW strUri; - EmitFileError(IDS_SDL_SOAPHEADER_DUPNAME, pElem->GetElement(), 0, - pElem->GetElement()->GetParentSchema()->GetTargetNamespace(), pElem->GetName()); - return E_FAIL; - } - } - - return S_OK; -} - -CCodeTypedElement * CCodeTypeBuilder::GetHeaderByName(CCodeFunction *pCodeFunc, const CStringW& strName) -{ - ATLASSERT( pCodeFunc != NULL ); - POSITION pos = pCodeFunc->GetFirstHeader(); - while (pos != NULL) - { - CCodeTypedElement *p = pCodeFunc->GetNextHeader(pos); - if (p->GetName() == strName) - { - return p; - } - } - - return NULL; -} - -HRESULT CCodeTypeBuilder::AddHeaderToFunction(CCodeFunction *pCodeFunc, CAutoPtr &spElem, CWSDLMessagePart *pPart) -{ - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( spElem != NULL ); - ATLASSERT( pPart != NULL ); - - // look for header element in type->header map - CXSDElement *pElemType = spElem->GetElement(); - CCodeTypedElement *pMember = NULL; - const CODEHEADERTYPEMAP::CPair *pTypePair = m_headersByType.Lookup(pElemType); - if (pTypePair != NULL) - { - pMember = pTypePair->m_value; - } - - // safe-naming - if (pMember == NULL) - { - // name header members Value, like C# proxy generator - CStringW valueName(spElem->GetName()); - valueName.Append(L"Value"); - - if ((FAILED(CreateSafeCppName(spElem->GetSafeName(), valueName))) || - (FAILED(CheckGlobalNameMap(spElem->GetSafeName(), true)))) - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - - // add to m_headersByType - CAutoPtr spNewElem( new CCodeTypedElement ); - if (spNewElem != NULL) - { - *spNewElem = *spElem; - spNewElem->SetFlags(spNewElem->GetFlags() & ~(CODEFLAG_IN | CODEFLAG_OUT)); - if (m_headersByType.SetAt(pElemType, spNewElem) != NULL) - { - spNewElem.Detach(); - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - } - } - else - { - spElem->SetSafeName(pMember->GetSafeName()); - } - - // look for header element in part->header map - const CODEHEADERPARTMAP::CPair *pPartPair = m_headersByPart.Lookup(pPart); - if (pPartPair == NULL) - { - // add to m_headersByPart - CAutoPtr spNewElem( new CCodeTypedElement ); - if (spNewElem != NULL) - { - *spNewElem = *spElem; - spNewElem->SetFlags(spNewElem->GetFlags() & ~(CODEFLAG_IN | CODEFLAG_OUT)); - if (m_headersByPart.SetAt(pPart, spNewElem) != NULL) - { - spNewElem.Detach(); - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - } - } - - // finally, add header to function - CCodeTypedElement *pHeader = GetHeaderByName(pCodeFunc, spElem->GetName()); - if (pHeader != NULL) - { - pHeader->AddFlags(spElem->GetFlags()); - } - else - { - if (pCodeFunc->AddHeader(spElem) != NULL) - { - spElem.Detach(); - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - return E_OUTOFMEMORY; - } - } - - return S_OK; -} - -CCodeTypedElement * CCodeTypeBuilder::GetParameterByName(CCodeFunction *pCodeFunc, const CStringW& strName) -{ - ATLASSERT( pCodeFunc != NULL ); - - POSITION pos = pCodeFunc->GetFirstElement(); - while (pos != NULL) - { - CCodeTypedElement *p = pCodeFunc->GetNextElement(pos); - ATLASSERT( p != NULL ); - - if (p->GetName() == strName) - { - return p; - } - } - - return NULL; -} - -HRESULT CCodeTypeBuilder::GetNameFromSchemaElement(CXSDElement *pXSDElement, CStringW& strName) -{ - ATLASSERT( pXSDElement != NULL ); - - HRESULT hr = S_OK; - XSDELEMENT_TYPE elementType = pXSDElement->GetElementType(); - if (elementType == XSD_COMPLEXTYPE) - { - strName = static_cast(pXSDElement)->GetName(); - } - else if (elementType == XSD_SIMPLETYPE) - { - strName = static_cast(pXSDElement)->GetName(); - } - else - { - ATLASSERT( FALSE ); - hr = E_FAIL; - } - - return hr; -} - -HRESULT CCodeTypeBuilder::CheckAndAddHeader( - CCodeFunction *pCodeFunc, - CAutoPtr& spElem, - DWORD dwFlags, - CWSDLMessagePart *pPart) -{ - HRESULT hr = CheckDuplicateHeaders(pCodeFunc, spElem, dwFlags); - if (SUCCEEDED(hr)) - { - hr = AddHeaderToFunction(pCodeFunc, spElem, pPart); - } - - return hr; -} - -HRESULT CCodeTypeBuilder::CheckDocLiteralNamespace( - CCodeFunction *pCodeFunc, - CXSDElement *pXSDElement, - DWORD dwFlags, - DWORD dwCallFlags) -{ - ATLASSERT( pCodeFunc != NULL ); - ATLASSERT( pXSDElement != NULL ); - - if ((dwFlags & CODEFLAG_IN) || (dwFlags & CODEFLAG_HEADER) || (pCodeFunc->GetNamespace().GetLength() == 0)) - { - if ((pCodeFunc->GetNamespace().GetLength() == 0) || - (dwCallFlags & CODEFLAG_PID) || - (dwFlags & CODEFLAG_HEADER)) - { - pCodeFunc->SetNamespace(pXSDElement->GetParentSchema()->GetTargetNamespace()); - } - else if ((dwCallFlags & CODEFLAG_PAD)==0) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - } - else - { - ATLASSERT( (dwFlags & CODEFLAG_OUT) || (dwCallFlags & CODEFLAG_PAD) ); - - if (wcscmp(CA2W(pCodeFunc->GetNamespace()), pXSDElement->GetParentSchema()->GetTargetNamespace())) - { - EmitFileError(IDS_SDL_IO_DIFF_NAMESPACES, pXSDElement, 0); - return E_FAIL; - } - } - return S_OK; -} - -HRESULT CCodeTypeBuilder::CreateSafeNames(CCodeElementContainer *pElem) -{ - ATLASSERT( pElem != NULL ); - - // map for names in current scope - NAMEMAP scopedMap; - - HRESULT hr = CreateSafeCppName(pElem->GetSafeName(), pElem->GetName()); - if (FAILED(hr)) - { - return hr; - } - - hr = CheckGlobalNameMap(pElem->GetSafeName(), true); - - // add it to the map of the current scope - if (scopedMap.SetAt(pElem->GetSafeName(), 0) == NULL) - { - return E_OUTOFMEMORY; - } - - // iterate over the elements - // NOTE: there is a precondition that the SafeCodeTypeName has already been set properly - POSITION pos = pElem->GetFirstElement(); - while (pos != NULL) - { - CCodeTypedElement *p = pElem->GetNextElement(pos); - ATLASSERT( p != NULL ); - - hr = CreateSafeCppName(p->GetSafeName(), p->GetName()); - if (SUCCEEDED(hr)) - { - hr = CheckGlobalNameMap(p->GetSafeName(), false); - if (SUCCEEDED(hr)) - { - hr = CheckNameMap(scopedMap, p->GetSafeName(), true); - } - } - - if (FAILED(hr)) - { - break; - } - } - - return hr; -} - -HRESULT CCodeTypeBuilder::CheckGlobalNameMap(CStringA& strName, bool bAddToMap) -{ - return CheckNameMap(m_globalNameMap, strName, bAddToMap); -} - -HRESULT CCodeTypeBuilder::CheckNameMap(NAMEMAP &map, CStringA& strName, bool bAddToMap) -{ - // name exists in global scope, rename it - if (map.Lookup(strName) != NULL) - { - // first, add a prefix (_) - CStringA strNewName("_"); - strNewName.Append(strName); - strName = strNewName; - } - if (map.Lookup(strName) != NULL) - { - // then, if that is not enough, use m_nNameCounter - char szBuf[512]; - - strName.Append(_itoa(m_nNameCounter, szBuf, 10)); - m_nNameCounter++; - } - - if (bAddToMap != false) - { - // add it to the map of the global scope - // REVIEW: necessary? - if (map.SetAt(strName, 0) == NULL) - { - return E_OUTOFMEMORY; - } - } - - return S_OK; -} diff --git a/ATL90/source/SProxy/CodeTypeBuilder.h b/ATL90/source/SProxy/CodeTypeBuilder.h deleted file mode 100644 index 59e30ef..0000000 --- a/ATL90/source/SProxy/CodeTypeBuilder.h +++ /dev/null @@ -1,378 +0,0 @@ -// -// CodeTypeBuilder.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "CodeTypes.h" -#include "WSDLDocument.h" - -// -// ElementTraits class for CElement*, CComplexType*, CSimpleType* -// -template -class CXSDElementPtrTraits : public CElementTraitsBase -{ -public: - typedef T* INARGTYPE; - typedef T*& OUTARGTYPE; - - static ULONG Hash( INARGTYPE element ) - { - ATLASSERT( element != NULL ); - - ULONG nHash = 0; - CXMLDocument *pDoc = element->GetParentDocument(); - if (pDoc != NULL) - { - nHash = XSDHash((LPCWSTR) pDoc->GetDocumentUri(), nHash); - } - - CSchema *pSchema = element->GetParentSchema(); - if (pSchema != NULL) - { - nHash = XSDHash((LPCWSTR) pSchema->GetTargetNamespace(), nHash); - } - - nHash = XSDHash((LPCWSTR) element->GetName(), nHash); - - return nHash; - } - - static bool CompareElements( INARGTYPE element1, INARGTYPE element2 ) - { - ATLASSERT( element1 != NULL ); - ATLASSERT( element2 != NULL ); - - CXMLDocument *pDoc1 = element1->GetParentDocument(); - CXMLDocument *pDoc2 = element2->GetParentDocument(); - - if (pDoc1 != NULL && pDoc2 != NULL) - { - CSchema *pSchema1 = element1->GetParentSchema(); - CSchema *pSchema2 = element2->GetParentSchema(); - - if (pSchema1 != NULL && pSchema2 != NULL) - { - return ( pDoc1->GetDocumentUri()==pDoc2->GetDocumentUri() && - pSchema1->GetTargetNamespace()==pSchema2->GetTargetNamespace() && - element1->GetName()==element2->GetName()); - } - } - - return false; - } - - static int CompareElementsOrdered( INARGTYPE element1, INARGTYPE element2 ) - { - ATLASSERT( element1 != NULL ); - ATLASSERT( element2 != NULL ); - - CXMLDocument *pDoc1 = element1->GetParentDocument(); - CXMLDocument *pDoc2 = element2->GetParentDocument(); - - int nRet = 1; - - if (pDoc1 != NULL && pDoc2 != NULL) - { - nRet = pDoc1->GetDocumentUri().Compare( pDoc2->GetDocumentUri() ); - if (nRet == 0) - { - CSchema *pSchema1 = element1->GetParentSchema(); - CSchema *pSchema2 = element2->GetParentSchema(); - - if (pSchema1 != NULL && pSchema2 != NULL) - { - nRet = pSchema1->GetTargetNamespace().Compare( pSchema2->GetTargetNamespace() ); - if (nRet == 0) - { - nRet = element1->GetName().Compare( element2->GetName() ); - } - } - } - } - - return nRet; - } -}; - -class CCodeTypeBuilder -{ -private: - - CWSDLDocument * m_pDoc; - CCodeProxy * m_pProxy; - - // - // collections for the various code elements - // - - typedef CAtlPtrList CODEFUNCTIONLIST; - - typedef CAtlPtrMap > CODEENUMMAP; - typedef CAtlPtrMap > CODESTRUCTMAP; - - typedef CAtlMap > CODETYPEMAP; - typedef CAtlMap > CODESIMPLETYPEMAP; - - // REVIEW: headers mapped by message (unique, I would think) - typedef CAtlMap CODEHEADERPARTMAP; - typedef CAtlMap CODEHEADERTYPEMAP; - - typedef CAtlMap > PARSEMAP; - - // map for C++ struct, enum, function, parameter, enum entry, struct field names - typedef CAtlMap > NAMEMAP; - - CODEFUNCTIONLIST m_functions; - CODESTRUCTMAP m_structs; - CODEENUMMAP m_enums; - - CODETYPEMAP m_codeTypes; - CODESIMPLETYPEMAP m_codeEnums; - - CODEHEADERPARTMAP m_headersByPart; - CODEHEADERTYPEMAP m_headersByType; - - // map of what we are currently parsing - PARSEMAP m_currParse; - - // map of named elements we've encountered at the global scope - NAMEMAP m_globalNameMap; - - // global counter for duplicate names - int m_nNameCounter; - -public: - - CCodeTypeBuilder(CWSDLDocument *pDoc = NULL, CCodeProxy * pProxy = NULL) - :m_pDoc(pDoc), m_pProxy(pProxy), m_nNameCounter(0) - { - } - - inline HRESULT Initialize(CWSDLDocument *pDoc, CCodeProxy * pProxy = NULL) - { - if (!pDoc) - { - return E_INVALIDARG; - } - - if (pProxy) - { - m_pProxy = pProxy; - } - - m_pDoc = pDoc; - - return S_OK; - } - - HRESULT Build(CCodeProxy * pCodeProxy = NULL, CWSDLDocument *pDoc = NULL); - -private: - - HRESULT ProcessService(CWSDLService *pSvc); - - HRESULT ProcessPort(CWSDLPort *pPort); - - HRESULT ProcessBinding(CWSDLBinding *pBinding); - - HRESULT ProcessPortType(CWSDLPortType *pPortType, CWSDLBinding *pBinding); - - HRESULT ProcessMessage( - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - CWSDLMessage *pMessage, - CCodeFunction *pCodeFunc, - DWORD dwFlags); - - // TODO (jasjitg): must respect parts= with all these - HRESULT ProcessMessage_PID( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - HRESULT ProcessMessagePart_PID( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - HRESULT ProcessMessage_PAD( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - HRESULT ProcessMessagePart_PAD( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - HRESULT ProcessMessage_RPC_Encoded( - CWSDLMessage *pMsg, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - HRESULT ProcessMessagePart_RPC_Encoded( - CWSDLMessagePart *pPart, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - // REVIEW (jasjitg): not going to support these in this version -// HRESULT ProcessMessage_RPC_Literal( -// CWSDLMessage *pMsg, -// CCodeFunction *pCodeFunc, -// DWORD dwFlags, -// DWORD dwCallFlags); -// -// HRESULT ProcessMessagePart_RPC_Literal( -// CWSDLMessagePart *pPart, -// CCodeFunction *pCodeFunc, -// DWORD dwFlags, -// DWORD dwCallFlags); - - HRESULT ProcessElement( - CElement *pElem, - CCodeElementContainer *pContainer, - DWORD dwFlags, - CODETYPE parentCodeType, - BOOL fTopLevel = FALSE, - CWSDLMessagePart *pMsgPart = NULL); - - HRESULT ProcessComplexType( - CComplexType *pType, - CCodeElementContainer *pContainer, - DWORD dwFlags); - - HRESULT ProcessSimpleType( - CSimpleType *pType, - XSDTYPE *pXSDType, - LPDWORD pdwFlags); - - HRESULT SortStructs(); - - HRESULT SortStructHelper(POSITION pos); - - HRESULT CreateSafeNames(CCodeElementContainer *pElem); - HRESULT CheckGlobalNameMap(CStringA& strName, bool bAddToMap = false); - HRESULT CheckNameMap(NAMEMAP &map, CStringA& strName, bool bAddToMap = false); - - HRESULT GetTypeFromElement( - CElement *pElem, - CCodeTypedElement *pCodeElem, - CCodeElementContainer *pContainer, - DWORD dwFlags); - - HRESULT ProcessSchemaElement( - CXSDElement *pElem, - CCodeTypedElement *pCodeElem, - CCodeElementContainer *pContainer, - DWORD dwFlags); - - HRESULT ProcessXSDElement( - CXMLElement *pElem, - CQName& typeName, - CCodeTypedElement *pCodeElem); - - HRESULT ProcessMessagePart_Type( - CWSDLMessagePart *pPart, - CXSDElement *pXSDElement, - XSDTYPE xsdType, - CODETYPE codeType, - const CStringW& strName, - CCodeFunction *pCodeFunc, - DWORD dwFlags, - DWORD dwCallFlags); - - // Is it a PAD, PID, RPC, etc. - HRESULT GetCallFlags( - LPCWSTR wszParts, - CWSDLMessage *pMessage, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - LPDWORD pdwFlags); - - HRESULT GetCallFlags( - CWSDLMessage *pMessage, - CWSDLMessagePart *pPart, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - LPDWORD pdwFlags); - - HRESULT CheckDocLiteralNamespace( - CCodeFunction *pCodeFunc, - CXSDElement *pXSDElement, - DWORD dwFlags, - DWORD dwCallFlags); - - CODEFLAGS IsArrayDefinition(CComplexType *pType); - BOOL IsVarArrayDefinition(CComplexType *pType,DWORD dwFlags, CElement **ppElement); - - HRESULT ProcessArrayDefintion( - CElement *pElem, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags); - - HRESULT ProcessArray( - CComplexType *pType, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags); - - HRESULT ProcessVarArray( - CElement *pElement, - CCodeElementContainer *pContainer, - CCodeTypedElement *pCodeElem, - DWORD dwFlags); - - HRESULT GetTypeFromQName( - CQName& type, - CXSDElement *pXSDElement, - CXSDElement **ppXSDElement, - XSDTYPE *pXSD); - - HRESULT GetArrayDimensions( - CAttribute *pAttribute, - CCodeTypedElement *pCodeElem); - - HRESULT ProcessSoapHeaders( - CCodeFunction *pElem, - CWSDLPortTypeIO *pIO, - CWSDLPortTypeOperation *pBindingOp, - CWSDLBinding *pBinding, - DWORD dwFlags); - - HRESULT GetElementInfo(CXMLElement *pElem, CQName& name, CStringW& strUri); - - HRESULT CheckDuplicateHeaders(CCodeFunction *pCodeFunc, CCodeTypedElement *pElem, DWORD dwFlags); - - HRESULT AddHeaderToFunction(CCodeFunction *pCodeFunc, CAutoPtr& spElem, CWSDLMessagePart *pPart); - CCodeTypedElement * GetParameterByName(CCodeFunction *pCodeFunc, const CStringW& strName); - HRESULT GetNameFromSchemaElement(CXSDElement *pXSDElement, CStringW& strName); - CCodeTypedElement * GetHeaderByName(CCodeFunction *pCodeFunc, const CStringW& strName); - HRESULT CheckAndAddHeader( - CCodeFunction *pCodeFunc, - CAutoPtr& spElem, - DWORD dwFlags, - CWSDLMessagePart *pPart); -}; - -inline ULONG XSDHash(LPCWSTR wsz, ULONG nHash) -{ - while (*wsz != 0) - { - nHash=(nHash<<5)+nHash+(*wsz); - wsz++; - } - return nHash; -} diff --git a/ATL90/source/SProxy/CodeTypes.h b/ATL90/source/SProxy/CodeTypes.h deleted file mode 100644 index 6f05798..0000000 --- a/ATL90/source/SProxy/CodeTypes.h +++ /dev/null @@ -1,893 +0,0 @@ -// -// CodeTypes.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" - -enum CODETYPE -{ - CODETYPE_ERR = 0, - CODETYPE_UNK, - CODETYPE_ENUM, - CODETYPE_PARAMETER, - CODETYPE_STRUCT, - CODETYPE_UNION, - CODETYPE_FIELD, - CODETYPE_FUNCTION, - CODETYPE_HEADER -}; - -enum CODEFLAGS -{ - CODEFLAG_ERR = 0x00000000, - CODEFLAG_UNK = 0x00000001, - CODEFLAG_IN = 0x00000002, - CODEFLAG_OUT = 0x00000004, - CODEFLAG_RETVAL = 0x00000008, - CODEFLAG_MUSTUNDERSTAND = 0x00000010, - CODEFLAG_HEX = 0x00000020, - CODEFLAG_BASE64 = 0x00000040, - CODEFLAG_FIXEDARRAY = 0x00000080, - CODEFLAG_DYNARRAY = 0x00000100, - - CODEFLAG_STRUCT = 0x00000200, - CODEFLAG_UNION = 0x00000400, - CODEFLAG_ENUM = 0x00000800, - CODEFLAG_HEADER = 0x00001000, - - // WSDL message styles - CODEFLAG_DOCUMENT = 0x00002000, - CODEFLAG_RPC = 0x00004000, - - // WSDL message uses - CODEFLAG_LITERAL = 0x00008000, - CODEFLAG_ENCODED = 0x00010000, - - // specific wire format for document/literal with - // - CODEFLAG_PID = 0x00020000, // ParametersInDocuments - CODEFLAG_PAD = 0x00040000, // ParametersAsDocuments - - // special processing required for document/literal with type= - CODEFLAG_CHAIN = 0x00080000, - CODEFLAG_TYPE = 0x00100000, - CODEFLAG_ELEMENT = 0x00200000, - - // one-way method - CODEFLAG_ONEWAY = 0x00400000, - - // MinOccurs=0/MaxOccurs=1 Wrapper - CODEFLAG_DYNARRAYWRAPPER= 0x00800000, - - // nullable/nillable element - CODEFLAG_NULLABLE = 0x01000000 -}; - -class CCodeElement -{ -private: - - CStringW m_strName; - DWORD m_dwFlags; - CODETYPE m_codeType; - CCodeElement * m_pParentElement; - - // safe naming - CStringA m_strSafeName; - -public: - - CCodeElement(); - virtual ~CCodeElement() {} - - HRESULT SetName(const wchar_t *wszName, int cchName); - HRESULT SetName(const CStringW& strName); - const CStringW& GetName(); - CODETYPE GetCodeType(); - void SetCodeType(CODETYPE codeType); - DWORD SetFlags(DWORD dwFlags); - DWORD GetFlags(); - DWORD AddFlags(DWORD dwFlag); - DWORD ClearFlags(DWORD dwFlags = 0); - void SetParentElement(CCodeElement * pParentElement); - CCodeElement * GetParentElement(); - const CCodeElement& operator=(const CCodeElement& that); - - CStringA& GetSafeName(); - HRESULT SetSafeName(const CStringA& strName); -}; - -class CCodeType -{ -private: - - XSDTYPE m_xsdType; - CStringA m_strCodeType; - - CStringA m_strSafeCodeType; - -public: - - CCodeType(); - - void SetXSDType(XSDTYPE xsdType); - XSDTYPE GetXSDType(); - - HRESULT SetCodeTypeName(const wchar_t *wszCodeType, int cchCodeType); - HRESULT SetCodeTypeName(const CStringW& strCodeType); - const CStringA& GetCodeTypeName(); - const CCodeType& operator=(const CCodeType& that); - - CStringA& GetSafeCodeTypeName(); - HRESULT SetSafeCodeTypeName(const CStringA& strSafeCodeType); -}; - -class CCodeTypedElement : public CCodeElement, public CCodeType -{ -private: - - CXSDElement * m_pElement; - CAtlArray m_arrDims; - - CStringA m_strSizeIs; - - CStringW m_strNamespace; - -public: - - CCodeTypedElement() - :m_pElement(NULL) - { - } - - inline HRESULT SetNamespace(const CStringW& strNamespace) - { - m_strNamespace = strNamespace; - return S_OK; - } - - inline CStringW& GetNamespace() - { - return m_strNamespace; - } - - inline size_t AddDimension(int nDim) - { - return m_arrDims.Add(nDim); - } - - inline int GetDimension(int i) - { - return m_arrDims[i]; - } - - inline void SetDimension(int i, int nDim) - { - m_arrDims[i] = nDim; - } - - inline int GetDims() - { - return (int)m_arrDims.GetCount(); - } - - inline void ClearDims() - { - m_arrDims.RemoveAll(); - } - - inline CStringA& GetSizeIs() - { - return m_strSizeIs; - } - - inline void SetSizeIs(const CStringA& str) - { - m_strSizeIs = str; - } - - inline void SetSizeIs(const CStringW& str) - { - m_strSizeIs = CW2A(const_cast((LPCWSTR) str)); - } - - inline const CCodeTypedElement& operator=(const CCodeTypedElement& that) - { - if (this != &that) - { - CCodeElement::operator=(that); - CCodeType::operator=(that); - m_pElement = that.m_pElement; - - // REVIEW: (jasjitg) -- ugly! - if (that.m_arrDims.GetCount() != 0) - { - m_arrDims.SetCount(that.m_arrDims.GetCount()); - for (size_t i=0; i m_headers; // for CCodeFunction only - - DWORD m_dwCallFlags; // for CCodeFunction only - - // namespace of the type/function - CStringA m_strNamespace; - CAtlPtrList m_elements; - -public: - - CCodeElementContainer() - :m_dwCallFlags(0) - { - } - - DWORD GetCallFlags(); - void SetCallFlags(DWORD dwCallFlags); - - CStringA& GetSafeName(); - - const CStringA& GetName(); - HRESULT SetName(const CStringA& str); - HRESULT SetName(const CStringW& str); - - const CStringA& GetResponseName(); - HRESULT SetResponseName(const CStringA& str); - HRESULT SetResponseName(const CStringW& str); - - const CStringA& GetSendName(); - HRESULT SetSendName(const CStringA& str); - HRESULT SetSendName(const CStringW& str); - - CStringA& GetNamespace(); - HRESULT SetNamespace(const CStringA& str); - HRESULT SetNamespace(const CStringW& str); - - const CStringA& GetSoapAction(); - HRESULT SetSoapAction(const CStringA& str); - HRESULT SetSoapAction(const CStringW& str); - - POSITION GetFirstElement(); - CCodeTypedElement * GetNextElement(POSITION &pos); - CCodeTypedElement * AddElement(CCodeTypedElement * p = NULL); - int GetElementCount(); - - POSITION GetFirstHeader(); - CCodeTypedElement * GetNextHeader(POSITION &pos); - CCodeTypedElement * AddHeader(CCodeTypedElement *p = NULL); - int GetHeaderCount(); -}; - -typedef CCodeElementContainer CCodeFunction; -typedef CCodeElementContainer CCodeStruct; -typedef CCodeElementContainer CCodeEnum; - -class CCodeProxy -{ -private: - - CStringA m_strClassName; - CStringA m_strAddressUri; - CStringA m_strTargetNamespace; - CStringA m_strServiceName; - - CAtlPtrList m_structs; - CAtlPtrList m_enums; - CAtlPtrList m_functions; - CAtlPtrList m_headers; - -public: - - const CStringA& GetClassName(); - HRESULT SetClassName(const CStringW &strName); - HRESULT SetClassName(const char * szName); - - const CStringA& GetServiceName(); - HRESULT SetServiceName(const CStringW &strName); - HRESULT SetServiceName(const char * szName); - - const CStringA& GetAddressUri(); - HRESULT SetAddressUri(const CStringW &strName); - HRESULT SetAddressUri(const char * szName); - - const CStringA& GetTargetNamespace(); - HRESULT SetTargetNamespace(const CStringW &strName); - HRESULT SetTargetNamespace(const char * szName); - - POSITION GetFirstStruct(); - CCodeStruct * GetNextStruct(POSITION &pos); - CCodeStruct * AddStruct(CCodeStruct * p = NULL); - - POSITION GetFirstEnum(); - CCodeEnum * GetNextEnum(POSITION &pos); - CCodeEnum * AddEnum(CCodeEnum * p = NULL); - - POSITION GetFirstFunction(); - CCodeFunction * GetNextFunction(POSITION &pos); - CCodeFunction * AddFunction(CCodeFunction * p = NULL); - - POSITION GetFirstHeader(); - CCodeTypedElement * GetNextHeader(POSITION &pos); - CCodeTypedElement * AddHeader(CCodeTypedElement *p = NULL); -}; - - -////////////////////////////////////////////////////////////////// -// -// CCodeElement -// -////////////////////////////////////////////////////////////////// -inline CCodeElement::CCodeElement() - :m_dwFlags(CODEFLAG_ERR) -{ -} - -inline CStringA& CCodeElement::GetSafeName() -{ - return m_strSafeName; -} - -inline HRESULT CCodeElement::SetSafeName(const CStringA& strName) -{ - m_strSafeName = strName; - return S_OK; -} - -inline HRESULT CCodeElement::SetName(const wchar_t *wszName, int cchName) -{ - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; -} - -inline HRESULT CCodeElement::SetName(const CStringW& strName) -{ - m_strName = strName; - - return S_OK; -} - -inline const CStringW& CCodeElement::GetName() -{ - return m_strName; -} - -inline CODETYPE CCodeElement::GetCodeType() -{ - return m_codeType; -} - -inline void CCodeElement::SetCodeType(CODETYPE codeType) -{ - m_codeType = codeType; -} - -inline DWORD CCodeElement::SetFlags(DWORD dwFlags) -{ - return m_dwFlags = dwFlags; -} - -inline DWORD CCodeElement::GetFlags() -{ - return m_dwFlags; -} - -inline DWORD CCodeElement::AddFlags(DWORD dwFlag) -{ - m_dwFlags |= dwFlag; - return m_dwFlags; -} - -inline DWORD CCodeElement::ClearFlags(DWORD dwFlags) -{ - m_dwFlags &= ~dwFlags; - return m_dwFlags; -} - -inline void CCodeElement::SetParentElement(CCodeElement * pParentElement) -{ - m_pParentElement = pParentElement; -} -inline CCodeElement * CCodeElement::GetParentElement() -{ - return m_pParentElement; -} - -inline const CCodeElement& CCodeElement::operator=(const CCodeElement& that) -{ - if (this != &that) - { - m_strName = that.m_strName; - m_strSafeName = that.m_strSafeName; - m_dwFlags = that.m_dwFlags; - m_codeType = that.m_codeType; - m_pParentElement = that.m_pParentElement; - } - - return (*this); -} - -////////////////////////////////////////////////////////////////// -// -// CCodeType -// -////////////////////////////////////////////////////////////////// - -inline CCodeType::CCodeType() - :m_xsdType(XSDTYPE_ERR) -{ -} - -inline void CCodeType::SetXSDType(XSDTYPE xsdType) -{ - m_xsdType = xsdType; -} - -inline XSDTYPE CCodeType::GetXSDType() -{ - return m_xsdType; -} - -inline HRESULT CCodeType::SetCodeTypeName(const wchar_t *wszCodeType, int cchCodeType) -{ - if (!wszCodeType) - { - return E_FAIL; - } - - CStringW strW; - strW.SetString(wszCodeType, cchCodeType); - m_strCodeType = CW2A(const_cast((LPCWSTR) strW)); - - return S_OK; -} - -inline HRESULT CCodeType::SetCodeTypeName(const CStringW& strCodeType) -{ - m_strCodeType = strCodeType; - return S_OK; -} - -inline const CStringA& CCodeType::GetCodeTypeName() -{ - return m_strCodeType; -} - -inline CStringA& CCodeType::GetSafeCodeTypeName() -{ - return m_strSafeCodeType; -} - -inline HRESULT CCodeType::SetSafeCodeTypeName(const CStringA& strName) -{ - m_strSafeCodeType = strName; - return S_OK; -} - -inline const CCodeType& CCodeType::operator=(const CCodeType& that) -{ - if (this != &that) - { - m_strCodeType = that.m_strCodeType; - m_strSafeCodeType = that.m_strSafeCodeType; - m_xsdType = that.m_xsdType; - } - - return (*this); -} - -////////////////////////////////////////////////////////////////// -// -// CCodeElementContainer -// -////////////////////////////////////////////////////////////////// - -inline DWORD CCodeElementContainer::GetCallFlags() -{ - return m_dwCallFlags; -} - - -inline CStringA& CCodeElementContainer::GetSafeName() -{ - return m_strSafeName; -} - -inline void CCodeElementContainer::SetCallFlags(DWORD dwCallFlags) -{ - m_dwCallFlags = dwCallFlags; -} - -inline const CStringA& CCodeElementContainer::GetName() -{ - return m_strName; -} - -inline HRESULT CCodeElementContainer::SetName(const CStringA& str) -{ - m_strName = str; - return S_OK; -} - -inline HRESULT CCodeElementContainer::SetName(const CStringW& str) -{ - m_strName = CW2A( const_cast((LPCWSTR) str) ); - return S_OK; -} - -inline const CStringA& CCodeElementContainer::GetResponseName() -{ - return m_strResponseName; -} - -inline HRESULT CCodeElementContainer::SetResponseName(const CStringA& str) -{ - m_strResponseName = str; - return S_OK; -} - -inline HRESULT CCodeElementContainer::SetResponseName(const CStringW& str) -{ - m_strResponseName = CW2A( const_cast((LPCWSTR) str) ); - return S_OK; -} - -inline const CStringA& CCodeElementContainer::GetSendName() -{ - return m_strSendName; -} - -inline HRESULT CCodeElementContainer::SetSendName(const CStringA& str) -{ - m_strSendName = str; - return S_OK; -} - -inline HRESULT CCodeElementContainer::SetSendName(const CStringW& str) -{ - m_strSendName = CW2A( const_cast((LPCWSTR) str) ); - return S_OK; -} - -inline CStringA& CCodeElementContainer::GetNamespace() -{ - return m_strNamespace; -} - -inline HRESULT CCodeElementContainer::SetNamespace(const CStringA& str) -{ - m_strNamespace = str; - return S_OK; -} - -inline HRESULT CCodeElementContainer::SetNamespace(const CStringW& str) -{ - m_strNamespace = CW2A( const_cast((LPCWSTR) str) ); - return S_OK; -} - -inline const CStringA& CCodeElementContainer::GetSoapAction() -{ - return m_strSoapAction; -} - -inline HRESULT CCodeElementContainer::SetSoapAction(const CStringA& str) -{ - m_strSoapAction = str; - return S_OK; -} - -inline HRESULT CCodeElementContainer::SetSoapAction(const CStringW& str) -{ - m_strSoapAction = CW2A( const_cast((LPCWSTR) str) ); - return S_OK; -} - -inline POSITION CCodeElementContainer::GetFirstElement() -{ - return m_elements.GetHeadPosition(); -} - -inline CCodeTypedElement * CCodeElementContainer::GetNextElement(POSITION &pos) -{ - return m_elements.GetNext(pos); -} - -inline CCodeTypedElement * CCodeElementContainer::AddElement(CCodeTypedElement * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeTypedElement ); - p = spOut; - } - - if (p != NULL) - { - if (m_elements.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline int CCodeElementContainer::GetElementCount() -{ - return (int)m_elements.GetCount(); -} - -inline POSITION CCodeElementContainer::GetFirstHeader() -{ - return m_headers.GetHeadPosition(); -} - -inline CCodeTypedElement * CCodeElementContainer::GetNextHeader(POSITION &pos) -{ - return m_headers.GetNext(pos); -} - -inline CCodeTypedElement * CCodeElementContainer::AddHeader(CCodeTypedElement * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeTypedElement ); - p = spOut; - } - - if (p != NULL) - { - if (m_headers.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline int CCodeElementContainer::GetHeaderCount() -{ - return (int)m_headers.GetCount(); -} - -////////////////////////////////////////////////////////////////// -// -// CCodeProxy -// -////////////////////////////////////////////////////////////////// - -inline POSITION CCodeProxy::GetFirstStruct() -{ - return m_structs.GetHeadPosition(); -} - -inline CCodeStruct * CCodeProxy::GetNextStruct(POSITION &pos) -{ - return m_structs.GetNext(pos); -} - -inline CCodeStruct * CCodeProxy::AddStruct(CCodeStruct * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeStruct); - p = spOut; - } - - if (p != NULL) - { - if (m_structs.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline POSITION CCodeProxy::GetFirstEnum() -{ - return m_enums.GetHeadPosition(); -} - -inline CCodeEnum * CCodeProxy::GetNextEnum(POSITION &pos) -{ - return m_enums.GetNext(pos); -} - -inline CCodeEnum * CCodeProxy::AddEnum(CCodeEnum * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeEnum); - p = spOut; - } - - if (p != NULL) - { - if (m_enums.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline POSITION CCodeProxy::GetFirstFunction() -{ - return m_functions.GetHeadPosition(); -} - -inline CCodeFunction * CCodeProxy::GetNextFunction(POSITION &pos) -{ - return m_functions.GetNext(pos); -} - -inline CCodeFunction * CCodeProxy::AddFunction(CCodeFunction * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeFunction ); - p = spOut; - } - - if (p != NULL) - { - if (m_functions.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline POSITION CCodeProxy::GetFirstHeader() -{ - return m_headers.GetHeadPosition(); -} - -inline CCodeTypedElement * CCodeProxy::GetNextHeader(POSITION &pos) -{ - return m_headers.GetNext(pos); -} - -inline CCodeTypedElement * CCodeProxy::AddHeader(CCodeTypedElement * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CCodeTypedElement ); - p = spOut; - } - - if (p != NULL) - { - if (m_headers.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -inline const CStringA& CCodeProxy::GetClassName() -{ - return m_strClassName; -} - -inline HRESULT CCodeProxy::SetClassName(const CStringW &strName) -{ - return CreateSafeCppName(m_strClassName, strName); -} - -inline HRESULT CCodeProxy::SetClassName(const char * szName) -{ - return CreateSafeCppName(m_strClassName, szName); -} - -inline const CStringA& CCodeProxy::GetServiceName() -{ - return m_strServiceName; -} - -inline HRESULT CCodeProxy::SetServiceName(const CStringW &strName) -{ - return CreateSafeCppName(m_strServiceName, strName); -} - -inline HRESULT CCodeProxy::SetServiceName(const char * szName) -{ - return CreateSafeCppName(m_strServiceName, szName); -} - -inline const CStringA& CCodeProxy::GetAddressUri() -{ - return m_strAddressUri; -} - -inline HRESULT CCodeProxy::SetAddressUri(const CStringW &strName) -{ - m_strAddressUri = CW2A(const_cast((LPCWSTR) strName)); - return S_OK; -} - -inline HRESULT CCodeProxy::SetAddressUri(const char * szName) -{ - m_strAddressUri = szName; - return S_OK; -} - -inline const CStringA& CCodeProxy::GetTargetNamespace() -{ - return m_strTargetNamespace; -} - -inline HRESULT CCodeProxy::SetTargetNamespace(const CStringW &strName) -{ - m_strTargetNamespace = CW2A(const_cast((LPCWSTR) strName)); - return S_OK; -} - -inline HRESULT CCodeProxy::SetTargetNamespace(const char * szName) -{ - m_strTargetNamespace = szName; - return S_OK; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/ComplexType.cpp b/ATL90/source/SProxy/ComplexType.cpp deleted file mode 100644 index 63d35ce..0000000 --- a/ATL90/source/SProxy/ComplexType.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// ComplexType.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Attribute.h" -#include "ComplexType.h" -#include "Element.h" -#include "Content.h" - -CElement * CComplexType::AddElement(CElement * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CElement ); - p = spOut; - } - - if (p != NULL) - { - if (m_elements.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -CAttribute * CComplexType::AddAttribute(CAttribute * p) -{ - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CAttribute ); - p = spOut; - } - - if (p != NULL) - { - if (m_attributes.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -CContent * CComplexType::AddContent(CContent *pContent) -{ - if (pContent == NULL) - { - pContent = new CContent; - } - delete m_pContent; - m_pContent = pContent; - - return m_pContent; -} - -CComplexType::~CComplexType() -{ - delete m_pContent; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/ComplexType.h b/ATL90/source/SProxy/ComplexType.h deleted file mode 100644 index fb53d8b..0000000 --- a/ATL90/source/SProxy/ComplexType.h +++ /dev/null @@ -1,278 +0,0 @@ -// -// ComplexType.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" -#include "QName.h" - -// REVIEW: CComplexType is also used to represent the restriciton and extension tags -- -// however the the restriction and extension tags do not allow the simpleContent and -// complexContent subtags and only the base and id attributes are supported. -// If in the future, CParserBase is modified to allow chaining, then the common -// functionality can be subsumed in a base class instead. - -class CElement; -class CContent; -class CAttribute; - -enum CONTENT_TYPE -{ - CONTENT_ERR = 0, - CONTENT_UNK, - CONTENT_ELEMENTONLY, - CONTENT_TEXTONLY, - CONTENT_MIXED, - CONTENT_EMPTY -}; - -enum DERIVED_TYPE -{ - DERIVED_ERR = 0, - DERIVED_UNK, - DERIVED_EXTENSION, - DERIVED_RESTRICTION -}; - -CONTENT_TYPE GetContentAttribute(const wchar_t * wszVal, int cchVal); -DERIVED_TYPE GetDerivedByAttribute(const wchar_t * wszVal, int cchVal); - -class CComplexType : public CXSDElement -{ -private: - - CStringW m_strName; - CStringW m_strID; - CQName m_base; - - CAtlPtrList m_elements; - - // attributes - CAtlPtrList m_attributes; - - // simpleContent/complexContent tags - CContent *m_pContent; - - CONTENT_TYPE m_contentType; - DERIVED_TYPE m_derivedBy; - -public: - - CComplexType() - :m_contentType(CONTENT_UNK), m_derivedBy(DERIVED_UNK), m_pContent(NULL) - { - SetElementType(XSD_COMPLEXTYPE); - } - - ~CComplexType(); - - CContent * AddContent(CContent *pContent = NULL); - - inline CContent * GetContent() - { - return m_pContent; - } - - CElement * AddElement(CElement * pElement = NULL); - CAttribute * AddAttribute(CAttribute * pAttribute = NULL); - - inline size_t GetNumAttributes() - { - return m_attributes.GetCount(); - } - - inline POSITION GetFirstElement() - { - return m_elements.GetHeadPosition(); - } - - inline CElement * GetNextElement(POSITION& pos) - { - return m_elements.GetNext(pos); - } - - inline POSITION GetFirstAttribute() - { - return m_attributes.GetHeadPosition(); - } - - inline CAttribute * GetNextAttribute(POSITION& pos) - { - return m_attributes.GetNext(pos); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetID(const wchar_t *wszID, int cchID) - { - if (!wszID) - { - return E_FAIL; - } - - m_strID.SetString(wszID, cchID); - - return S_OK; - } - - inline HRESULT SetID(const CStringW& strID) - { - m_strID = strID; - - return S_OK; - } - - inline const CStringW& GetID() - { - return m_strID; - } - - inline HRESULT SetBase(const CStringW& strQName) - { - m_base.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetBase(const CStringW& strPrefix, const CStringW& strName) - { - m_base.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetBase(const wchar_t *wszQName, int cchQName) - { - m_base.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetBase() - { - return m_base; - } - - inline DERIVED_TYPE GetDerivedBy() - { - return m_derivedBy; - } - - inline HRESULT SetDerivedBy(DERIVED_TYPE derivedBy) - { - m_derivedBy = derivedBy; - return S_OK; - } - - inline HRESULT SetDerivedBy(const wchar_t * wszVal, int cchVal) - { - m_derivedBy = GetDerivedByAttribute(wszVal, cchVal); - return (m_derivedBy != DERIVED_ERR) ? S_OK : E_FAIL; - } - - inline CONTENT_TYPE GetContentType() - { - return m_contentType; - } - - inline CONTENT_TYPE SetContentType(CONTENT_TYPE contentType) - { - m_contentType = contentType; - return m_contentType; - } - - inline CONTENT_TYPE SetContentType(const wchar_t * wszVal, int cchVal) - { - m_contentType = GetContentAttribute(wszVal, cchVal); - return m_contentType; - } -}; - -inline CONTENT_TYPE GetContentAttribute(const wchar_t * wszVal, int cchVal) -{ - struct _map - { - wchar_t * wszEntry; - int cchEntry; - CONTENT_TYPE data; - }; - - CONTENT_TYPE ret = CONTENT_ERR; - - static const _map s_entries[] = - { - { L"elementOnly", sizeof("elementOnly")-1, CONTENT_ELEMENTONLY }, - { L"textOnly", sizeof("textOnly")-1, CONTENT_TEXTONLY }, - { L"mixed", sizeof("mixed")-1, CONTENT_MIXED }, - { L"empty", sizeof("emtpy")-1, CONTENT_EMPTY } - }; - - for (int i=0; i<(sizeof(s_entries)/sizeof(s_entries[0])); i++) - { - if (cchVal == s_entries[i].cchEntry && !wcsncmp(wszVal, s_entries[i].wszEntry, cchVal)) - { - ret = s_entries[i].data; - break; - } - } - - return ret; -}; - -inline DERIVED_TYPE GetDerivedByAttribute(const wchar_t * wszVal, int cchVal) -{ - struct _map - { - wchar_t * wszEntry; - int cchEntry; - DERIVED_TYPE data; - }; - - DERIVED_TYPE ret = DERIVED_ERR; - - static const _map s_entries[] = - { - { L"extension", sizeof("extension")-1, DERIVED_EXTENSION }, - { L"restriction", sizeof("restriction")-1, DERIVED_RESTRICTION } - }; - - for (int i=0; i<(sizeof(s_entries)/sizeof(s_entries[0])); i++) - { - if (cchVal == s_entries[i].cchEntry && !wcsncmp(wszVal, s_entries[i].wszEntry, cchVal)) - { - ret = s_entries[i].data; - break; - } - } - - return ret; -}; - -typedef CComplexType CRestriction; -typedef CComplexType CExtension; \ No newline at end of file diff --git a/ATL90/source/SProxy/ComplexTypeParser.cpp b/ATL90/source/SProxy/ComplexTypeParser.cpp deleted file mode 100644 index fbf60a3..0000000 --- a/ATL90/source/SProxy/ComplexTypeParser.cpp +++ /dev/null @@ -1,530 +0,0 @@ -// -// ComplexTypeParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - - -#include "ContentParser.h" -#include "AttributeParser.h" -#include "ComplexTypeParser.h" -#include "ElementParser.h" - -#include "Emit.h" -#include "resource.h" - -TAG_METHOD_IMPL(CComplexTypeParser, OnElement) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - CElement * pElem = pCurr->AddElement(); - if (pElem != NULL) - { - SetXSDElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CElementParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAll) -{ - TRACE_PARSE_ENTRY(); - - DisableReset(); - - return S_OK; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnChoice) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitString(wszNamespaceUri, wszLocalName); - - CComplexType *pCurr = GetComplexType(); - if (pCurr != NULL) - { - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - pCurr->SetElementType(XSD_UNSUPPORTED); - return SkipElement(); - } - return E_FAIL; - } - - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAnnotation) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnLength) -{ - TRACE_PARSE_ENTRY(); - EmitSkip(wszNamespaceUri, wszLocalName); - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnEnumeration) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnPattern) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnScale) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnPeriod) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnDuration) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMaxLength) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnPrecision) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMinInclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMinExclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMaxInclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMaxExclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnMinLength) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnEncoding) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnGroup) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnSequence) -{ - TRACE_PARSE_ENTRY(); - - DisableReset(); - - return S_OK; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAttribute) -{ - TRACE_PARSE_ENTRY(); - - CComplexType *pCurr = GetComplexType(); - - if (pCurr != NULL) - { - CAttribute *pElem = pCurr->AddAttribute(); - if (pElem != NULL) - { - SetXSDElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CAttributeParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAttributeGroup) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAnyAttribute) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnSimpleContent) -{ - TRACE_PARSE_ENTRY(); - -/* - CComplexType *pCurr = GetComplexType(); - - if (pCurr != NULL) - { - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - CContent *pElem = pCurr->AddContent(); - pElem->SetParentDocument(pCurr->GetParentDocument()); - pElem->SetParentElement(pCurr); - pElem->SetElementType(XSD_SIMPLECONTENT); - - CContentParser * p = new CContentParser(GetReader(), this, GetLevel(), pElem); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p->GetAttributes(pAttributes); - } - } - } - else - { - return OnUnrecognizedTag(wszNamespaceUri, - cchNamespaceUri, wszLocalName, cchLocalName, - wszQName, cchQName, pAttributes); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -*/ - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - return SkipElement(); -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnAny) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitString(wszNamespaceUri, wszLocalName); - - CComplexType *pCurr = GetComplexType(); - if (pCurr != NULL) - { - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - pCurr->SetElementType(XSD_UNSUPPORTED); - return SkipElement(); - } - return E_FAIL; - } - - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; -} - -TAG_METHOD_IMPL(CComplexTypeParser, OnComplexContent) -{ - TRACE_PARSE_ENTRY(); - - CComplexType *pCurr = GetComplexType(); - - if (pCurr != NULL) - { - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - CContent *pElem = pCurr->AddContent(); - if (pElem != NULL) - { - SetXSDElementInfo(pElem, pCurr, GetLocator()); - pElem->SetElementType(XSD_COMPLEXCONTENT); - - CAutoPtr p( new CContentParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - else - { - return OnUnrecognizedTag(wszNamespaceUri, - cchNamespaceUri, wszLocalName, cchLocalName, - wszQName, cchQName, pAttributes); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - HRESULT hr = S_OK; - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - hr = pCurr->SetName(wszValue, cchValue); - } - return hr; - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - return pCurr->SetID(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnAbstract) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL && pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - MarkUnsupported(wszQName, cchQName); - } - - return S_OK; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnBase) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - return pCurr->SetBase(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnBlock) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnContent) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - HRESULT hr = S_OK; - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - hr = pCurr->SetContentType(wszValue, cchValue); - } - return hr; - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnDerivedBy) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - HRESULT hr = S_OK; - if (pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - if (FAILED(pCurr->SetDerivedBy(wszValue, cchValue))) - { - EmitInvalidValue("derivedBy", wszValue); - hr = E_FAIL; - } - } - return hr; - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CComplexTypeParser, OnFinal) -{ - TRACE_PARSE_ENTRY(); - - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL && pCurr->GetElementType() == XSD_COMPLEXTYPE) - { - MarkUnsupported(wszQName, cchQName); - } - - return S_OK; -} - -HRESULT __stdcall CComplexTypeParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CComplexType * pCurr = GetComplexType(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/ComplexTypeParser.h b/ATL90/source/SProxy/ComplexTypeParser.h deleted file mode 100644 index c305fa7..0000000 --- a/ATL90/source/SProxy/ComplexTypeParser.h +++ /dev/null @@ -1,157 +0,0 @@ -// -// ComplexTypeParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "Emit.h" -#include "resource.h" - -class CComplexType; - -class CComplexTypeParser : public CParserBase -{ -private: - - CComplexType * m_pComplexType; - -public: - - inline CComplexTypeParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CComplexType * pComplexType = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pComplexType(pComplexType) - { - } - - inline CComplexType * GetComplexType() - { - return m_pComplexType; - } - - inline void SetComplexType(CComplexType * pComplexType) - { - m_pComplexType = pComplexType; - } - - inline void MarkUnsupported(const wchar_t *wszQName, int cchQName) - { -#ifdef _DEBUG - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - ATLTRACE( _T("%sUnsupported tag@(%d, %d) : %.*ws -- skipping element\n"), GetTabs(GetLevel()), - nLine, nCol, - cchQName, wszQName ); -#endif - } - - /* - annotation, length, enumeration, pattern, scale, period, duration, - maxLength, precision, minInclusive, minExclusive, maxInclusive, - maxExclusive, minLength, encoding, element, group, all, choice, - sequence, attribute, attributeGroup, anyAttribute - */ - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("element", XSD_NAMESPACEA, OnElement) - XMLTAG_ENTRY_EX("all", XSD_NAMESPACEA, OnAll) - XMLTAG_ENTRY_EX("choice", XSD_NAMESPACEA, OnChoice) - XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation) - XMLTAG_ENTRY_EX("length", XSD_NAMESPACEA, OnLength) - XMLTAG_ENTRY_EX("enumeration", XSD_NAMESPACEA, OnEnumeration) - XMLTAG_ENTRY_EX("pattern", XSD_NAMESPACEA, OnPattern) - XMLTAG_ENTRY_EX("scale", XSD_NAMESPACEA, OnScale) - XMLTAG_ENTRY_EX("period", XSD_NAMESPACEA, OnPeriod) - XMLTAG_ENTRY_EX("duration", XSD_NAMESPACEA, OnDuration) - XMLTAG_ENTRY_EX("maxLength", XSD_NAMESPACEA, OnMaxLength) - XMLTAG_ENTRY_EX("precision", XSD_NAMESPACEA, OnPrecision) - XMLTAG_ENTRY_EX("minInclusive", XSD_NAMESPACEA, OnMinInclusive) - XMLTAG_ENTRY_EX("minExclusive", XSD_NAMESPACEA, OnMinExclusive) - XMLTAG_ENTRY_EX("maxInclusive", XSD_NAMESPACEA, OnMaxInclusive) - XMLTAG_ENTRY_EX("maxExclusive", XSD_NAMESPACEA, OnMaxExclusive) - XMLTAG_ENTRY_EX("minLength", XSD_NAMESPACEA, OnMinLength) - XMLTAG_ENTRY_EX("encoding", XSD_NAMESPACEA, OnEncoding) - XMLTAG_ENTRY_EX("group", XSD_NAMESPACEA, OnGroup) - XMLTAG_ENTRY_EX("sequence", XSD_NAMESPACEA, OnSequence) - XMLTAG_ENTRY_EX("attribute", XSD_NAMESPACEA, OnAttribute) - XMLTAG_ENTRY_EX("attributeGroup", XSD_NAMESPACEA, OnAttributeGroup) - XMLTAG_ENTRY_EX("anyAttribute", XSD_NAMESPACEA, OnAnyAttribute) - - // REVIEW: new ones - XMLTAG_ENTRY_EX("complexContent", XSD_NAMESPACEA, OnComplexContent) - XMLTAG_ENTRY_EX("simpleContent", XSD_NAMESPACEA, OnSimpleContent) - XMLTAG_ENTRY_EX("any", XSD_NAMESPACEA, OnAny) - END_XMLTAG_MAP() - - - /* - - */ - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("id", OnID) - XMLATTR_ENTRY("abstract", OnAbstract) - XMLATTR_ENTRY("base", OnBase) - XMLATTR_ENTRY("block", OnBlock) - XMLATTR_ENTRY("content", OnContent) - XMLATTR_ENTRY("derivedBy", OnDerivedBy) - XMLATTR_ENTRY("final", OnFinal) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnElement); - TAG_METHOD_DECL(OnAll); - TAG_METHOD_DECL(OnChoice); - TAG_METHOD_DECL(OnAnnotation); - TAG_METHOD_DECL(OnLength); - TAG_METHOD_DECL(OnPattern); - TAG_METHOD_DECL(OnEnumeration); - TAG_METHOD_DECL(OnScale); - TAG_METHOD_DECL(OnPeriod); - TAG_METHOD_DECL(OnDuration); - TAG_METHOD_DECL(OnMaxLength); - TAG_METHOD_DECL(OnPrecision); - TAG_METHOD_DECL(OnMinInclusive); - TAG_METHOD_DECL(OnMinExclusive); - TAG_METHOD_DECL(OnMaxInclusive); - TAG_METHOD_DECL(OnMaxExclusive); - TAG_METHOD_DECL(OnMinLength); - TAG_METHOD_DECL(OnEncoding); - TAG_METHOD_DECL(OnGroup); - TAG_METHOD_DECL(OnSequence); - TAG_METHOD_DECL(OnAttribute); - TAG_METHOD_DECL(OnAttributeGroup); - TAG_METHOD_DECL(OnAnyAttribute); - - // new ones - TAG_METHOD_DECL(OnComplexContent); - TAG_METHOD_DECL(OnSimpleContent); - TAG_METHOD_DECL(OnAny); - - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnID); - ATTR_METHOD_DECL(OnAbstract); - ATTR_METHOD_DECL(OnBase); - ATTR_METHOD_DECL(OnBlock); - ATTR_METHOD_DECL(OnContent); - ATTR_METHOD_DECL(OnDerivedBy); - ATTR_METHOD_DECL(OnFinal); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/Content.cpp b/ATL90/source/SProxy/Content.cpp deleted file mode 100644 index f177208..0000000 --- a/ATL90/source/SProxy/Content.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// Content.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Content.h" -#include "Attribute.h" -#include "Element.h" // required for CComplexType::m_elements.RemoveAll() -#include "ComplexType.h" - -CComplexType * CContent::AddType(CComplexType *pType) -{ - if (pType == NULL) - { - pType = new CComplexType; - } - delete m_pType; - m_pType = pType; - - return m_pType; -} - -CComplexType * CContent::GetType() -{ - return m_pType; -} - -CContent::~CContent() -{ - delete m_pType; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Content.h b/ATL90/source/SProxy/Content.h deleted file mode 100644 index 8eaf750..0000000 --- a/ATL90/source/SProxy/Content.h +++ /dev/null @@ -1,77 +0,0 @@ -// -// Content.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -// CContent represents the complexContent and the simpleContent - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" -#include "QName.h" -#include "Util.h" - -class CComplexType; - -class CContent : public CXSDElement -{ -private: - - // restriction/extension - CComplexType * m_pType; - - BOOL m_bMixed; - CStringW m_strID; - -protected: - -public: - - CContent() - :m_pType(NULL), m_bMixed(FALSE) - { - } - - CComplexType * AddType(CComplexType *pContent = NULL); - - CComplexType * GetType(); - - ~CContent(); - - inline HRESULT SetID(const wchar_t *wsz, int cch) - { - m_strID.SetString(wsz, cch); - return S_OK; - } - - inline HRESULT SetID(const CStringW& strID) - { - m_strID = strID; - return S_OK; - } - - inline HRESULT SetMixed(const wchar_t *wszValue, int cchValue) - { - bool bVal; - HRESULT hr = GetBooleanValue(&bVal, wszValue, cchValue); - if (SUCCEEDED(hr)) - { - m_bMixed = (bVal == true) ? TRUE : FALSE; - } - - // unknown string - return hr; - } - - inline HRESULT SetMixed(BOOL bMixed) - { - m_bMixed = bMixed; - } - - inline BOOL GetMixed() - { - return m_bMixed; - } -}; // class CContent \ No newline at end of file diff --git a/ATL90/source/SProxy/ContentParser.cpp b/ATL90/source/SProxy/ContentParser.cpp deleted file mode 100644 index 19bd03e..0000000 --- a/ATL90/source/SProxy/ContentParser.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// ContentParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "ContentParser.h" -#include "Content.h" -#include "Attribute.h" -#include "ComplexTypeParser.h" -#include "Element.h" -#include "ComplexType.h" - -// CContentParser parses the simpleContent tag and the complexContent tag - -TAG_METHOD_IMPL(CContentParser, OnAnnotation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CContentParser, OnRestriction) -{ - TRACE_PARSE_ENTRY(); - - CContent *pCurr = GetContent(); - if (pCurr != NULL) - { - CComplexType * pElem = pCurr->AddType(); - if (pElem != NULL) - { - pElem->SetElementType(XSD_RESTRICTION); - SetXSDElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CComplexTypeParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CContentParser, OnExtension) -{ - TRACE_PARSE_ENTRY(); - - int nLine = 0; - int nCol = 0; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - CContent *pCurr = GetContent(); - if (pCurr != NULL) - { - EmitFileError(IDS_SDL_BASE_EXTENSION, - (LPCWSTR) pCurr->GetParentDocument()->GetDocumentUri(), - nLine, nCol, 0); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CContentParser, OnMixed) -{ - TRACE_PARSE_ENTRY(); - - CContent *pCurr = GetContent(); - if (pCurr != NULL) - { - if (SUCCEEDED(pCurr->SetMixed(wszValue, cchValue))) - { - return S_OK; - } - EmitInvalidValue("mixed", wszValue); - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CContentParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - CContent *pCurr = GetContent(); - if (pCurr != NULL) - { - return pCurr->SetID(wszValue, cchValue); - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} diff --git a/ATL90/source/SProxy/ContentParser.h b/ATL90/source/SProxy/ContentParser.h deleted file mode 100644 index a193e12..0000000 --- a/ATL90/source/SProxy/ContentParser.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// ContentParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "Emit.h" -#include "resource.h" - -// CContentParser parses the simpleContent tag and the complexContent tag - -class CContent; - -class CContentParser : public CParserBase -{ -private: - - CContent *m_pContent; - -public: - - inline CContentParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CContent *pContent = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pContent(pContent) - { - } - - inline CContent * GetContent() - { - return m_pContent; - } - - inline CContent * SetContent(CContent *pContent) - { - m_pContent = pContent; - } - - /* - - Content: (annotation? , (restriction | extension)) - - - - Content: (annotation? , (restriction | extension)) - - */ - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation) - XMLTAG_ENTRY_EX("restriction", XSD_NAMESPACEA, OnRestriction) - XMLTAG_ENTRY_EX("extension", XSD_NAMESPACEA, OnExtension) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("mixed", OnMixed) - XMLATTR_ENTRY("id", OnID) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnAnnotation); - TAG_METHOD_DECL(OnRestriction); - TAG_METHOD_DECL(OnExtension); - - ATTR_METHOD_DECL(OnMixed); - ATTR_METHOD_DECL(OnID); -}; - -typedef CContentParser CComplexContentParser; -typedef CContentParser CSimpleContentParser; \ No newline at end of file diff --git a/ATL90/source/SProxy/CppCodeGenerator.cpp b/ATL90/source/SProxy/CppCodeGenerator.cpp deleted file mode 100644 index 5d51b42..0000000 --- a/ATL90/source/SProxy/CppCodeGenerator.cpp +++ /dev/null @@ -1,1160 +0,0 @@ -// -// CppCodeGenerator.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "CppCodeGenerator.h" -#include "Emit.h" -#include "resource.h" -#include "Element.h" - -HRESULT CCppCodeGenerator::Generate(LPCWSTR wszFile, CCodeProxy *pProxy, bool bPragma, bool bNoClobber, bool bEmitNamespace, bool bGenProxy, const char *szNamespace) -{ - ATLASSERT( (wszFile != NULL) && (*wszFile != L'\0') ); - - CWriteStreamOnFileA fileStream; - HRESULT hr = fileStream.Init(wszFile, (bNoClobber != false) ? CREATE_NEW : CREATE_ALWAYS); - if (FAILED(hr)) - { - EmitErrorHr(hr); - return hr; - } - - CStencil s; - HMODULE hModule = _AtlBaseModule.GetResourceInstance(); - if (hModule == NULL) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - HTTP_CODE hcErr = s.LoadFromResource(hModule, IDR_SPROXYSRF, "SRF"); - if (hcErr != HTTP_SUCCESS) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - - if (s.ParseReplacements(this) == false) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - - s.FinishParseReplacements(); - if (s.ParseSuccessful() == false) - { -#ifdef _DEBUG - - CWriteStreamOnStdout errStream; - s.RenderErrors(&errStream); - -#endif - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - m_pProxy = pProxy; - m_writeHelper.Attach(&fileStream); - - m_bPragma = bPragma; - m_bGenProxy = bGenProxy; - m_szNamespace = szNamespace; - if (m_szNamespace && !*m_szNamespace) - { - m_bEmitNamespace = false; - } - else - { - m_bEmitNamespace = bEmitNamespace; - } - - hcErr = s.Render(this, &fileStream); - if (hcErr != HTTP_SUCCESS) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - - return S_OK; -} - -HTTP_CODE CCppCodeGenerator::OnGetNextEnum() -{ - if (m_currEnumPos == NULL) - { - m_nCntr = 0; - m_currEnumPos = m_pProxy->GetFirstEnum(); - } - else - { - m_pProxy->GetNextEnum(m_currEnumPos); - } - - if (m_currEnumPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumSafeQName() -{ - return WriteCString(GetCurrentEnum()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetNextEnumElement() -{ - CCodeEnum *p = GetCurrentEnum(); - - if (m_currEnumFieldPos == NULL) - { - m_currEnumFieldPos = p->GetFirstElement(); - } - else - { - p->GetNextElement(m_currEnumFieldPos); - } - - if (m_currEnumFieldPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumElementHashW() -{ - return GetHashW(GetCurrentEnumElement()->GetCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumElementName() -{ - return WriteCString(GetCurrentEnumElement()->GetCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumElementValue() -{ - m_writeHelper << m_nCntr++; - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnResetCounter() -{ - m_nCntr = 0; - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumNameHashW() -{ - return GetHashW(GetCurrentEnum()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumName() -{ - return WriteCString(GetCurrentEnum()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumQName() -{ - return WriteCString(GetCurrentEnum()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetNextStruct() -{ - if (m_currStructPos == NULL) - { - m_currStructPos = m_pProxy->GetFirstStruct(); - } - else - { - m_pProxy->GetNextStruct(m_currStructPos); - } - - if (m_currStructPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetStructSafeQName() -{ - return WriteCString(GetCurrentStruct()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetNextStructField() -{ - CCodeStruct *p = GetCurrentStruct(); - - if (m_currStructFieldPos == NULL) - { - m_currStructFieldPos = p->GetFirstElement(); - } - else - { - p->GetNextElement(m_currStructFieldPos); - } - - if (m_currStructFieldPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldType() -{ - return GetCppType(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldSuffix() -{ - return GetTypeSuffix(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldNullable() -{ - if ((GetCurrentStructField()->GetFlags() & CODEFLAG_NULLABLE) || - (GetCurrentStructField()->GetXSDType() == XSDTYPE_STRING) || - (GetCurrentStructField()->GetXSDType() == XSDTYPE_BASE64BINARY) || - (GetCurrentStructField()->GetXSDType() == XSDTYPE_HEXBINARY) || - (OnIsFieldDynamicArray() == HTTP_SUCCESS)) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldDynamicArray() -{ - if (GetCurrentStructField()->GetFlags() & CODEFLAG_DYNARRAY) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldDynamicArrayWrapper() -{ - if (GetCurrentStructField()->GetFlags() & CODEFLAG_DYNARRAYWRAPPER) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnFieldHasSizeIs() -{ - if (GetCurrentStructField()->GetSizeIs().GetLength() != 0) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetFieldSizeIsName() -{ - return WriteCString(GetCurrentStructField()->GetSizeIs()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFieldSizeIsIndex() -{ - CCodeStruct *p = GetCurrentStruct(); - int nCntr = -1; - - POSITION pos = p->GetFirstElement(); - while (pos != NULL) - { - nCntr++; - CCodeTypedElement *pElem = p->GetNextElement(pos); - ATLASSERT( pElem != NULL ); - if (pElem->GetName() == ((LPCSTR)GetCurrentStructField()->GetSizeIs())) - { - m_writeHelper << nCntr; - return HTTP_SUCCESS; - } - } - - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldSizeIs() -{ - CCodeStruct *p = GetCurrentStruct(); - - POSITION pos = p->GetFirstElement(); - while (pos != NULL) - { - CCodeTypedElement *pElem = p->GetNextElement(pos); - ATLASSERT( pElem != NULL ); - if (GetCurrentStructField()->GetName() == ((LPCSTR)pElem->GetSizeIs())) - { - return HTTP_SUCCESS; - } - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetCurrentFieldIndex() -{ - CCodeStruct *p = GetCurrentStruct(); - int nCntr = 0; - POSITION pos = p->GetFirstElement(); - while ((pos != NULL) && (pos != m_currStructFieldPos)) - { - nCntr++; - CCodeTypedElement *pElem = p->GetNextElement(pos); - if ((pElem->GetFlags() & CODEFLAG_DYNARRAY) && (pElem->GetSizeIs().GetLength()==0)) - { - nCntr++; - } - } - m_writeHelper << nCntr; - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldFixedArray() -{ - return IsFixedArray(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldName() -{ - return WriteCString(GetCurrentStructField()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldDimsDecl() -{ - return GetDimsDecl(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldHashW() -{ - return GetHashW(GetCurrentStructField()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldAtlSoapType() -{ - return GetAtlSoapType(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructQName() -{ - return WriteCString(GetCurrentStruct()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnIsFieldUDT() -{ - return IsUDT(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldTypeSafeQName() -{ - return WriteCString(GetCurrentStructField()->GetCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructNameHashW() -{ - return GetHashW(GetCurrentStruct()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructName() -{ - return WriteCString(GetCurrentStruct()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldCount() -{ - return (m_writeHelper.Write(GetCurrentStruct()->GetElementCount()) != FALSE) ? HTTP_SUCCESS : HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetNextFunction() -{ - if (m_currFunctionPos == NULL) - { - m_currFunctionPos = m_pProxy->GetFirstFunction(); - m_nFuncIndex = 0; - } - else - { - m_pProxy->GetNextFunction(m_currFunctionPos); - m_nFuncIndex++; - } - - if (m_currFunctionPos != NULL) - { - return HTTP_SUCCESS; - } - m_nFuncIndex = 0; - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetNextParameter() -{ - CCodeFunction *p = GetCurrentFunction(); - - if (m_currParameterPos == NULL) - { - m_nCntr = 0; - m_currParameterPos = p->GetFirstElement(); - } - else - { - m_nCntr++; - p->GetNextElement(m_currParameterPos); - } - - if (m_currParameterPos != NULL) - { - return HTTP_SUCCESS; - } - m_nCntr = 0; - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsParameterFixedArray() -{ - return IsFixedArray(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnGetClassSafeQName() -{ - return WriteCString(m_pProxy->GetClassName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionName() -{ - return WriteCString(GetCurrentFunction()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterName() -{ - CCodeTypedElement *p = GetCurrentParameter(); - if (p->GetName() == "return") - { - return (m_pStream->WriteStream("__retval", sizeof("__retval")-1, NULL) == S_OK) ? - HTTP_SUCCESS : HTTP_FAIL; - } - - return WriteCString(GetCurrentParameter()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterNameRaw() -{ - return WriteCString(GetCurrentParameter()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterDimsDecl() -{ - return GetDimsDecl(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterType() -{ - return GetCppType(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnIsParameterDynamicArray() -{ - if (GetCurrentParameter()->GetFlags() & CODEFLAG_DYNARRAY) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterSuffix() -{ - return GetTypeSuffix(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnIsInParameter() -{ - if (GetCurrentParameter()->GetFlags() & CODEFLAG_IN) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnHasRetval() -{ - // meaningless for client side stuff - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetRetval() -{ - // should never get called - ATLASSERT( FALSE ); - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterHashW() -{ - return GetHashW(GetCurrentParameter()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterAtlSoapType() -{ - return GetAtlSoapType(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnIsParameterNullable() -{ - if ((GetCurrentParameter()->GetFlags() & CODEFLAG_NULLABLE) || - (GetCurrentParameter()->GetXSDType() == XSDTYPE_STRING) || - (GetCurrentParameter()->GetXSDType() == XSDTYPE_BASE64BINARY) || - (GetCurrentParameter()->GetXSDType() == XSDTYPE_HEXBINARY) || - (GetCurrentParameter()->GetFlags() & CODEFLAG_DYNARRAY)) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsOutParameter() -{ - if (GetCurrentParameter()->GetFlags() & CODEFLAG_OUT) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsParameterUDT() -{ - return IsUDT(GetCurrentParameter()); -} - -/* -HTTP_CODE CCppCodeGenerator::OnNotIsParameterUDT() -{ - return (OnIsParameterUDT() == HTTP_SUCCESS) ? HTTP_S_FALSE : HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnIsRpcLiteralWithElement() -{ - if ((GetCurrentParameter()->GetFlags() & (CODEFLAG_LITERAL | CODEFLAG_RPC | CODEFLAG_ELEMENT)) == - (CODEFLAG_LITERAL | CODEFLAG_RPC | CODEFLAG_ELEMENT)) - { - return HTTP_SUCCESS; - } - - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnNotIsParameterUDT_AND_IsRpcLiteralWithElement() -{ - return ((OnNotIsParameterUDT() == HTTP_SUCCESS) && - (OnIsRpcLiteralWithElement() == HTTP_SUCCESS)) - ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterElementHashW() -{ - CXSDElement *pXSDElement = GetCurrentParameter()->GetElement(); - if (pXSDElement->GetElementType() == XSD_ELEMENT) - { - CElement *pElem = static_cast(pXSDElement); - return GetHashW(pElem->GetName()); - } - EmitError(IDS_SDL_INTERNAL); - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterElementName() -{ - CXSDElement *pXSDElement = GetCurrentParameter()->GetElement(); - if (pXSDElement->GetElementType() == XSD_ELEMENT) - { - CElement *pElem = static_cast(pXSDElement); - return WriteCString(pElem->GetName()); - } - EmitError(IDS_SDL_INTERNAL); - return HTTP_FAIL; -} -*/ - -HTTP_CODE CCppCodeGenerator::OnGetParameterTypeQName() -{ - return WriteCString(GetCurrentParameter()->GetCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetSizeIsIndex() -{ - // should never get called - ATLASSERT( FALSE ); - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetCurrentParameterIndex() -{ - if (m_writeHelper.Write(m_nCntr++) != FALSE) - { - return HTTP_SUCCESS; - } - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnResetParameterIndex() -{ - // nothing to do here on the client side - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnNotIsRetval() -{ - // always true on the client side - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionNameHashW() -{ - return GetHashW(GetCurrentFunction()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionResultNameHashW() -{ - return GetHashW(GetCurrentFunction()->GetResponseName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionResultName() -{ - return WriteCString(GetCurrentFunction()->GetResponseName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionSendName() -{ - return WriteCString(GetCurrentFunction()->GetSendName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetExpectedParameterCount() -{ - int nCnt = 0; - while (OnGetNextParameter() == HTTP_SUCCESS) - { - if (OnIsOutParameter() == HTTP_SUCCESS) - { - nCnt++; - } - } - - if (m_writeHelper.Write(nCnt) != FALSE) - { - return HTTP_SUCCESS; - } - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnIsPAD() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_PAD) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsChain() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_CHAIN) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsPID() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_PID) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsDocument() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_DOCUMENT) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsRpc() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_RPC) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsOneWay() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_ONEWAY) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsLiteral() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_LITERAL) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsEncoded() -{ - return (GetCurrentFunction()->GetCallFlags() & CODEFLAG_ENCODED) ? HTTP_SUCCESS : HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetClassName() -{ - return WriteCString(m_pProxy->GetClassName()); -} - -HTTP_CODE CCppCodeGenerator::OnNotIsParameterFixedArray() -{ - return (IsFixedArray(GetCurrentParameter()) == HTTP_SUCCESS) ? HTTP_S_FALSE : HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnNotIsLastParameter() -{ - CCodeFunction *p = GetCurrentFunction(); - POSITION pos = m_currParameterPos; - p->GetNextElement(pos); - if (pos == NULL) - { - return HTTP_S_FALSE; - } - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterFixedArraySize() -{ - CCodeTypedElement *p = GetCurrentParameter(); - if (p->GetDims() != 0) - { - int i = 1; - for (int j=1; j<=p->GetDimension(0); j++) - { - i*= p->GetDimension(j); - } - - if (m_writeHelper.Write(i) != FALSE) - { - return HTTP_SUCCESS; - } - } - return HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetDateTime() -{ - SYSTEMTIME systime; - SYSTEMTIME loctime; - TIME_ZONE_INFORMATION tz; - memset(&systime, 0x00, sizeof(systime)); - memset(&loctime, 0x00, sizeof(loctime)); - memset(&tz, 0x00, sizeof(tz)); - GetSystemTime(&systime); - GetTimeZoneInformation(&tz); - SystemTimeToTzSpecificLocalTime(&tz, &systime, &loctime); - - char szDate[256]; - int n = sprintf(szDate, "%.02d/%.02d/%d@%.02d:%.02d:%d", - loctime.wMonth, loctime.wDay, loctime.wYear, loctime.wHour, - loctime.wMinute, loctime.wSecond); - - return (m_pStream->WriteStream(szDate, n, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; -} - -HTTP_CODE CCppCodeGenerator::OnGetURL() -{ - return WriteCString(m_pProxy->GetAddressUri()); -} - -HTTP_CODE CCppCodeGenerator::OnGetSoapAction() -{ - CStringA m_strSoapAction = GetCurrentFunction()->GetSoapAction(); - return WriteCString(m_strSoapAction); -} - -HTTP_CODE CCppCodeGenerator::OnGetNamespace() -{ - return WriteCString(m_pProxy->GetTargetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnEmitNamespace() -{ - if (m_bEmitNamespace != false) - { - return HTTP_SUCCESS; - } - - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetCppNamespace() -{ - ATLASSERT( m_bEmitNamespace != false ); - - if ((m_szNamespace != NULL) && (*m_szNamespace)) - { - return WriteCString(CStringA(m_szNamespace)); - //return (m_writeHelper.Write(m_szNamespace) == TRUE) ? HTTP_SUCCESS : HTTP_FAIL; - } - - return WriteCString(m_pProxy->GetServiceName()); -} - -HTTP_CODE CCppCodeGenerator::OnClassHasHeaders() -{ - POSITION pos = m_pProxy->GetFirstHeader(); - if (pos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetNextMember() -{ - if (m_currMemberPos == NULL) - { - m_currMemberPos = m_pProxy->GetFirstHeader(); - } - else - { - m_pProxy->GetNextHeader(m_currMemberPos); - } - - if (m_currMemberPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetMemberType() -{ - return GetCppType(GetCurrentMember()); -} - -HTTP_CODE CCppCodeGenerator::OnGetMemberName() -{ - return WriteCString(GetCurrentMember()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetMemberSuffix() -{ - return GetTypeSuffix(GetCurrentMember()); -} - -HTTP_CODE CCppCodeGenerator::OnIsMemberFixedArray() -{ - if (GetCurrentMember()->GetDims() != 0) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsMemberUDT() -{ - if (GetCurrentMember()->GetCodeType() == CODETYPE_STRUCT) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsMemberEnum() -{ - if (GetCurrentMember()->GetCodeType() == CODETYPE_ENUM) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetNextHeader() -{ - CCodeFunction *p = GetCurrentFunction(); - - if (m_currHeaderPos == NULL) - { - m_currHeaderPos = p->GetFirstHeader(); - } - else - { - p->GetNextHeader(m_currHeaderPos); - } - - if (m_currHeaderPos != NULL) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsHeaderFixedArray() -{ - return IsFixedArray(GetCurrentHeader()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderValue() -{ - return WriteCString(GetCurrentHeader()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderDimsDecl() -{ - return GetDimsDecl(GetCurrentHeader()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderHashW() -{ - return GetHashW(GetCurrentHeader()->GetName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderAtlSoapType() -{ - return GetAtlSoapType(GetCurrentHeader()); -} - -HTTP_CODE CCppCodeGenerator::OnIsInHeader() -{ - if (GetCurrentHeader()->GetFlags() & CODEFLAG_IN) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsOutHeader() -{ - if (GetCurrentHeader()->GetFlags() & CODEFLAG_OUT) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsRequiredHeader() -{ - if (GetCurrentHeader()->GetFlags() & CODEFLAG_MUSTUNDERSTAND) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsHeaderNullable() -{ - if (GetCurrentHeader()->GetXSDType() == XSDTYPE_STRING) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnIsHeaderUDT() -{ - return IsUDT(GetCurrentHeader()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderTypeQName() -{ - return WriteCString(GetCurrentHeader()->GetCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetExpectedHeaderCount() -{ - CCodeFunction *p = GetCurrentFunction(); - POSITION pos = p->GetFirstHeader(); - int nCnt = 0; - while (pos != NULL) - { - CCodeTypedElement *pElem = p->GetNextHeader(pos); - if (pElem->GetFlags() & CODEFLAG_MUSTUNDERSTAND) - { - nCnt++; - } - } - - m_writeHelper << nCnt; - - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnHeaderHasNamespace() -{ - if (GetCurrentHeader()->GetNamespace().GetLength() != 0) - { - return HTTP_SUCCESS; - } - - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderNamespace() -{ - return WriteCString(GetCurrentHeader()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderNamespaceHashW() -{ - return GetHashW(GetCurrentHeader()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionIndex() -{ - m_writeHelper << m_nFuncIndex; - return HTTP_SUCCESS; -} - -HTTP_CODE CCppCodeGenerator::OnEmitPragma() -{ - if (m_bPragma != false) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumNamespaceHashW() -{ - return GetHashW(GetCurrentEnum()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnEnumHasUniqueNamespace() -{ - if (GetCurrentEnum()->GetNamespace() != m_pProxy->GetTargetNamespace()) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumNamespace() -{ - return WriteCString(GetCurrentEnum()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructNamespaceHashW() -{ - return GetHashW(GetCurrentStruct()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnStructHasUniqueNamespace() -{ - if (GetCurrentStruct()->GetNamespace() != m_pProxy->GetTargetNamespace()) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} - -HTTP_CODE CCppCodeGenerator::OnGetStructNamespace() -{ - return WriteCString(GetCurrentStruct()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionNamespaceHashW() -{ - return GetHashW(GetCurrentFunction()->GetNamespace()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionNamespace() -{ - return WriteCString(GetCurrentFunction()->GetNamespace()); -} - -// safe-naming stuffs - -HTTP_CODE CCppCodeGenerator::OnGetHeaderTypeCppQName() -{ - return WriteCString(GetCurrentHeader()->GetSafeCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetMemberCppType() -{ - return GetSafeCppType(GetCurrentMember()); -} - -HTTP_CODE CCppCodeGenerator::OnGetMemberCppName() -{ - return WriteCString(GetCurrentMember()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterTypeCppQName() -{ - return WriteCString(GetCurrentParameter()->GetSafeCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetFunctionCppName() -{ - return WriteCString(GetCurrentFunction()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterCppName() -{ - CCodeTypedElement *p = GetCurrentParameter(); - if (p->GetName() == "return") - { - return (m_pStream->WriteStream("__retval", sizeof("__retval")-1, NULL) == S_OK) ? - HTTP_SUCCESS : HTTP_FAIL; - } - - return WriteCString(GetCurrentParameter()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetParameterCppType() -{ - return GetSafeCppType(GetCurrentParameter()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldCppName() -{ - return WriteCString(GetCurrentStructField()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructCppQName() -{ - return WriteCString(GetCurrentStruct()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructCppName() -{ - return WriteCString(GetCurrentStruct()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructSafeCppQName() -{ - return WriteCString(GetCurrentStruct()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldCppType() -{ - return GetSafeCppType(GetCurrentStructField()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumCppName() -{ - return WriteCString(GetCurrentEnum()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumSafeCppQName() -{ - return WriteCString(GetCurrentEnum()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumElementCppName() -{ - return WriteCString(GetCurrentEnumElement()->GetSafeCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetStructFieldTypeSafeCppQName() -{ - return WriteCString(GetCurrentStructField()->GetSafeCodeTypeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetHeaderCppValue() -{ - return WriteCString(GetCurrentHeader()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGetEnumCppQName() -{ - return WriteCString(GetCurrentEnum()->GetSafeName()); -} - -HTTP_CODE CCppCodeGenerator::OnGenProxy() -{ - if (m_bGenProxy != false) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; -} diff --git a/ATL90/source/SProxy/CppCodeGenerator.h b/ATL90/source/SProxy/CppCodeGenerator.h deleted file mode 100644 index fcf7e62..0000000 --- a/ATL90/source/SProxy/CppCodeGenerator.h +++ /dev/null @@ -1,853 +0,0 @@ -// -// CppCodeGenerator.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "CodeTypes.h" - -struct CXSDEntry -{ - char * szType; - int cchType; - char * szCppType; - int cchCppType; -}; - -extern bool g_bUseWchar_t; - -#define DECLARE_XSD_ENTRY(__name, __cppType) \ - { __name, sizeof(__name)-1, __cppType, sizeof(__cppType)-1 }, - -extern __declspec(selectany) const CXSDEntry g_soapTypes[] = -{ - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_BOOLEAN", "bool") - DECLARE_XSD_ENTRY("SOAPTYPE_FLOAT", "float") - DECLARE_XSD_ENTRY("SOAPTYPE_DOUBLE", "double") - DECLARE_XSD_ENTRY("SOAPTYPE_DECIMAL", "double") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_DURATION", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_HEXBINARY", "ATLSOAP_BLOB") - DECLARE_XSD_ENTRY("SOAPTYPE_BASE64BINARY", "ATLSOAP_BLOB") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_ANYURI", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_ID", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_IDREF", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_ENTITY", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NOTATION", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_QNAME", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NORMALIZEDSTRING", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_TOKEN", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_LANGUAGE", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_IDREFS", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_ENTITIES", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NMTOKEN", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NMTOKENS", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NAME", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_NCNAME", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_INTEGER", "__int64") - DECLARE_XSD_ENTRY("SOAPTYPE_NONPOSITIVEINTEGER", "__int64") - DECLARE_XSD_ENTRY("SOAPTYPE_NEGATIVEINTEGER", "__int64") - DECLARE_XSD_ENTRY("SOAPTYPE_LONG", "__int64") - DECLARE_XSD_ENTRY("SOAPTYPE_INT", "int") - DECLARE_XSD_ENTRY("SOAPTYPE_SHORT", "short") - DECLARE_XSD_ENTRY("SOAPTYPE_BYTE", "char") - DECLARE_XSD_ENTRY("SOAPTYPE_NONNEGATIVEINTEGER", "unsigned __int64") - DECLARE_XSD_ENTRY("SOAPTYPE_UNSIGNEDLONG", "unsigned __int64") - DECLARE_XSD_ENTRY("SOAPTYPE_UNSIGNEDINT", "unsigned int") - DECLARE_XSD_ENTRY("SOAPTYPE_UNSIGNEDSHORT", "wchar_t") - DECLARE_XSD_ENTRY("SOAPTYPE_UNSIGNEDBYTE", "unsigned char") - DECLARE_XSD_ENTRY("SOAPTYPE_POSITIVEINTEGER", "unsigned __int64") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_DATETIME", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_TIME", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_DATE", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_GMONTH", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_GYEARMONTH", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_GYEAR", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_GMONTHDAY", "BSTR") - DECLARE_XSD_ENTRY("SOAPTYPE_STRING", "BSTR") // DECLARE_XSD_ENTRY("SOAPTYPE_GDAY", "BSTR") -}; - -class CCppCodeGenerator : - public ITagReplacerImpl, - public CComObjectRootEx -{ -public: - - BEGIN_COM_MAP(CCppCodeGenerator) - COM_INTERFACE_ENTRY(IUnknown) - COM_INTERFACE_ENTRY(ITagReplacer) - END_COM_MAP() - -private: - - CCodeProxy *m_pProxy; - - POSITION m_currFunctionPos; - POSITION m_currParameterPos; - POSITION m_currStructPos; - POSITION m_currStructFieldPos; - POSITION m_currEnumPos; - POSITION m_currEnumFieldPos; - POSITION m_currMemberPos; - POSITION m_currHeaderPos; - - CWriteStreamHelper m_writeHelper; - - // generic counter - int m_nCntr; - - // function counter - int m_nFuncIndex; - - bool m_bPragma; - bool m_bEmitNamespace; - bool m_bGenProxy; - - const char *m_szNamespace; - -protected: - -public: - - CCppCodeGenerator(CCodeProxy *pProxy = NULL) - : m_pProxy(pProxy), - m_currFunctionPos(NULL), - m_currParameterPos(NULL), - m_currStructPos(NULL), - m_currStructFieldPos(NULL), - m_currEnumPos(NULL), - m_currEnumFieldPos(NULL), - m_currMemberPos(NULL), - m_currHeaderPos(NULL), - m_nCntr(0), - m_nFuncIndex(-1), - m_bPragma(true), - m_bEmitNamespace(true), - m_szNamespace(NULL), - m_bGenProxy(true) - { - } - - HTTP_CODE WriteCString(const CStringA& str) - { - CStringA strTemp(str); - strTemp.Replace("\\", "\\\\"); - strTemp.Replace("\"", "\\\""); - strTemp.Replace("?", "\\?"); - strTemp.Replace("\r", "\\r"); - strTemp.Replace("\t", "\\t"); - strTemp.Replace("\'", "\\\'"); - strTemp.Replace("\n", "\\n"); - return (m_pStream->WriteStream((LPCSTR) strTemp, strTemp.GetLength(), NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE WriteCString(const CStringW& str) - { - CStringA strTemp(str); - return WriteCString(strTemp); - } - - inline ULONG AtlSoapHashStr(const wchar_t * sz) - { - ULONG nHash = 0; - while (*sz != 0) - { - nHash = (nHash<<5)+nHash+(*sz); - sz++; - } - - return nHash; - } - - HTTP_CODE WriteHash(ULONG nHash) - { - char szBuf[256]; - int nLen = sprintf(szBuf, "0x%.8X", nHash); - return (m_pStream->WriteStream(szBuf, nLen, NULL) == S_OK) ? HTTP_SUCCESS : HTTP_FAIL; - } - - HTTP_CODE GetHashW(LPCSTR szStr) - { - return WriteHash(AtlSoapHashStr( CA2W(szStr) )); - } - - HTTP_CODE GetHashW(LPCWSTR szStr) - { - return WriteHash(AtlSoapHashStr( szStr )); - } - - CCodeEnum * GetCurrentEnum() - { - POSITION pos = m_currEnumPos; - CCodeEnum *p = m_pProxy->GetNextEnum(pos); - - ATLASSERT( p != NULL ); - - return p; - } - - CCodeTypedElement * GetCurrentEnumElement() - { - CCodeEnum * p = GetCurrentEnum(); - - POSITION pos = m_currEnumFieldPos; - CCodeTypedElement *pElem = p->GetNextElement(pos); - - ATLASSERT( pElem != NULL ); - - return pElem; - } - - CCodeStruct * GetCurrentStruct() - { - POSITION pos = m_currStructPos; - CCodeStruct *p = m_pProxy->GetNextStruct(pos); - - ATLASSERT( p != NULL ); - - return p; - } - - CCodeTypedElement * GetCurrentStructField() - { - CCodeStruct * p = GetCurrentStruct(); - - POSITION pos = m_currStructFieldPos; - CCodeTypedElement *pElem = p->GetNextElement(pos); - - ATLASSERT( pElem != NULL ); - - return pElem; - } - - CCodeTypedElement * GetCurrentMember() - { - POSITION pos = m_currMemberPos; - CCodeTypedElement *p = m_pProxy->GetNextHeader(pos); - - ATLASSERT( p != NULL ); - - return p; - } - - HTTP_CODE IsFixedArray(CCodeTypedElement *p) - { - if (p->GetDims() != 0) - { - return HTTP_SUCCESS; - } - return HTTP_S_FALSE; - } - - HTTP_CODE GetDimsDecl(CCodeTypedElement *p) - { - if (p->GetDims() != 0) - { - m_pStream->WriteStream("{", 1, NULL); - for (int i=0; i<=p->GetDimension(0); i++) - { - if ((m_writeHelper.Write(p->GetDimension(i)) == FALSE) || - (S_OK != m_pStream->WriteStream(", ", 2, NULL))) - { - return HTTP_FAIL; - } - } - m_pStream->WriteStream("}", 1, NULL); - } - - return HTTP_SUCCESS; - } - - HTTP_CODE GetAtlSoapType(CCodeTypedElement *p) - { - XSDTYPE xsdType = p->GetXSDType(); - - ATLASSERT( xsdType != XSDTYPE_ERR ); - - if (xsdType != XSDTYPE_UNK) - { - if (SUCCEEDED(m_pStream->WriteStream( - g_soapTypes[xsdType].szType, - g_soapTypes[xsdType].cchType, NULL))) - { - return HTTP_SUCCESS; - } - } - else - { - if (SUCCEEDED(m_pStream->WriteStream("SOAPTYPE_UNK", sizeof("SOAPTYPE_UNK")-1, NULL))) - { - return HTTP_SUCCESS; - } - } - - return HTTP_FAIL; - } - - HTTP_CODE IsUDT(CCodeTypedElement *p) - { - ATLASSERT( p != NULL ); - ATLASSERT( p->GetXSDType() != XSDTYPE_ERR ); - - if (p->GetXSDType() != XSDTYPE_UNK) - { - return HTTP_S_FALSE; - } - return HTTP_SUCCESS; - } - - CCodeFunction * GetCurrentFunction() - { - POSITION pos = m_currFunctionPos; - CCodeFunction *p = m_pProxy->GetNextFunction(pos); - - ATLASSERT( p != NULL ); - - return p; - } - - CCodeTypedElement * GetCurrentParameter() - { - CCodeFunction * p = GetCurrentFunction(); - - POSITION pos = m_currParameterPos; - CCodeTypedElement *pElem = p->GetNextElement(pos); - - ATLASSERT( pElem != NULL ); - - return pElem; - } - - CCodeTypedElement * GetCurrentHeader() - { - CCodeFunction * p = GetCurrentFunction(); - - POSITION pos = m_currHeaderPos; - CCodeTypedElement *pElem = p->GetNextHeader(pos); - - ATLASSERT( pElem != NULL ); - - return pElem; - } - - HTTP_CODE GetCppType(CCodeTypedElement *p) - { - XSDTYPE xsdType = p->GetXSDType(); - - ATLASSERT( xsdType != XSDTYPE_ERR ); - - if (xsdType != XSDTYPE_UNK) - { - if (!g_bUseWchar_t && xsdType == XSDTYPE_UNSIGNEDSHORT) - { - if (SUCCEEDED(m_pStream->WriteStream( - "unsigned short", - sizeof("unsigned short")-1, NULL))) - { - return HTTP_SUCCESS; - } - } - else - { - if (SUCCEEDED(m_pStream->WriteStream( - g_soapTypes[xsdType].szCppType, - g_soapTypes[xsdType].cchCppType, NULL))) - { - return HTTP_SUCCESS; - } - } - } - else - { - return WriteCString(p->GetCodeTypeName()); - } - - return HTTP_FAIL; - } - - HTTP_CODE GetSafeCppType(CCodeTypedElement *p) - { - XSDTYPE xsdType = p->GetXSDType(); - - ATLASSERT( xsdType != XSDTYPE_ERR ); - - if (xsdType != XSDTYPE_UNK) - { - if (!g_bUseWchar_t && xsdType == XSDTYPE_UNSIGNEDSHORT) - { - if (SUCCEEDED(m_pStream->WriteStream( - "unsigned short", - sizeof("unsigned short")-1, NULL))) - { - return HTTP_SUCCESS; - } - } - else - { - if (SUCCEEDED(m_pStream->WriteStream( - g_soapTypes[xsdType].szCppType, - g_soapTypes[xsdType].cchCppType, NULL))) - { - return HTTP_SUCCESS; - } - } - } - else - { - return WriteCString(p->GetSafeCodeTypeName()); - } - - return HTTP_FAIL; - } - - HTTP_CODE GetTypeSuffix(CCodeTypedElement *p) - { - if (p->GetDims() == 0) - { - return HTTP_SUCCESS; - } - - HTTP_CODE hcErr = HTTP_SUCCESS; - for (int i=1; (i<=p->GetDimension(0)) && (hcErr == HTTP_SUCCESS); i++) - { - hcErr = HTTP_FAIL; - if (SUCCEEDED(m_pStream->WriteStream("[", 1, NULL))) - { - if (m_writeHelper.Write(p->GetDimension(i)) != FALSE) - { - m_pStream->WriteStream("]", 1, NULL); - hcErr = HTTP_SUCCESS; - } - } - } - - return hcErr; - } - - HTTP_CODE OnGetNextEnum(); - HTTP_CODE OnGetEnumSafeQName(); - HTTP_CODE OnGetNextEnumElement(); - HTTP_CODE OnGetEnumElementHashW(); - HTTP_CODE OnGetEnumElementName(); - HTTP_CODE OnGetEnumElementValue(); - HTTP_CODE OnResetCounter(); - HTTP_CODE OnGetEnumNameHashW(); - HTTP_CODE OnGetEnumName(); - HTTP_CODE OnGetEnumQName(); - HTTP_CODE OnGetEnumCppName(); - HTTP_CODE OnGetEnumSafeCppQName(); - HTTP_CODE OnGetEnumElementCppName(); - HTTP_CODE OnGetEnumCppQName(); - - HTTP_CODE OnGetNextStruct(); - HTTP_CODE OnGetStructSafeQName(); - HTTP_CODE OnGetNextStructField(); - HTTP_CODE OnGetStructFieldType(); - HTTP_CODE OnGetStructFieldSuffix(); - HTTP_CODE OnGetStructSafeCppQName(); - HTTP_CODE OnGetStructFieldCppType(); - - HTTP_CODE OnIsFieldNullable(); - - HTTP_CODE OnIsFieldFixedArray(); - HTTP_CODE OnGetStructFieldName(); - HTTP_CODE OnGetStructFieldDimsDecl(); - HTTP_CODE OnGetStructFieldHashW(); - HTTP_CODE OnGetStructFieldAtlSoapType(); - HTTP_CODE OnGetStructQName(); - HTTP_CODE OnIsFieldUDT(); - HTTP_CODE OnGetStructFieldTypeSafeQName(); - HTTP_CODE OnGetStructNameHashW(); - HTTP_CODE OnGetStructName(); - HTTP_CODE OnGetStructFieldCount(); - HTTP_CODE OnGetStructFieldCppName(); - HTTP_CODE OnGetStructCppQName(); - HTTP_CODE OnGetStructCppName(); - HTTP_CODE OnGetStructFieldTypeSafeCppQName(); - - HTTP_CODE OnGetNextFunction(); - HTTP_CODE OnGetNextParameter(); - - HTTP_CODE OnIsParameterNullable(); - - HTTP_CODE OnIsParameterFixedArray(); - HTTP_CODE OnGetClassSafeQName(); - HTTP_CODE OnGetFunctionName(); - HTTP_CODE OnGetParameterName(); - HTTP_CODE OnGetParameterNameRaw(); - HTTP_CODE OnGetParameterDimsDecl(); - HTTP_CODE OnGetParameterType(); - HTTP_CODE OnIsParameterDynamicArray(); - HTTP_CODE OnGetParameterSuffix(); - HTTP_CODE OnIsInParameter(); - HTTP_CODE OnHasRetval(); - HTTP_CODE OnGetRetval(); - HTTP_CODE OnGetParameterHashW(); - HTTP_CODE OnGetFunctionCppName(); - HTTP_CODE OnGetParameterCppName(); - HTTP_CODE OnGetParameterCppType(); - - HTTP_CODE OnGetParameterAtlSoapType(); - HTTP_CODE OnIsOutParameter(); - HTTP_CODE OnIsParameterUDT(); - - HTTP_CODE OnGetParameterTypeQName(); - HTTP_CODE OnGetSizeIsIndex(); - HTTP_CODE OnGetCurrentParameterIndex(); - HTTP_CODE OnResetParameterIndex(); - HTTP_CODE OnNotIsRetval(); - HTTP_CODE OnGetFunctionNameHashW(); - HTTP_CODE OnGetFunctionResultNameHashW(); - HTTP_CODE OnGetFunctionResultName(); - HTTP_CODE OnGetFunctionSendName(); - HTTP_CODE OnGetExpectedParameterCount(); - HTTP_CODE OnGetParameterTypeCppQName(); - - HTTP_CODE OnIsPAD(); - HTTP_CODE OnIsChain(); - HTTP_CODE OnIsPID(); - HTTP_CODE OnIsDocument(); - HTTP_CODE OnIsRpc(); - HTTP_CODE OnIsLiteral(); - HTTP_CODE OnIsEncoded(); - HTTP_CODE OnIsOneWay(); - - HTTP_CODE OnGetClassName(); - HTTP_CODE OnNotIsParameterFixedArray(); - HTTP_CODE OnNotIsLastParameter(); - HTTP_CODE OnGetParameterFixedArraySize(); - HTTP_CODE OnGetDateTime(); - HTTP_CODE OnGetURL(); - HTTP_CODE OnGetSoapAction(); - HTTP_CODE OnGetNamespace(); - HTTP_CODE OnEmitNamespace(); - HTTP_CODE OnGetCppNamespace(); - HTTP_CODE OnClassHasHeaders(); - HTTP_CODE OnGetNextMember(); - HTTP_CODE OnGetMemberType(); - HTTP_CODE OnGetMemberName(); - HTTP_CODE OnGetMemberSuffix(); - HTTP_CODE OnIsMemberFixedArray(); - HTTP_CODE OnIsMemberUDT(); - HTTP_CODE OnIsMemberEnum(); - HTTP_CODE OnGetMemberCppType(); - HTTP_CODE OnGetMemberCppName(); - - HTTP_CODE OnGetNextHeader(); - HTTP_CODE OnIsHeaderFixedArray(); - HTTP_CODE OnGetHeaderValue(); - HTTP_CODE OnGetHeaderDimsDecl(); - HTTP_CODE OnGetHeaderHashW(); - HTTP_CODE OnGetHeaderAtlSoapType(); - HTTP_CODE OnGetHeaderCppValue(); - - HTTP_CODE OnIsHeaderNullable(); - HTTP_CODE OnIsInHeader(); - HTTP_CODE OnIsOutHeader(); - HTTP_CODE OnIsRequiredHeader(); - HTTP_CODE OnIsHeaderUDT(); - HTTP_CODE OnGetHeaderTypeQName(); - HTTP_CODE OnGetExpectedHeaderCount(); - HTTP_CODE OnHeaderHasNamespace(); - HTTP_CODE OnGetHeaderNamespace(); - HTTP_CODE OnGetHeaderNamespaceHashW(); - - - HTTP_CODE OnGetFunctionIndex(); - HTTP_CODE OnEmitPragma(); - HTTP_CODE OnGetEnumNamespaceHashW(); - HTTP_CODE OnEnumHasUniqueNamespace(); - HTTP_CODE OnGetEnumNamespace(); - HTTP_CODE OnGetStructNamespaceHashW(); - HTTP_CODE OnStructHasUniqueNamespace(); - HTTP_CODE OnGetStructNamespace(); - HTTP_CODE OnGetFunctionNamespaceHashW(); - HTTP_CODE OnGetFunctionNamespace(); - HTTP_CODE OnGetHeaderTypeCppQName(); - - HTTP_CODE OnIsFieldDynamicArray(); - HTTP_CODE OnIsFieldDynamicArrayWrapper(); - HTTP_CODE OnIsFieldSizeIs(); - HTTP_CODE OnFieldHasSizeIs(); - HTTP_CODE OnGetFieldSizeIsName(); - HTTP_CODE OnGetFieldSizeIsIndex(); - HTTP_CODE OnGetCurrentFieldIndex(); - - HTTP_CODE OnGenProxy(); - - BEGIN_REPLACEMENT_METHOD_MAP(CCppCodeGenerator) - REPLACEMENT_METHOD_ENTRY("GetNextEnum", OnGetNextEnum) - REPLACEMENT_METHOD_ENTRY("GetEnumSafeQName", OnGetEnumSafeQName) - REPLACEMENT_METHOD_ENTRY("GetNextEnumElement", OnGetNextEnumElement) - REPLACEMENT_METHOD_ENTRY("GetEnumElementHashW", OnGetEnumElementHashW) - REPLACEMENT_METHOD_ENTRY("GetEnumElementName", OnGetEnumElementName) - REPLACEMENT_METHOD_ENTRY("GetEnumElementValue", OnGetEnumElementValue) - REPLACEMENT_METHOD_ENTRY("ResetCounter", OnResetCounter) - REPLACEMENT_METHOD_ENTRY("GetEnumNameHashW", OnGetEnumNameHashW) - REPLACEMENT_METHOD_ENTRY("GetEnumName", OnGetEnumName) - REPLACEMENT_METHOD_ENTRY("GetEnumQName", OnGetEnumQName) - - REPLACEMENT_METHOD_ENTRY("GetNextStruct", OnGetNextStruct) - REPLACEMENT_METHOD_ENTRY("GetStructSafeQName", OnGetStructSafeQName) - REPLACEMENT_METHOD_ENTRY("GetNextStructField", OnGetNextStructField) - REPLACEMENT_METHOD_ENTRY("GetStructFieldType", OnGetStructFieldType) - REPLACEMENT_METHOD_ENTRY("GetStructFieldSuffix", OnGetStructFieldSuffix) - - REPLACEMENT_METHOD_ENTRY("IsFieldNullable", OnIsFieldNullable) - - REPLACEMENT_METHOD_ENTRY("IsFieldFixedArray", OnIsFieldFixedArray) - REPLACEMENT_METHOD_ENTRY("GetStructFieldName", OnGetStructFieldName) - REPLACEMENT_METHOD_ENTRY("GetStructFieldDimsDecl", OnGetStructFieldDimsDecl) - REPLACEMENT_METHOD_ENTRY("GetStructFieldHashW", OnGetStructFieldHashW) - REPLACEMENT_METHOD_ENTRY("GetStructFieldName", OnGetStructFieldName) - REPLACEMENT_METHOD_ENTRY("GetStructFieldAtlSoapType", OnGetStructFieldAtlSoapType) - REPLACEMENT_METHOD_ENTRY("GetStructQName", OnGetStructQName) - REPLACEMENT_METHOD_ENTRY("IsFieldUDT", OnIsFieldUDT) - REPLACEMENT_METHOD_ENTRY("GetStructFieldTypeSafeQName", OnGetStructFieldTypeSafeQName) - REPLACEMENT_METHOD_ENTRY("GetStructNameHashW", OnGetStructNameHashW) - REPLACEMENT_METHOD_ENTRY("GetStructName", OnGetStructName) - REPLACEMENT_METHOD_ENTRY("GetStructFieldCount", OnGetStructFieldCount) - - REPLACEMENT_METHOD_ENTRY("GetNextFunction", OnGetNextFunction) - REPLACEMENT_METHOD_ENTRY("GetNextParameter", OnGetNextParameter) - - REPLACEMENT_METHOD_ENTRY("IsParameterNullable", OnIsParameterNullable) - - REPLACEMENT_METHOD_ENTRY("IsParameterFixedArray", OnIsParameterFixedArray) - REPLACEMENT_METHOD_ENTRY("GetClassSafeQName", OnGetClassSafeQName) - REPLACEMENT_METHOD_ENTRY("GetFunctionName", OnGetFunctionName) - REPLACEMENT_METHOD_ENTRY("GetParameterName", OnGetParameterName) - REPLACEMENT_METHOD_ENTRY("GetParameterNameRaw", OnGetParameterNameRaw) - REPLACEMENT_METHOD_ENTRY("GetParameterDimsDecl", OnGetParameterDimsDecl) - REPLACEMENT_METHOD_ENTRY("GetParameterType", OnGetParameterType) - REPLACEMENT_METHOD_ENTRY("IsParameterDynamicArray", OnIsParameterDynamicArray) - REPLACEMENT_METHOD_ENTRY("GetParameterSuffix", OnGetParameterSuffix) - REPLACEMENT_METHOD_ENTRY("IsInParameter", OnIsInParameter) - REPLACEMENT_METHOD_ENTRY("HasRetval", OnHasRetval) - REPLACEMENT_METHOD_ENTRY("GetRetval", OnGetRetval) - REPLACEMENT_METHOD_ENTRY("GetParameterHashW", OnGetParameterHashW) - - REPLACEMENT_METHOD_ENTRY("GetParameterAtlSoapType", OnGetParameterAtlSoapType) - REPLACEMENT_METHOD_ENTRY("IsOutParameter", OnIsOutParameter) - REPLACEMENT_METHOD_ENTRY("IsParameterUDT", OnIsParameterUDT) - - REPLACEMENT_METHOD_ENTRY("GetParameterTypeQName", OnGetParameterTypeQName) - REPLACEMENT_METHOD_ENTRY("GetSizeIsIndex", OnGetSizeIsIndex) - REPLACEMENT_METHOD_ENTRY("GetCurrentParameterIndex", OnGetCurrentParameterIndex) - REPLACEMENT_METHOD_ENTRY("ResetParameterIndex", OnResetParameterIndex) - REPLACEMENT_METHOD_ENTRY("NotIsRetval", OnNotIsRetval) - REPLACEMENT_METHOD_ENTRY("GetFunctionNameHashW", OnGetFunctionNameHashW) - REPLACEMENT_METHOD_ENTRY("GetFunctionResultNameHashW", OnGetFunctionResultNameHashW) - REPLACEMENT_METHOD_ENTRY("GetFunctionResultName", OnGetFunctionResultName) - REPLACEMENT_METHOD_ENTRY("GetFunctionSendName", OnGetFunctionSendName) - REPLACEMENT_METHOD_ENTRY("GetExpectedParameterCount", OnGetExpectedParameterCount) - - REPLACEMENT_METHOD_ENTRY("IsPAD", OnIsPAD) - REPLACEMENT_METHOD_ENTRY("IsChain", OnIsChain) - REPLACEMENT_METHOD_ENTRY("IsPID", OnIsPID) - REPLACEMENT_METHOD_ENTRY("IsDocument", OnIsDocument) - REPLACEMENT_METHOD_ENTRY("IsRpc", OnIsRpc) - REPLACEMENT_METHOD_ENTRY("IsLiteral", OnIsLiteral) - REPLACEMENT_METHOD_ENTRY("IsEncoded", OnIsEncoded) - REPLACEMENT_METHOD_ENTRY("IsOneWay", OnIsOneWay) - - REPLACEMENT_METHOD_ENTRY("GetClassName", OnGetClassName) - REPLACEMENT_METHOD_ENTRY("NotIsParameterFixedArray", OnNotIsParameterFixedArray) - REPLACEMENT_METHOD_ENTRY("NotIsLastParameter", OnNotIsLastParameter) - REPLACEMENT_METHOD_ENTRY("GetParameterFixedArraySize", OnGetParameterFixedArraySize) - REPLACEMENT_METHOD_ENTRY("GetSoapAction", OnGetSoapAction) - - REPLACEMENT_METHOD_ENTRY("GetDateTime", OnGetDateTime) - REPLACEMENT_METHOD_ENTRY("GetURL", OnGetURL) - REPLACEMENT_METHOD_ENTRY("GetNamespace", OnGetNamespace) - REPLACEMENT_METHOD_ENTRY("EmitNamespace", OnEmitNamespace) - REPLACEMENT_METHOD_ENTRY("GetCppNamespace", OnGetCppNamespace) - - REPLACEMENT_METHOD_ENTRY("ClassHasHeaders", OnClassHasHeaders) - REPLACEMENT_METHOD_ENTRY("GetNextMember", OnGetNextMember) - REPLACEMENT_METHOD_ENTRY("GetMemberType", OnGetMemberType) - REPLACEMENT_METHOD_ENTRY("GetMemberName", OnGetMemberName) - REPLACEMENT_METHOD_ENTRY("GetMemberSuffix", OnGetMemberSuffix) - REPLACEMENT_METHOD_ENTRY("IsMemberFixedArray", OnIsMemberFixedArray) - REPLACEMENT_METHOD_ENTRY("IsMemberUDT", OnIsMemberUDT) - REPLACEMENT_METHOD_ENTRY("IsMemberEnum", OnIsMemberEnum) - - REPLACEMENT_METHOD_ENTRY("GetNextHeader", OnGetNextHeader) - REPLACEMENT_METHOD_ENTRY("IsHeaderFixedArray", OnIsHeaderFixedArray) - REPLACEMENT_METHOD_ENTRY("GetHeaderValue", OnGetHeaderValue) - REPLACEMENT_METHOD_ENTRY("GetHeaderDimsDecl", OnGetHeaderDimsDecl) - REPLACEMENT_METHOD_ENTRY("GetHeaderHashW", OnGetHeaderHashW) - REPLACEMENT_METHOD_ENTRY("GetHeaderAtlSoapType", OnGetHeaderAtlSoapType) - - REPLACEMENT_METHOD_ENTRY("IsHeaderNullable", OnIsHeaderNullable) - REPLACEMENT_METHOD_ENTRY("IsInHeader", OnIsInHeader) - REPLACEMENT_METHOD_ENTRY("IsOutHeader", OnIsOutHeader) - REPLACEMENT_METHOD_ENTRY("IsRequiredHeader", OnIsRequiredHeader) - REPLACEMENT_METHOD_ENTRY("IsHeaderUDT", OnIsHeaderUDT) - REPLACEMENT_METHOD_ENTRY("GetHeaderTypeQName", OnGetHeaderTypeQName) - REPLACEMENT_METHOD_ENTRY("GetExpectedHeaderCount", OnGetExpectedHeaderCount) - REPLACEMENT_METHOD_ENTRY("GetFunctionIndex", OnGetFunctionIndex) - REPLACEMENT_METHOD_ENTRY("HeaderHasNamespace", OnHeaderHasNamespace) - REPLACEMENT_METHOD_ENTRY("GetHeaderNamespace", OnGetHeaderNamespace) - REPLACEMENT_METHOD_ENTRY("GetHeaderNamespaceHashW", OnGetHeaderNamespaceHashW) - - - REPLACEMENT_METHOD_ENTRY("EmitPragma", OnEmitPragma) - - REPLACEMENT_METHOD_ENTRY("GetEnumNamespaceHashW", OnGetEnumNamespaceHashW) - REPLACEMENT_METHOD_ENTRY("EnumHasUniqueNamespace", OnEnumHasUniqueNamespace) - REPLACEMENT_METHOD_ENTRY("GetEnumNamespace", OnGetEnumNamespace) - - REPLACEMENT_METHOD_ENTRY("GetStructNamespaceHashW", OnGetStructNamespaceHashW) - REPLACEMENT_METHOD_ENTRY("StructHasUniqueNamespace", OnStructHasUniqueNamespace) - REPLACEMENT_METHOD_ENTRY("GetStructNamespace", OnGetStructNamespace) - REPLACEMENT_METHOD_ENTRY("GetFunctionNamespaceHashW", OnGetFunctionNamespaceHashW) - REPLACEMENT_METHOD_ENTRY("GetFunctionNamespace", OnGetFunctionNamespace) - - REPLACEMENT_METHOD_ENTRY("IsFieldSizeIs", OnIsFieldSizeIs) - REPLACEMENT_METHOD_ENTRY("IsFieldDynamicArray", OnIsFieldDynamicArray) - REPLACEMENT_METHOD_ENTRY("IsFieldDynamicArrayWrapper", OnIsFieldDynamicArrayWrapper) - REPLACEMENT_METHOD_ENTRY("FieldHasSizeIs", OnFieldHasSizeIs) - REPLACEMENT_METHOD_ENTRY("GetFieldSizeIsIndex", OnGetFieldSizeIsIndex) - REPLACEMENT_METHOD_ENTRY("GetCurrentFieldIndex", OnGetCurrentFieldIndex) - REPLACEMENT_METHOD_ENTRY("GetFieldSizeIsName", OnGetFieldSizeIsName) - - // safe-naming functions - REPLACEMENT_METHOD_ENTRY("GetHeaderTypeCppQName", OnGetHeaderTypeCppQName) - REPLACEMENT_METHOD_ENTRY("GetMemberCppType", OnGetMemberCppType) - REPLACEMENT_METHOD_ENTRY("GetMemberCppName", OnGetMemberCppName) - REPLACEMENT_METHOD_ENTRY("GetParameterTypeCppQName", OnGetParameterTypeCppQName) - REPLACEMENT_METHOD_ENTRY("GetFunctionCppName", OnGetFunctionCppName) - REPLACEMENT_METHOD_ENTRY("GetParameterCppName", OnGetParameterCppName) - REPLACEMENT_METHOD_ENTRY("GetParameterCppType", OnGetParameterCppType) - REPLACEMENT_METHOD_ENTRY("GetStructFieldCppName", OnGetStructFieldCppName) - REPLACEMENT_METHOD_ENTRY("GetStructCppQName", OnGetStructCppQName) - REPLACEMENT_METHOD_ENTRY("GetStructCppName", OnGetStructCppName) - REPLACEMENT_METHOD_ENTRY("GetStructSafeCppQName", OnGetStructSafeCppQName) - REPLACEMENT_METHOD_ENTRY("GetStructFieldCppType", OnGetStructFieldCppType) - REPLACEMENT_METHOD_ENTRY("GetEnumCppName", OnGetEnumCppName) - REPLACEMENT_METHOD_ENTRY("GetEnumSafeCppQName", OnGetEnumSafeCppQName) - REPLACEMENT_METHOD_ENTRY("GetEnumElementCppName", OnGetEnumElementCppName) - REPLACEMENT_METHOD_ENTRY("GetStructFieldTypeSafeCppQName", OnGetStructFieldTypeSafeCppQName) - REPLACEMENT_METHOD_ENTRY("GetHeaderCppValue", OnGetHeaderCppValue) - REPLACEMENT_METHOD_ENTRY("GetEnumCppQName", OnGetEnumCppQName) - - REPLACEMENT_METHOD_ENTRY("GenProxy", OnGenProxy) - END_REPLACEMENT_METHOD_MAP() - - HRESULT Generate(LPCWSTR wszFile, CCodeProxy *pProxy, bool bPragma, bool bNoClobber, bool bEmitNamespace, bool bGenProxy, const char *szNamespace); -}; - - -//////////////////////////////////////////////////////////////////////////////// -// -// CWriteStreamOnFileA -// -//////////////////////////////////////////////////////////////////////////////// - -class CWriteStreamOnFileA : public IWriteStream -{ -private: - - HANDLE m_hFile; - -public: - - CWriteStreamOnFileA() - :m_hFile(INVALID_HANDLE_VALUE) - { - } - - ~CWriteStreamOnFileA() - { - if (m_hFile != INVALID_HANDLE_VALUE) - { - CloseHandle(m_hFile); - } - } - - HRESULT Init(LPCWSTR wszFile, DWORD dwCreationDisposition = CREATE_NEW) - { - if ((wszFile == NULL) || (*wszFile == L'\0')) - { - return E_INVALIDARG; - } - - m_hFile = CreateFileW(wszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL, - dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); - - if (m_hFile == INVALID_HANDLE_VALUE) - { - return AtlHresultFromLastError(); - } - - return S_OK; - } - - HRESULT WriteStream(LPCSTR szOut, int nLen, LPDWORD pdwWritten) - { - ATLASSERT( szOut != NULL ); - ATLASSERT( m_hFile != INVALID_HANDLE_VALUE ); - - if (nLen < 0) - { - nLen = (int) strlen(szOut); - } - - DWORD dwWritten = 0; - if (WriteFile(m_hFile, szOut, nLen, &dwWritten, NULL) != FALSE) - { - if (pdwWritten != NULL) - { - *pdwWritten = dwWritten; - } - - return S_OK; - } - - return AtlHresultFromLastError(); - } - - HRESULT FlushStream() - { - ATLASSERT( m_hFile != INVALID_HANDLE_VALUE ); - - if (FlushFileBuffers(m_hFile) != FALSE) - { - return S_OK; - } - - return AtlHresultFromLastError(); - } -}; // class CWriteStreamOnFileA - -#ifdef _DEBUG - -class CWriteStreamOnStdout : public IWriteStream -{ -public: - - HRESULT WriteStream(LPCSTR szOut, int nLen, LPDWORD pdwWritten) - { - ATLASSERT( szOut != NULL ); - - if (nLen < 0) - { - nLen = (int) strlen(szOut); - } - - printf("%.*s", nLen, szOut); - return S_OK; - } - - HRESULT FlushStream() - { - return S_OK; - } - -}; // class CWriteStreamOnStdout - -#endif diff --git a/ATL90/source/SProxy/CppKeywordTable.h b/ATL90/source/SProxy/CppKeywordTable.h deleted file mode 100644 index ef43ec7..0000000 --- a/ATL90/source/SProxy/CppKeywordTable.h +++ /dev/null @@ -1,424 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include - - -class CCppKeywordLookup -{ -public: - - struct HashNode - { - wchar_t * key; - unsigned long hash; - size_t link; - size_t entries; - char data; - }; - -protected: - const static HashNode m_data[352]; - const static size_t m_size = 320; - const static size_t m_tableSize = 154; - -public: - - static unsigned long Hash( const wchar_t * sz ) - { - unsigned long hash; - hash = 0; - while ( *sz != 0 ) - { - hash = (hash<<3)+hash+(*sz); - sz++; - } - return hash; - } - - static const HashNode * Lookup( const wchar_t * key ) - { - unsigned long hash; - const HashNode * p; - unsigned long index; - hash = Hash(key); - index = hash % m_size; - p = &m_data[index]; - while (p->key) - { - if (p->hash==hash && !wcscmp(key, p->key)) - break; - - if (p->link) - { - p = &m_data[p->link]; - } - else - { - p = 0; - break; - } - } - - if (p && p->key) - return p; - return NULL; - } -}; - -const CCppKeywordLookup ::HashNode CCppKeywordLookup ::m_data[352] = -{ - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__value", 0x03650243, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__builtin_isfloat", 0x951d2c86, 0, 0, 0 }, - { L"__w64", 0x000ab907, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__cdecl", 0x03632109, 0, 0, 0 }, - { L"explicit", 0x2109580a, 0, 0, 0 }, - { L"int", 0x0000258b, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__int16", 0x0363da10, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"new", 0x000026d2, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__if_not_exists", 0x38c9ff94, 0, 0, 0 }, - { L"__stdcall", 0x12ed8495, 0, 0, 0 }, - { L"__restrict", 0xa9a671d6, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"const_cast", 0x2e5e6419, 0, 0, 0 }, - { L"__uuidof", 0x1e8e211a, 320, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"unsigned", 0x254a5cdd, 0, 0, 0 }, - { L"extern", 0x006872de, 321, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"wchar_t", 0x0429d5e0, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"namespace", 0x39bf91e5, 322, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"const", 0x000b4ca7, 323, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"asm", 0x00002329, 0, 0, 0 }, - { L"__thiscall", 0xaa47736a, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"do", 0x000003f3, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__try", 0x000aba75, 0, 0, 0 }, - { L"xor_eq", 0x0078a2b6, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__nounwind", 0xa8d4dd78, 0, 0, 0 }, - { L"typedef", 0x042628b9, 0, 0, 0 }, - { L"void", 0x0001773a, 324, 1, 0 }, - { L"__int64", 0x0363da3b, 325, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"auto", 0x00013dc1, 0, 0, 0 }, - { L"signed", 0x00736d02, 0, 0, 0 }, - { L"__multiple_inheritance", 0x71a83643, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__FUNCTION__", 0x8057694a, 326, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"operator", 0x2398ea8c, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"catch", 0x000b2613, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__based", 0x03630355, 0, 0, 0 }, - { L"reinterpret_cast", 0x7c1a48d6, 327, 1, 0 }, - { L"if", 0x00000417, 328, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__delegate", 0xa5a0c0d9, 0, 0, 0 }, - { L"switch", 0x0074db5a, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__inline", 0x1e82a7dd, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"for", 0x0000249f, 329, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"cdecl", 0x000b29e3, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"not", 0x00002729, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"private", 0x03fee6eb, 330, 2, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__asm", 0x000ab46f, 0, 0, 0 }, - { L"bitor", 0x000b23b0, 0, 0, 0 }, - { L"goto", 0x00014cf1, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"double", 0x0066a733, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__event", 0x036387f8, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"mutable", 0x03ea253a, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__pragma", 0x1e893cfe, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"friend", 0x0068a040, 332, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__STDC__", 0x1e6bbc82, 0, 0, 0 }, - { L"__TIME__", 0x1e6ba383, 333, 1, 0 }, - { L"template", 0x24b3bc04, 0, 0, 0 }, - { L"_WCHAR_T_DEFINED", 0xe2efb485, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__forceinline", 0x3c22bf8c, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__novtordisp", 0x6bcd510e, 334, 1, 0 }, - { L"__hook", 0x00606b0f, 0, 0, 0 }, - { L"return", 0x00724790, 335, 2, 0 }, - { L"__single_inheritance", 0x22487011, 337, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__LINE__", 0x1e647114, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__resume", 0x1e89f4d7, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"or", 0x00000459, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__sealed", 0x1e8aa51c, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"sizeof", 0x0073a0a0, 0, 0, 0 }, - { L"union", 0x000d1561, 338, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__builtin_alignof", 0x94d63d24, 339, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__wchar_t", 0x12ff08e6, 0, 0, 0 }, - { L"__box", 0x000ab4a7, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"_NATIVE_WCHAR_T_DEFINED", 0xd0434ceb, 0, 0, 0 }, - { L"__assume", 0x1e7c0a6c, 0, 0, 0 }, - { L"register", 0x241bc32d, 0, 0, 0 }, - { L"float", 0x000b90ae, 340, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"long", 0x00015af0, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__abstract", 0xa4b56872, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"enum", 0x000146f5, 341, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__BOOL_DEFINED", 0xb3fb1eb8, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__feacpBreak", 0x92de20ba, 342, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__nodefault", 0xeee80ac0, 0, 0, 0 }, - { L"__identifier", 0xd7188001, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"virtual", 0x04285947, 0, 0, 0 }, - { L"and_eq", 0x0063a808, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"case", 0x00013d0c, 343, 1, 0 }, - { L"break", 0x000b380d, 344, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__super", 0x0364ef15, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__SPREFIX", 0x11c76a17, 0, 0, 0 }, - { L"__gc", 0x00013098, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__CURSOR__", 0x9b9d12da, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"static", 0x007477e0, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"true", 0x000172e8, 0, 0, 0 }, - { L"while", 0x000d3769, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__compileBreak", 0xe0eef3ec, 345, 1, 0 }, - { L"continue", 0x202d692d, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__fastcall", 0xa61a0b70, 0, 0, 0 }, - { L"__declspec", 0xa5997eb1, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"compl", 0x000b4c33, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__finally", 0x127b2e35, 346, 2, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__ptr32", 0x03649df9, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"or_eq", 0x000c837e, 0, 0, 0 }, - { L"__except", 0x1e7ff2bf, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"bitand", 0x00643d02, 0, 0, 0 }, - { L"delete", 0x00658e83, 0, 0, 0 }, - { L"bool", 0x00013e84, 348, 1, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"inline", 0x006af787, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"using", 0x000d238e, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"xor", 0x00002a51, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__nogc", 0x00607bd5, 349, 2, 0 }, - { L"__ptr64", 0x03649e16, 0, 0, 0 }, - { L"public", 0x0071ddd7, 351, 1, 0 }, - { L"__TIMESTAMP__", 0xc992e518, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__DATE__", 0x1e5c7fda, 0, 0, 0 }, - { L"typename", 0x25578a5b, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"this", 0x00016f60, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"__interface", 0xe24dd527, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"char", 0x00013eae, 0, 0, 0 }, - { L"try", 0x0000292f, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"and", 0x000022f3, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"default", 0x03915e75, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"else", 0x00014639, 0, 0, 0 }, - { L"protected", 0x43d6297a, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__COUNTER__", 0x76e3eebc, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"class", 0x000b3ffe, 0, 0, 0 }, - { 0, 0x00000000, 0, 0, }, - { L"__unhook", 0x1e8d6e5a, 0, 0, 0 }, - { L"__int32", 0x0363da1e, 0, 0, 0 }, - { L"__APREFIX", 0x11357325, 0, 0, 0 }, - { L"typeid", 0x007604a7, 0, 0, 0 }, - { L"__raise", 0x03649aba, 0, 0, 0 }, - { L"false", 0x000b70fb, 0, 0, 0 }, - { L"__FSTREXP", 0x11610b4a, 0, 0, 0 }, - { L"__alignof", 0x1254e816, 0, 0, 0 }, - { L"__try_cast", 0xaaa4f517, 0, 0, 0 }, - { L"dynamic_cast", 0xe8be69df, 0, 0, 0 }, - { L"__leave", 0x036409eb, 331, 0, 0 }, - { L"__property", 0xa979c36b, 0, 0, 0 }, - { L"__LPREFIX", 0x118ea680, 0, 0, 0 }, - { L"__FUNCSIG__", 0x80099ac3, 0, 0, 0 }, - { L"not_eq", 0x006fa5ce, 0, 0, 0 }, - { L"short", 0x000cd310, 336, 0, 0 }, - { L"volatile", 0x25947c50, 0, 0, 0 }, - { L"__int8", 0x00606d91, 0, 0, 0 }, - { L"__cplusplus", 0xd34885e1, 0, 0, 0 }, - { L"__int128", 0x1e82aaa4, 0, 0, 0 }, - { L"__virtual_inheritance", 0x134e026e, 0, 0, 0 }, - { L"struct", 0x0074a875, 0, 0, 0 }, - { L"static_cast", 0xf0a122ba, 0, 0, 0 }, - { L"throw", 0x000ced8c, 0, 0, 0 }, - { L"__unaligned", 0x0083484d, 0, 0, 0 }, - { L"__FILE__", 0x1e5f036c, 0, 0, 0 }, - { L"__nontemporal", 0xb55ccaf5, 347, 0, 0 }, - { L"__typeof", 0x1e8db535, 0, 0, 0 }, - { L"__if_exists", 0xdf5c5744, 0, 0, 0 }, - { L"__pin", 0x000ab8d5, 350, 0, 0 }, - { L"__FUNCDNAME__", 0x82940455, 0, 0, 0 }, - { L"__probability", 0x978fc797, 0, 0, 0 }, -}; - diff --git a/ATL90/source/SProxy/DiscoMapDocument.cpp b/ATL90/source/SProxy/DiscoMapDocument.cpp deleted file mode 100644 index 3b14950..0000000 --- a/ATL90/source/SProxy/DiscoMapDocument.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include "stdafx.h" -#include "DiscoMapDocument.h" - -CDiscoMapDocument::CDiscoMapDocument(void) -{ - SetDocumentType(DMDOC); -} - -CDiscoMapDocument::~CDiscoMapDocument(void) -{ -} - -void CDiscoMapDocument::SetWSDLFile(const CStringW & wsdlFile) -{ - CPathW cp; - cp.Combine(GetPath(),wsdlFile); - - m_wsdlFile = LPCWSTR(cp); -} - -void CDiscoMapDocument::AddSchema(const CStringW & url, const CStringW & filename) -{ - CPathW cp; - cp.Combine(GetPath(),filename); - - m_schemaMap.SetAt(url,LPCWSTR(cp)); -} - -CStringW & CDiscoMapDocument::GetWSDLFile(void) -{ - return m_wsdlFile; -} - -CStringW & CDiscoMapDocument::GetValue(const CStringW & value) -{ - return m_schemaMap[value]; -} - -CStringW & CDiscoMapDocument::GetPath(void) -{ - if(m_strPath.IsEmpty()) - { - CStringW strDoc(GetDocumentUri()); - - wchar_t * pBuf = m_strPath.GetBuffer(MAX_PATH) ; - wchar_t * p = NULL ; - int nLength=GetFullPathNameW(LPCWSTR(strDoc),MAX_PATH,pBuf,&p); - ATLENSURE(nLength!=0 && nLength<=MAX_PATH); - ATLENSURE(p); - *p = 0; - m_strPath.ReleaseBuffer(); - - } - return m_strPath; -} diff --git a/ATL90/source/SProxy/DiscoMapDocument.h b/ATL90/source/SProxy/DiscoMapDocument.h deleted file mode 100644 index e819e97..0000000 --- a/ATL90/source/SProxy/DiscoMapDocument.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#pragma once -#include "xmldocument.h" - -class CDiscoMapDocument : - public CXMLDocument -{ -public: - CDiscoMapDocument(void); - ~CDiscoMapDocument(void); -private: - typedef CAtlMap SCHEMAMAP; - -public: - void SetWSDLFile(const CStringW & wsdlFile); -private: - CStringW m_wsdlFile; - SCHEMAMAP m_schemaMap; -public: - void AddSchema(const CStringW & url, const CStringW & filename); - CStringW & GetWSDLFile(void); - CStringW & GetValue(const CStringW & value); -private: - CStringW m_strPath; -protected: - CStringW & GetPath(void); -}; diff --git a/ATL90/source/SProxy/DiscoMapParser.cpp b/ATL90/source/SProxy/DiscoMapParser.cpp deleted file mode 100644 index f98f7da..0000000 --- a/ATL90/source/SProxy/DiscoMapParser.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include "stdafx.h" -#include "util.h" -#include "DiscoMapparser.h" -#include "DiscoMapDocument.h" -CDiscoMapParser::CDiscoMapParser(void) -:m_pDocument(NULL) -{ -} - -CDiscoMapParser::~CDiscoMapParser(void) -{ -} - -CDiscoMapParser::CDiscoMapParser(ISAXXMLReader * pReader, CParserBase * pParent, DWORD dwLevel) -:CParserBase(pReader, pParent, dwLevel), m_pDocument(NULL) -{ -} - -CDiscoMapDocument * CDiscoMapParser::CreateDiscoMapDocument(void) -{ - m_pDocument.Attach( new CDiscoMapDocument ); - return m_pDocument; -} - - -TAG_METHOD_IMPL(CDiscoMapParser, OnDiscoveryClientResultsFile) -{ - TRACE_PARSE_ENTRY(); - return S_OK; -} - -TAG_METHOD_IMPL(CDiscoMapParser, OnResults) -{ - TRACE_PARSE_ENTRY(); - return S_OK; -} - -TAG_METHOD_IMPL(CDiscoMapParser, OnDiscoveryClientResult) -{ - TRACE_PARSE_ENTRY(); - - CStringW strRT; - HRESULT hr = GetAttribute(pAttributes, L"referenceType", sizeof("referenceType")-1, strRT); - - if(FAILED(hr)) - return hr; - - CDiscoMapDocument * pDoc = GetDiscoMapDocument(); - - if(strRT == "System.Web.Services.Discovery.SchemaReference") - { - CStringW strURL; - hr = GetAttribute(pAttributes, L"url", sizeof("url")-1, strURL); - if(FAILED(hr)) - return hr; - - CStringW strFileName; - hr = GetAttribute(pAttributes, L"filename", sizeof("filename")-1, strFileName); - if(FAILED(hr)) - return hr; - - pDoc->AddSchema(strURL,strFileName); - - return S_OK; - } - - if(strRT == "System.Web.Services.Discovery.ContractReference") - { - CStringW strWSDLFile; - hr = GetAttribute(pAttributes, L"filename", sizeof("filename")-1, strWSDLFile); - if(FAILED(hr)) - return hr; - - pDoc->SetWSDLFile(strWSDLFile); - - } - - return S_OK; -} diff --git a/ATL90/source/SProxy/DiscoMapParser.h b/ATL90/source/SProxy/DiscoMapParser.h deleted file mode 100644 index 128578f..0000000 --- a/ATL90/source/SProxy/DiscoMapParser.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#pragma once -#include "parser.h" - -class CDiscoMapDocument; - -class CDiscoMapParser : - public CParserBase -{ -public: - CDiscoMapParser(void); - ~CDiscoMapParser(void); - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY( "DiscoveryClientResultsFile", OnDiscoveryClientResultsFile ) - XMLTAG_ENTRY( "Results", OnResults) - XMLTAG_ENTRY( "DiscoveryClientResult", OnDiscoveryClientResult ) - END_XMLTAG_MAP() - - TAG_METHOD_DECL( OnDiscoveryClientResultsFile ); - TAG_METHOD_DECL( OnResults); - TAG_METHOD_DECL( OnDiscoveryClientResult ); - -private: - CAutoPtr m_pDocument; -public: - CDiscoMapParser(ISAXXMLReader * pReader, CParserBase * pParent, DWORD dwLevel); - - CDiscoMapDocument * GetDiscoMapDocument(bool bReleaseOwnership = FALSE) - { - if (m_pDocument == NULL) - { - CreateDiscoMapDocument(); - } - - if (bReleaseOwnership != FALSE) - { - return m_pDocument.Detach(); - } - return m_pDocument; - } - CDiscoMapDocument * CreateDiscoMapDocument(void); -}; diff --git a/ATL90/source/SProxy/Element.cpp b/ATL90/source/SProxy/Element.cpp deleted file mode 100644 index e5eb5c1..0000000 --- a/ATL90/source/SProxy/Element.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// Element.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Element.h" -#include "ComplexType.h" -#include "SimpleType.h" -#include "Schema.h" -#include "Attribute.h" -#include "Content.h" - -CComplexType * CElement::AddComplexType(CComplexType * p) -{ - CAutoPtr spOut; - if (p== NULL) - { - spOut.Attach( new CComplexType ); - p = spOut; - } - - if (p != NULL) - { - if (m_elements.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - -CSimpleType * CElement::AddSimpleType(CSimpleType * p) -{ - CAutoPtr spOut; - if (p== NULL) - { - spOut.Attach( new CSimpleType ); - p = spOut; - } - - if (p != NULL) - { - if (m_elements.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; -} - - -CXSDElement * CElement::GetType() -{ - CXSDElement *pRet = NULL; - if (m_type.GetName().GetLength()) - { - CSchema *pSchema = GetParentSchema(); - if (pSchema != NULL) - { - CStringW strUri; - if (SUCCEEDED(/*pSchema->*/GetNamespaceUri(m_type.GetPrefix(), strUri))) - { - pRet = pSchema->GetNamedItem(strUri, m_type.GetName()); - } - } - } - - // - // TODO: appropriate errors - // - - return pRet; -} - -const wchar_t * CElement::GetTargetNamespace() -{ - if (m_type.GetName().GetLength()) - { -// CSchema *pSchema = GetParentSchema(); -// if (pSchema != NULL) -// { - CStringW strUri; - if (SUCCEEDED(/*pSchema->*/GetNamespaceUri(m_type.GetPrefix(), strUri))) - { - return strUri; - } -// } - } - - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, m_type.GetPrefix()); - - return NULL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Element.h b/ATL90/source/SProxy/Element.h deleted file mode 100644 index 68180fa..0000000 --- a/ATL90/source/SProxy/Element.h +++ /dev/null @@ -1,248 +0,0 @@ -// -// Element.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" -#include "QName.h" - -class CComplexType; -class CSimpleType; - -#define MAXOCCURS_UNBOUNDED -2 - -class CElement : public CXSDElement -{ -private: - - CAtlPtrList m_elements; - CStringW m_strName; - CStringW m_strID; - CQName m_type; - CQName m_ref; - int m_nMinOccurs; - int m_nMaxOccurs; - BOOL m_bNullable; - CStringW m_strArrayType; - CStringW m_strSizeIs; - -public: - - CElement() - :m_nMinOccurs(-1), m_nMaxOccurs(-1), m_bNullable(FALSE) - { - SetElementType(XSD_ELEMENT); - } - - CComplexType * AddComplexType(CComplexType * pComplexType = NULL); - CSimpleType * AddSimpleType(CSimpleType * pSimpleType = NULL); - CXSDElement * GetType(); - const wchar_t * GetTargetNamespace(); - - inline POSITION GetFirstElement() - { - return m_elements.GetHeadPosition(); - } - - inline CXSDElement * GetNextElement(POSITION& pos) - { - return m_elements.GetNext(pos); - } - - inline size_t GetNumChildren() - { - return m_elements.GetCount(); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetID(const wchar_t *wszID, int cchID) - { - if (!wszID) - { - return E_FAIL; - } - - m_strID.SetString(wszID, cchID); - - return S_OK; - } - - inline HRESULT SetID(const CStringW& strID) - { - m_strID = strID; - - return S_OK; - } - - inline const CStringW& GetID() - { - return m_strID; - } - - inline HRESULT SetType(const CStringW& strQName) - { - m_type.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetType(const CStringW& strPrefix, const CStringW& strName) - { - m_type.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetType(const wchar_t *wszQName, int cchQName) - { - m_type.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetTypeName() - { - return m_type; - } - - inline HRESULT SetRef(const CStringW& strQName) - { - m_ref.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetRef(const CStringW& strPrefix, const CStringW& strName) - { - m_ref.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetRef(const wchar_t *wszQName, int cchQName) - { - m_ref.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline const CQName& GetRefName() - { - return m_ref; - } - - inline BOOL HasMinOccurs() - { - return (m_nMinOccurs != -1 ? TRUE : FALSE); - } - - inline BOOL HasMaxOccurs() - { - return (m_nMaxOccurs != -1 ? TRUE : FALSE); - } - - inline void SetMinOccurs(int nMinOccurs) - { - m_nMinOccurs = nMinOccurs; - } - - inline int GetMinOccurs() - { - return m_nMinOccurs; - } - - inline void SetMaxOccurs(int nMaxOccurs) - { - m_nMaxOccurs = nMaxOccurs; - } - - inline int GetMaxOccurs() - { - return m_nMaxOccurs; - } - - inline BOOL GetNullable() - { - return m_bNullable; - } - - inline void SetNullable(BOOL bNullable) - { - m_bNullable = bNullable; - } - - inline HRESULT SetArrayType(const wchar_t *wszArrayType, int cchArrayType) - { - if (!wszArrayType) - { - return E_FAIL; - } - - m_strArrayType.SetString(wszArrayType, cchArrayType); - - return S_OK; - } - - inline HRESULT SetArrayType(const CStringW& strArrayType) - { - m_strArrayType = strArrayType; - - return S_OK; - } - - inline HRESULT SetSizeIs(const wchar_t *wszSizeIs, int cchSizeIs) - { - if (!wszSizeIs) - { - return E_FAIL; - } - - m_strSizeIs.SetString(wszSizeIs, cchSizeIs); - - return S_OK; - } - - inline HRESULT SetSizeIs(const CStringW& strSizeIs) - { - m_strSizeIs = strSizeIs; - - return S_OK; - } - - inline const CStringW& GetSizeIs() - { - return m_strSizeIs; - } - - inline const CStringW& GetArrayType() - { - return m_strArrayType; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/ElementParser.cpp b/ATL90/source/SProxy/ElementParser.cpp deleted file mode 100644 index ba59988..0000000 --- a/ATL90/source/SProxy/ElementParser.cpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// ElementParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "ElementParser.h" -#include "ComplexTypeParser.h" -#include "SimpleTypeParser.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" -#include "SimpleType.h" -#include "Emit.h" -#include "resource.h" -#include "Util.h" - -TAG_METHOD_IMPL(CElementParser, OnSimpleType) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - CSimpleType * pElem = pCurr->AddSimpleType(); - if (pElem != NULL) - { - SetXSDElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CSimpleTypeParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -TAG_METHOD_IMPL(CElementParser, OnComplexType) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - CComplexType * pElem = pCurr->AddComplexType(); - if (pElem != NULL) - { - SetXSDElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CComplexTypeParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -TAG_METHOD_IMPL(CElementParser, OnKey) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CElementParser, OnKeyRef) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CElementParser, OnUnique) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - - -ATTR_METHOD_IMPL(CElementParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnType) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetType(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnMinOccurs) -{ - TRACE_PARSE_ENTRY(); - - int nMinOccurs = _wtoi(wszValue); - if (nMinOccurs >= 0) - { - // - // minOccurs must be >= 0 - // - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - pCurr->SetMinOccurs(nMinOccurs); - return S_OK; - } - } - - EmitInvalidValue("minOccurs", wszValue); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnMaxOccurs) -{ - TRACE_PARSE_ENTRY(); - - if (cchValue==sizeof("unbounded")-1 && !wcsncmp(wszValue, L"unbounded", cchValue)) - { - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - pCurr->SetMaxOccurs(MAXOCCURS_UNBOUNDED); - return S_OK; - } - return E_FAIL; - } - - int nMaxOccurs = 0; - nMaxOccurs = _wtoi(wszValue); - if (nMaxOccurs >= 0) - { - // - // maxOccurs must be >= 0 - // - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - pCurr->SetMaxOccurs(nMaxOccurs); - return S_OK; - } - } - - EmitInvalidValue("maxOccurs", wszValue); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnNillable) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - bool bVal; - HRESULT hr = GetBooleanValue(&bVal, wszValue, cchValue); - if (SUCCEEDED(hr)) - { - pCurr->SetNullable(bVal); - return S_OK; - } - - EmitInvalidValue("nillable", wszValue); - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnRef) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetRef(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetID(wszValue, cchValue); - } - - return E_FAIL; -} - - -ATTR_METHOD_IMPL(CElementParser, OnAbstract) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnBlock) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnDefault) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnEquivClass) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnFinal) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnFixed) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnForm) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CElementParser, OnArrayType) -{ - TRACE_PARSE_ENTRY(); - - CElement *pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetArrayType(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CElementParser, OnSizeIs) -{ - TRACE_PARSE_ENTRY(); - - CElement *pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetSizeIs(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; -} - -HRESULT __stdcall CElementParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CElement * pCurr = GetElement(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/ElementParser.h b/ATL90/source/SProxy/ElementParser.h deleted file mode 100644 index 814c3d4..0000000 --- a/ATL90/source/SProxy/ElementParser.h +++ /dev/null @@ -1,129 +0,0 @@ -// -// ElementParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "Emit.h" -#include "resource.h" - -class CElement; - -class CElementParser : public CParserBase -{ -private: - - CElement * m_pElem; - -public: - - inline CElementParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CElement * pElem) - :CParserBase(pReader, pParent, dwLevel), m_pElem(pElem) - { - } - - inline CElement * GetElement() - { - return m_pElem; - } - - inline void SetElement(CElement * pElem) - { - m_pElem = pElem; - } - - inline void MarkUnsupported(const wchar_t *wszQName, int cchQName) - { -#ifdef _DEBUG - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - ATLTRACE( _T("%sUnsupported tag@(%d, %d) : %.*ws -- skipping element\n"), GetTabs(GetLevel()), - nLine, nCol, - cchQName, wszQName ); -#endif - } - - /* - simpleType, complexType, key, keyref, unique - */ - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("simpleType", XSD_NAMESPACEA, OnSimpleType) - XMLTAG_ENTRY_EX("complexType", XSD_NAMESPACEA, OnComplexType) - XMLTAG_ENTRY_EX("key", XSD_NAMESPACEA, OnKey) - XMLTAG_ENTRY_EX("keyRef", XSD_NAMESPACEA, OnKeyRef) - XMLTAG_ENTRY_EX("unique", XSD_NAMESPACEA, OnUnique) - END_XMLTAG_MAP() - - /* - - */ - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("type", OnType) - XMLATTR_ENTRY("minOccurs", OnMinOccurs) - XMLATTR_ENTRY("maxOccurs", OnMaxOccurs) - XMLATTR_ENTRY("nillable", OnNillable) - XMLATTR_ENTRY("ref", OnRef) - XMLATTR_ENTRY("id", OnID) - XMLATTR_ENTRY("abstract", OnAbstract) - XMLATTR_ENTRY("block", OnBlock) - XMLATTR_ENTRY("default", OnDefault) - XMLATTR_ENTRY("equivClass", OnEquivClass) - XMLATTR_ENTRY("final", OnFinal) - XMLATTR_ENTRY("fixed", OnFixed) - XMLATTR_ENTRY("form", OnForm) - XMLATTR_ENTRY_EX("arrayType", SOAP_NAMESPACEA, OnArrayType) - XMLATTR_ENTRY_EX("SizeIs", ATLS_NAMESPACEA, OnSizeIs) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnSimpleType); - TAG_METHOD_DECL(OnComplexType); - TAG_METHOD_DECL(OnKey); - TAG_METHOD_DECL(OnKeyRef); - TAG_METHOD_DECL(OnUnique); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnType); - ATTR_METHOD_DECL(OnMinOccurs); - ATTR_METHOD_DECL(OnMaxOccurs); - ATTR_METHOD_DECL(OnNillable); - ATTR_METHOD_DECL(OnRef); - ATTR_METHOD_DECL(OnID); - ATTR_METHOD_DECL(OnAbstract); - ATTR_METHOD_DECL(OnBlock); - ATTR_METHOD_DECL(OnDefault); - ATTR_METHOD_DECL(OnEquivClass); - ATTR_METHOD_DECL(OnFinal); - ATTR_METHOD_DECL(OnFixed); - ATTR_METHOD_DECL(OnForm); - ATTR_METHOD_DECL(OnArrayType); - ATTR_METHOD_DECL(OnSizeIs); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/Emit.cpp b/ATL90/source/SProxy/Emit.cpp deleted file mode 100644 index c6cdb24..0000000 --- a/ATL90/source/SProxy/Emit.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// Emit.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Emit.h" -#include "errordefs.h" -#include "XMLDocument.h" - -void EmitError(UINT uID, ...) -{ - va_list arglist; - va_start(arglist, uID); - g_Emit.EmitError(uID, arglist); - va_end(arglist); -} - -void EmitErrorHr(HRESULT hr) -{ - g_Emit.EmitErrorHr(hr); -} - -void EmitWarning(UINT uID, ...) -{ - va_list arglist; - va_start(arglist, uID); - g_Emit.EmitWarning(uID, arglist); - va_end(arglist); -} - -void Emit(UINT uID, ...) -{ - va_list arglist; - va_start(arglist, uID); - g_Emit.Emit(uID, arglist); - va_end(arglist); -} - -bool SetEmitWarnings(bool bWarn) -{ - return g_Emit.SetEmitWarnings(bWarn); -} - -void EmitCmdLineError(UINT uID, ...) -{ - va_list arglist; - va_start(arglist, uID); - g_Emit.EmitCmdLineError(uID, arglist); - va_end(arglist); -} - -void EmitCmdLineWarning(UINT uID, ...) -{ - va_list arglist; - va_start(arglist, uID); - g_Emit.EmitCmdLineWarning(uID, arglist); - va_end(arglist); -} - -void EmitFileWarning(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, ...) -{ - va_list arglist; - va_start(arglist, uIDExtra); - g_Emit.EmitFileWarning(uID, wszFile, nLine, nCol, uIDExtra, arglist); - va_end(arglist); -} - -void EmitFileError(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, ...) -{ - va_list arglist; - va_start(arglist, uIDExtra); - g_Emit.EmitFileError(uID, wszFile, nLine, nCol, uIDExtra, arglist); - va_end(arglist); -} - -void EmitFileWarning(UINT uID, CXMLElement *pElem, UINT uIDExtra, ...) -{ - va_list arglist; - va_start(arglist, uIDExtra); - g_Emit.EmitFileWarning(uID, pElem->GetParentDocument()->GetDocumentUri(), pElem->GetLineNumber(), pElem->GetColumnNumber(), uIDExtra, arglist); - va_end(arglist); -} - -void EmitFileError(UINT uID, CXMLElement *pElem, UINT uIDExtra, ...) -{ - va_list arglist; - va_start(arglist, uIDExtra); - g_Emit.EmitFileError(uID, pElem->GetParentDocument()->GetDocumentUri(), pElem->GetLineNumber(), pElem->GetColumnNumber(), uIDExtra, arglist); - va_end(arglist); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Emit.h b/ATL90/source/SProxy/Emit.h deleted file mode 100644 index 8f692a8..0000000 --- a/ATL90/source/SProxy/Emit.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Emit.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -class CXMLElement; - -void EmitError(UINT uID, ...); -void EmitErrorHr(HRESULT hr); - -void EmitWarning(UINT uID, ...); - -void Emit(UINT uID, ...); - -bool SetEmitWarnings(bool bWarn); - -void EmitCmdLineError(UINT uID, ...); -void EmitCmdLineWarning(UINT uID, ...); - -void EmitFileWarning(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, ...); -void EmitFileError(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, ...); - -void EmitFileWarning(UINT uID, CXMLElement *pElem, UINT uIDExtra, ...); -void EmitFileError(UINT uID, CXMLElement *pElem, UINT uIDExtra, ...); \ No newline at end of file diff --git a/ATL90/source/SProxy/ErrorHandler.cpp b/ATL90/source/SProxy/ErrorHandler.cpp deleted file mode 100644 index a826e77..0000000 --- a/ATL90/source/SProxy/ErrorHandler.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// ErrorHandler.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "ErrorHandler.h" -#include "Emit.h" -#include "resource.h" -#include "Parser.h" - -HRESULT __stdcall CErrorHandler::QueryInterface(REFIID riid, void **ppv) -{ - if (!ppv) - { - return E_POINTER; - } - - if (InlineIsEqualGUID(riid, __uuidof(ISAXErrorHandler)) || - InlineIsEqualGUID(riid, __uuidof(IUnknown))) - { - *ppv = static_cast(this); - return S_OK; - } - return E_NOINTERFACE; -} - -ULONG __stdcall CErrorHandler::AddRef() -{ - return 1; -} - -ULONG __stdcall CErrorHandler::Release() -{ - return 1; -} - -HRESULT __stdcall CErrorHandler::error( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) -{ - int nLine; - int nCol; - - pLocator->getLineNumber(&nLine); - pLocator->getColumnNumber(&nCol); - ATLTRACE( _T("error@(%d, %d): %ws\n"), nLine, nCol, wszErrorMessage ); - - EmitFileError(IDS_SDL_PARSE_ERROR, m_wszLocation, nLine, nCol, IDS_SDL_PARSE, wszErrorMessage); - g_ParserList.RemoveAll(); - - return E_FAIL; -} - -HRESULT __stdcall CErrorHandler::fatalError( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) -{ - int nLine; - int nCol; - - pLocator->getLineNumber(&nLine); - pLocator->getColumnNumber(&nCol); - ATLTRACE( _T("fatalError@(%d, %d): %ws\n"), nLine, nCol, wszErrorMessage ); - - EmitFileError(IDS_SDL_PARSE_ERROR, m_wszLocation, nLine, nCol, IDS_SDL_PARSE, wszErrorMessage); - g_ParserList.RemoveAll(); - - return E_FAIL; -} - -HRESULT __stdcall CErrorHandler::ignorableWarning( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode) -{ - - int nLine; - int nCol; - - pLocator->getLineNumber(&nLine); - pLocator->getColumnNumber(&nCol); - - ATLTRACE( _T("ignorableWarning@(%d, %d): %ws\n"), nLine, nCol, wszErrorMessage ); - - EmitFileWarning(IDS_SDL_PARSE_WARNING, m_wszLocation, nLine, nCol, IDS_SDL_PARSE, wszErrorMessage); - - return S_OK; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/ErrorHandler.h b/ATL90/source/SProxy/ErrorHandler.h deleted file mode 100644 index 078b293..0000000 --- a/ATL90/source/SProxy/ErrorHandler.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// ErrorHandler.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" - -class CErrorHandler : public ISAXErrorHandler -{ -private: - const wchar_t * m_wszLocation; -public: - CErrorHandler() - :m_wszLocation(NULL) - { - } - - void SetLocation(const wchar_t * wszLocation) - { - m_wszLocation = wszLocation; - } - - virtual ~CErrorHandler() {} - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv); - ULONG __stdcall AddRef(); - ULONG __stdcall Release(); - - HRESULT __stdcall error( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode); - - HRESULT __stdcall fatalError( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode); - - HRESULT __stdcall ignorableWarning( - ISAXLocator *pLocator, - const wchar_t *wszErrorMessage, - HRESULT hrErrorCode); -}; diff --git a/ATL90/source/SProxy/FacetMappingTable.h b/ATL90/source/SProxy/FacetMappingTable.h deleted file mode 100644 index 28fd1d8..0000000 --- a/ATL90/source/SProxy/FacetMappingTable.h +++ /dev/null @@ -1,202 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include - -enum FACET_TYPE -{ - // - // value is timeDuration - // - FACET_DURATION = 1, - - // - // value is "hex" or "base64" - // - FACET_ENCODING = 2, - - // - // specified set of values -- this constrains - // the datatype to the specified values - // - FACET_ENUMERATION = 4, - - // - // number of units of length - // units of length depends on the data type - // value is nonNegativeInteger - // - FACET_LENGTH = 8, - - // - // Upper bound value (all values are less than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MAXEXCLUSIVE = 16, - - // - // Maximum value. - // This value must be the same data type as the inherited data type. - // - FACET_MAXINCLUSIVE = 32, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MAXLENGTH = 64, - - // - // Lower bound value (all values are greater than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MINEXCLUSIVE = 128, - - // - // Minimum value. - // This value must be the same data type as the inherited data type. - // - FACET_MININCLUSIVE = 256, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MINLENGTH = 512, - - // - // Specific pattern that the data type’s values must match. - // This constrains the data type to literals that match the - // specified pattern. - // The pattern value must be a regular expression. - // - FACET_PATTERN = 1024, - - // - // Frequency of recurrence for recurringDuration and its derivatives. - // This value must be timeDuration. - // - FACET_PERIOD = 2048, - - // - // Maximum number of digits for data types derived from decimal. - // This value must a positiveInteger. - // - FACET_PRECISION = 4096, - - // - // Maximum number of digits in the fractional portion for data types - // derived from decimal. - // This value must a nonNegativeInteger. - // - FACET_SCALE = 8192, - - // - // whiteSpace provides for: constraining a value space to the white space - // normalization rules. - // - FACET_WHITESPACE = 16384 -}; - -class CFacetLookup -{ -public: - - struct HashNode - { - wchar_t * key; - unsigned long hash; - size_t link; - size_t entries; - FACET_TYPE data; - }; - -protected: - const static HashNode m_data[34]; - const static size_t m_size = 30; - const static size_t m_tableSize = 15; - -public: - - static unsigned long Hash( const wchar_t * sz ) - { - unsigned long hash; - hash = 0; - while ( *sz != 0 ) - { - hash = (hash<<3)+hash+(*sz); - sz++; - } - return hash; - } - - static const HashNode * Lookup( const wchar_t * key ) - { - unsigned long hash; - const HashNode * p; - unsigned long index; - hash = Hash(key); - index = hash % m_size; - p = &m_data[index]; - while (p->key) - { - if (p->hash==hash && !wcscmp(key, p->key)) - break; - - if (p->link) - { - p = &m_data[p->link]; - } - else - { - p = 0; - break; - } - } - - if (p && p->key) - return p; - return NULL; - } -}; - -const CFacetLookup::HashNode CFacetLookup::m_data[34] = -{ - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"pattern", 0x03f0ab26, 0, 0, FACET_PATTERN }, - { 0, 0x00000000, 0, 0, }, - { L"minExclusive", 0x68be850c, 30, 1, FACET_MINEXCLUSIVE }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"duration", 0x20a8dd8e, 0, 0, FACET_DURATION }, - { L"whiteSpace", 0xe8cc7a8d, 0, 0, FACET_WHITESPACE }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"length", 0x006cca22, 0, 0, FACET_LENGTH }, - { 0, 0x00000000, 0, 0, }, - { L"maxInclusive", 0xd872dfa8, 0, 0, FACET_MAXINCLUSIVE }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"encoding", 0x20accab7, 31, 1, FACET_ENCODING }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"maxExclusive", 0xd109555e, 32, 1, FACET_MAXEXCLUSIVE }, - { L"enumeration", 0x39b9a407, 0, 0, FACET_ENUMERATION }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"scale", 0x000cc020, 0, 0, FACET_SCALE }, - { 0, 0x00000000, 0, 0, }, - { L"minInclusive", 0x70280f56, 33, 1, FACET_MININCLUSIVE }, - { 0, 0x00000000, 0, 0, }, - { L"minLength", 0x3966c1de, 0, 0, FACET_MINLENGTH }, - { L"period", 0x0070709b, 0, 0, FACET_PERIOD }, - { L"maxLength", 0x376ffd80, 0, 0, FACET_MAXLENGTH }, - { L"precision", 0x437651d4, 0, 0, FACET_PRECISION }, -}; - diff --git a/ATL90/source/SProxy/Namespaces.h b/ATL90/source/SProxy/Namespaces.h deleted file mode 100644 index db79f41..0000000 --- a/ATL90/source/SProxy/Namespaces.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// Namespaces.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#define WSDL_NAMESPACEA "http://schemas.xmlsoap.org/wsdl/" -#define WSDL_NAMESPACEW MAKEWIDESTR( WSDL_NAMESPACEA ) - -#define HTTP_NAMESPACEA "http://schemas.xmlsoap.org/wsdl/http/" -#define HTTP_NAMESPACEW MAKEWIDESTR( HTTP_NAMESPACEA ) - -#define MIME_NAMESPACEA "http://schemas.xmlsoap.org/wsdl/mime/" -#define MIME_NAMESPACEW MAKEWIDESTR( MIME_NAMESPACEA ) - -#define SOAP_NAMESPACEA "http://schemas.xmlsoap.org/wsdl/soap/" -#define SOAP_NAMESPACEW MAKEWIDESTR( SOAP_NAMESPACEA ) - -#define XSI_NAMESPACEA "http://www.w3.org/2001/XMLSchema-instance" -#define XSI_NAMESPACEW MAKEWIDESTR( XSI_NAMESPACEA ) - -#define XSD_NAMESPACEA "http://www.w3.org/2001/XMLSchema" -#define XSD_NAMESPACEW MAKEWIDESTR( XSD_NAMESPACEA ) - -#define SOAP_ENCODINGSTYLEA "http://schemas.xmlsoap.org/soap/encoding/" -#define SOAP_ENCODINGSTYLEW MAKEWIDESTR( SOAP_ENCODINGSTYLEA ) - -#define ATLS_NAMESPACEA "http://tempuri.org/vc/atl/server/" -#define ATLS_NAMESPACEW MAKEWIDESTR( ATLS_NAMESPACEA ) - -#define FX_TYPES_NAMESPACEA "http://microsoft.com/wsdl/types/" -#define FX_TYPES_NAMESPACEW MAKEWIDESTR( FX_TYPES_NAMESPACEA ) - -#define CLR_TYPES_NAMESPACEA "http://schemas.microsoft.com/clr/ns/System" -#define CLR_TYPES_NAMESPACEW MAKEWIDESTR( CLR_TYPES_NAMESPACEA ) - -#if 0 - -#define SUDS_NAMESPACEA "http://www.w3.org/2000/wsdl/suds" -#define SUDS_NAMESPACEW MAKEWIDESTR( SUDS_NAMESPACEA ) - -#define STK_PREFERREDENCODING_NAMESPACEA "http://schemas.microsoft.com/soap-toolkit/wsdl-extension" -#define STK_PREFERREDENCODING_NAMESPACEW MAKEWIDESTR( STK_PREFERREDENCODING_NAMESPACEA ) - -#endif \ No newline at end of file diff --git a/ATL90/source/SProxy/Parser.cpp b/ATL90/source/SProxy/Parser.cpp deleted file mode 100644 index ec6d75a..0000000 --- a/ATL90/source/SProxy/Parser.cpp +++ /dev/null @@ -1,485 +0,0 @@ -// -// Parser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Parser.h" -#include "SkipParser.h" -#include "resource.h" - -//////////////////////////////////////////////////////////////////////// -// -// CParserBase interface -// -//////////////////////////////////////////////////////////////////////// - -HRESULT CParserBase::DispatchElement( - const XMLTAG *pEntry, - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() -{ - if (!pEntry) - { - return S_OK; - } - - while (pEntry->szElemName) - { - if (CheckTagElement(pEntry, - wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, - wszQName, cchQName)) - { - return (this->*pEntry->pfnTag)(wszNamespaceUri, - cchNamespaceUri, wszLocalName, cchLocalName, - wszQName, cchQName, pAttributes); - } - pEntry++; - } - - // - // unrecognized tag - // - return OnUnrecognizedTag(wszNamespaceUri, - cchNamespaceUri, wszLocalName, cchLocalName, - wszQName, cchQName, pAttributes); -} - -HRESULT CParserBase::GetAttributes(const XMLATTR *pEntry, ISAXAttributes *pAttributes) -{ - if (!pAttributes) - { - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; - } - - if (GetGotAttributes() != FALSE) - { - return S_OK; - } - - if (!pEntry) - { - return S_OK; - } - - int nAttrs = 0; - HRESULT hr = pAttributes->getLength(&nAttrs); - if (FAILED(hr)) - { - EmitError(IDS_SDL_MSXML); - return E_FAIL; - } - - while (pEntry->wszElemName) - { - int i; - for (i=0; igetName(i, &wszNamespaceUri, &cchUri, &wszLocalName, &cchLocalName, &wszQName, &cchQName); - if (FAILED(hr)) - { - EmitError(IDS_SDL_MSXML); - return E_FAIL; - } - - if (CheckTagElement(pEntry, - wszNamespaceUri, cchUri, - wszLocalName, cchLocalName, - wszQName, cchQName)) - { - const wchar_t *wszValue = NULL; - int cchValue = 0; - - hr = pAttributes->getValue(i, &wszValue, &cchValue); - if (SUCCEEDED(hr)) - { - hr = (this->*pEntry->pfnAttr)(wszNamespaceUri, - cchUri, wszLocalName, cchLocalName, - wszQName, cchQName, wszValue, cchValue, - pAttributes); - } - else - { - EmitError(IDS_SDL_MSXML); - } - - break; - } - } - - if (i >= nAttrs) - { - hr = OnMissingAttribute(pEntry->bRequired, pEntry->wszElemName, pEntry->cchElem, - pEntry->wszElemNamespace, pEntry->cchNamespaceUri); - } - - if (FAILED(hr)) - { - break; - } - - pEntry++; - } - - SetGotAttributes(TRUE); - return hr; -} - -HRESULT CParserBase::DispatchElement( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() -{ - - if (FAILED(GetAttributes(pAttributes))) - { - return E_FAIL; - } - - const XMLTAG * pEntry = GetXMLTAGMap(); - - return DispatchElement(pEntry, wszNamespaceUri, - cchNamespaceUri, wszLocalName, cchLocalName, - wszQName, cchQName, pAttributes); -} - -HRESULT CParserBase::GetAttributes(ISAXAttributes *pAttributes) -{ - const XMLATTR * pEntry = GetXMLATTRMap(); - return GetAttributes(pEntry, pAttributes); -} - -BOOL CParserBase::CheckTagElement( - const XMLTAG *pTag, - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName) -{ - if (!pTag->wszElemName) - { - EmitError(IDS_SDL_INTERNAL); - return FALSE; - } - - if (pTag->cchElem == cchLocalName && - !wcsncmp(pTag->wszElemName, wszLocalName, pTag->cchElem)) - { - // - // Don't need to check default namespace for tags since SAX gives it in wszElemNamespace - // - if ((!pTag->wszElemNamespace) || - (!pTag->cchNamespaceUri && !cchNamespaceUri) || - (pTag->cchNamespaceUri == cchNamespaceUri && - !wcsncmp(pTag->wszElemNamespace, wszNamespaceUri, pTag->cchNamespaceUri))) - { - // - // namespace and tag match - // it is okay if there is no namespace ("") or if the user doesn't care (NULL) - // - return TRUE; - } - } - - return FALSE; -} - -void CParserBase::CrackQName(const wchar_t *wszQName, int cchQName, - wchar_t **pwszNs, int *pcchNs, - wchar_t **pwszName, int *pcchName) -{ - wchar_t * wszQNameTmp = (wchar_t *) wszQName; - wchar_t * wszColon = wcschr(wszQNameTmp, L':'); - if (wszColon && (wszColon-wszQNameTmp) <= cchQName) - { - *pwszNs = wszQNameTmp; - *pcchNs = (int)(wszColon-wszQNameTmp); - - *pwszName = wszColon+1; - *pcchName = cchQName-(*pcchNs)-1; - } - else - { - *pwszNs = NULL; - *pcchNs = 0; - *pwszName = wszQNameTmp; - *pcchName = cchQName; - } -} - -HRESULT CParserBase::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() -{ - wszNamespaceUri; - cchNamespaceUri; - wszLocalName; - cchLocalName; - wszQName; - cchQName; - pAttributes; - - ATLTRACE( _T("%sUnrecoginzed Tag: %.*ws\n"), GetTabs(m_dwLevel), cchQName, wszQName ); - - int nLine; - int nCol; - - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileError(IDS_SDL_UNRECOGNIZED_TAG, GetWSDLFile(), nLine, nCol, 0, wszNamespaceUri, wszLocalName); - return E_FAIL; -} - -HRESULT CParserBase::OnMissingAttribute(BOOL bRequired, - const wchar_t *wszName, int cchName, - const wchar_t *wszNamespace, int cchNamespace) -{ - if (bRequired != FALSE) - { - ATLTRACE( _T("%sMissing Required Attribute: name %.*ws, uri %.*ws\n"), - GetTabs(m_dwLevel), cchName, wszName, cchNamespace, wszNamespace ); - - int nLine; - int nCol; - - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileError(IDS_SDL_MISSING_ATTRIBUTE, GetWSDLFile(), nLine, nCol, 0, wszNamespace, wszName); - return E_FAIL; - } - return S_OK; -} - -void CParserBase::EmitInvalidValue(const char *szName, const wchar_t *wszValue) -{ - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - EmitFileError(IDS_SDL_INVALID_VALUE, GetWSDLFile(), nLine, nCol, 0, szName, wszValue); -} - -void CParserBase::EmitUnsupported(UINT nID, const wchar_t *wszUri, const wchar_t *wszName) -{ - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - EmitFileWarning(nID, GetWSDLFile(), nLine, nCol, 0, wszUri, wszName); -} - -void CParserBase::EmitSkip(const wchar_t *wszUri, const wchar_t *wszName) -{ - EmitUnsupported(IDS_SDL_UNSUPPORTED_TAG, wszUri, wszName); -} - -void CParserBase::EmitString(const wchar_t *wszUri, const wchar_t *wszName) -{ - EmitUnsupported(IDS_SDL_UNSUPPORTED_STRING, wszUri, wszName); -} - -HRESULT CParserBase::SkipElement() -{ - CAutoPtr p( new CSkipParser(m_spReader, this, GetLevel()) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - p.Detach(); - return S_OK; - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -//////////////////////////////////////////////////////////////////////// -// -// IUnknown -// -//////////////////////////////////////////////////////////////////////// - -HRESULT __stdcall CParserBase::QueryInterface(REFIID riid, void **ppv) -{ - if (!ppv) - { - return E_POINTER; - } - - if (InlineIsEqualGUID(riid, __uuidof(ISAXContentHandler)) || - InlineIsEqualGUID(riid, __uuidof(IUnknown))) - { - *ppv = static_cast(this); - return S_OK; - } - return E_NOINTERFACE; -} - -ULONG __stdcall CParserBase::AddRef() -{ - return 1; -} - -ULONG __stdcall CParserBase::Release() -{ - return 1; -} - -//////////////////////////////////////////////////////////////////////// -// -// ISAXContentHandler -// -//////////////////////////////////////////////////////////////////////// - -HRESULT __stdcall CParserBase::putDocumentLocator(ISAXLocator *pLocator) -{ - m_spLocator = pLocator; - return S_OK; -} - -HRESULT __stdcall CParserBase::startDocument() -{ - return S_OK; -} - -HRESULT __stdcall CParserBase::endDocument() -{ - return S_OK; -} - -HRESULT __stdcall CParserBase::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - return S_OK; -} - -HRESULT __stdcall CParserBase::endPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix) -{ - wszPrefix; - cchPrefix; - - // REVIEW: remove from map? - - return S_OK; -} - -HRESULT __stdcall CParserBase::startElement( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - const wchar_t *wszQName, - int cchQName, - ISAXAttributes *pAttributes) -{ - return DispatchElement(wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, - wszQName, cchQName, - pAttributes); -} - -HRESULT __stdcall CParserBase::endElement( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - const wchar_t *wszQName, - int cchQName) -{ - HRESULT hr = ValidateElement(); - - if (GetReset() > 0) - { - EnableReset(); - return hr; - } - - // - // Restore the parent handler - // - CComPtr spParentHandler = GetParentHandler(); - if (spParentHandler.p != NULL) - { - m_spReader->putContentHandler(spParentHandler); - } - - if (GetDynamicAlloc() != FALSE) - { - POSITION pos = g_ParserList.Find(this); - if (pos != NULL) - { - g_ParserList.RemoveAt(pos); - } - delete this; - } - - return hr; -} - -HRESULT __stdcall CParserBase::characters( - const wchar_t *wszChars, - int cchChars) -{ - // - // REVIEW: what to do here? - // -// ATLTRACE( _T("CParserBase::characters: %*.ws\n"), cchChars, wszChars ); - return S_OK; -} - -HRESULT __stdcall CParserBase::ignorableWhitespace( - const wchar_t *wszChars, - int cchChars) -{ -// ATLTRACE( _T("CParserBase::ignorableWhitespace: %.*ws\n"), cchChars, wszChars ); - return S_OK; -} - -HRESULT __stdcall CParserBase::processingInstruction( - const wchar_t *wszTarget, - int cchTarget, - const wchar_t *wszData, - int cchData) -{ - wszTarget; - cchTarget; - wszData; - cchData; - - ATLTRACE( _T("CParserBase::processingInstruction: target: %.*ws, data: %.*ws\n"), cchTarget, wszTarget, cchData, wszData ); - return S_OK; -} - -HRESULT __stdcall CParserBase::skippedEntity( - const wchar_t *wszName, - int cchName) -{ - wszName; - cchName; - - ATLTRACE( _T("CParserBase::skippedEntity: %.*ws\n"), wszName, cchName ); - return S_OK; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Parser.h b/ATL90/source/SProxy/Parser.h deleted file mode 100644 index df20a6a..0000000 --- a/ATL90/source/SProxy/Parser.h +++ /dev/null @@ -1,517 +0,0 @@ -// -// Parser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLDocument.h" -#include "XSDElement.h" -#include "Emit.h" -#include "SproxyColl.h" - -#define PTM_WARNING_DISABLE \ - __pragma(warning( push )) \ - __pragma(warning( disable : 4867 )) - -#define PTM_WARNING_RESTORE \ - __pragma(warning( pop )) - -#define EMPTY_XMLTAG_MAP() \ - virtual const XMLTAG * GetXMLTAGMap() \ - { \ - return NULL; \ - } - -#define EMPTY_XMLATTR_MAP() \ - virtual const XMLATTR * GetXMLATTRMap() \ - { \ - return NULL; \ - } - -#define BEGIN_XMLTAG_MAP() \ - virtual const XMLTAG * GetXMLTAGMap() \ - { \ - PTM_WARNING_DISABLE \ - static const XMLTAG map[] = \ - { - -#define END_XMLTAG_MAP() \ - { NULL, NULL } }; \ - PTM_WARNING_RESTORE \ - return map; \ - } - -#define _XMLTAG_ENTRY_EX(elementName, elementNamespace, elementFunc) \ - { L ## elementName, elementName, sizeof(elementName)-1, \ - L ## elementNamespace, elementNamespace, sizeof(elementNamespace)-1, \ - static_cast(elementFunc), NULL, FALSE }, - -#define XMLTAG_ENTRY_EX(elementName, elementNamespace, elementFunc) _XMLTAG_ENTRY_EX(elementName, elementNamespace, elementFunc) - -#define _XMLTAG_ENTRY(elementName, elementFunc) \ - { L ## elementName, elementName, sizeof(elementName)-1, \ - NULL, NULL, 0, \ - static_cast(elementFunc), NULL, FALSE }, - -#define XMLTAG_ENTRY(elementName, elementFunc) _XMLTAG_ENTRY(elementName, elementFunc) - -#define BEGIN_XMLATTR_MAP() \ - virtual const XMLATTR * GetXMLATTRMap() \ - { \ - PTM_WARNING_DISABLE \ - static const XMLTAG map[] = \ - { - -#define END_XMLATTR_MAP() \ - { NULL, NULL } }; \ - PTM_WARNING_RESTORE \ - return map; \ - } - -#define _XMLATTR_ENTRY_EX(elementName, elementNamespace, elementFunc, required) \ - { L ## elementName, elementName, sizeof(elementName)-1, \ - L ## elementNamespace, elementNamespace, sizeof(elementNamespace)-1, \ - NULL, static_cast(elementFunc), required }, - -#define XMLATTR_ENTRY_EX(elementName, elementNamespace, elementFunc) \ - _XMLATTR_ENTRY_EX(elementName, elementNamespace, elementFunc, FALSE) - -#define XMLATTR_ENTRY_EX2(elementName, elementNamespace, elementFunc, required) \ - _XMLATTR_ENTRY_EX(elementName, elementNamespace, elementFunc, required) - -#define _XMLATTR_ENTRY(elementName, elementFunc, required) \ - { L ## elementName, elementName, sizeof(elementName)-1, \ - NULL, NULL, 0, \ - NULL, static_cast(elementFunc), required }, - -#define XMLATTR_ENTRY(elementName, elementFunc) _XMLATTR_ENTRY(elementName, elementFunc, FALSE) -#define XMLATTR_ENTRY2(elementName, elementFunc, required) _XMLATTR_ENTRY(elementName, elementFunc, required) - -class CParserBase; - -typedef HRESULT (CParserBase::*TAG_DISPATCH_FUNC)( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes); - -typedef HRESULT (CParserBase::*ATTR_DISPATCH_FUNC)( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - const wchar_t *wszValue, int cchValue, - ISAXAttributes *pAttributes); - -#define TAG_METHOD_DECL( name ) \ - HRESULT name(const wchar_t *wszNamespaceUri, int cchNamespaceUri, \ - const wchar_t *wszLocalName, int cchLocalName, \ - const wchar_t *wszQName, int cchQName, \ - ISAXAttributes *pAttributes) - -#define TAG_METHOD_IMPL( class, name ) \ - HRESULT class ## :: ## name(const wchar_t *wszNamespaceUri, int cchNamespaceUri, \ - const wchar_t *wszLocalName, int cchLocalName, \ - const wchar_t *wszQName, int cchQName, \ - ISAXAttributes *pAttributes) - -#define ATTR_METHOD_DECL( name ) \ - HRESULT name(const wchar_t *wszNamespaceUri, int cchNamespaceUri, \ - const wchar_t *wszLocalName, int cchLocalName, \ - const wchar_t *wszQName, int cchQName, \ - const wchar_t *wszValue, int cchValue, \ - ISAXAttributes *pAttributes) - -#define ATTR_METHOD_IMPL( class, name ) \ - HRESULT class ## :: ## name(const wchar_t *wszNamespaceUri, int cchNamespaceUri, \ - const wchar_t *wszLocalName, int cchLocalName, \ - const wchar_t *wszQName, int cchQName, \ - const wchar_t *wszValue, int cchValue, \ - ISAXAttributes *pAttributes) - -typedef NAMESPACEMAP URIMAP; - -#ifndef _PREFIX_ -#define TRACE_PARSE_ENTRY() \ - ATLTRACE( _T("%s") __FUNCTION__ _T("\n"), GetTabs(GetLevel())) -#else -#define TRACE_PARSE_ENTRY() \ - ATLTRACE( _T("%s") _T("\n"), GetTabs(GetLevel())) -#endif // _PREFIX_ - - -// -// XMLTAG struct -// used for dispatching XML entries -// -struct XMLTAG -{ - LPCWSTR wszElemName; - LPCSTR szElemName; - int cchElem; - - LPCWSTR wszElemNamespace; - LPCSTR szElemNamespace; - int cchNamespaceUri; - - // - // REVIEW: union doesn't work for initialization - // - TAG_DISPATCH_FUNC pfnTag; - ATTR_DISPATCH_FUNC pfnAttr; - - // - // attribute must be present - // - BOOL bRequired; -}; - -typedef XMLTAG XMLATTR; - -// -// dummy classes for multiple inheritance -// (tell compiler to use big pointers for CParserBase member function pointers) -// -class CDummy1 {}; -class CDummy2 {}; - -// -// The base parser class -// -class CParserBase : public ISAXContentHandler, public CDummy1, public CDummy2 -{ -private: - - CComPtr m_spParent; - CComPtr m_spReader; - CComPtr m_spLocator; - - // - // how many levels deep - // - DWORD m_dwLevel; - - // - // reset to parent handler on endElement - // - DWORD m_dwReset; - - // - // get only top-level attributes - // - BOOL m_bGotAttributes; - - // - // dynamically allocated - // - BOOL m_bDynamicAlloc; - -private: - - HRESULT DispatchElement( - const XMLTAG *pMap, - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw (); - - HRESULT GetAttributes(const XMLATTR *pMap, ISAXAttributes *pAttributes); - - BOOL CheckTagElement( - const XMLTAG *pTag, - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName); - - void CrackQName(const wchar_t *wszQName, int cchQName, - wchar_t **pwszNs, int *pcchNs, - wchar_t **pwszName, int *pcchName); - -public: - - // - // CParserBase interface - // - inline CParserBase() - :m_dwLevel(0), m_dwReset(0), m_bDynamicAlloc(TRUE), m_bGotAttributes(FALSE) - { - } - - inline CParserBase(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel) - :m_spReader(pReader), m_spParent(pParent), m_dwLevel(dwLevel+1), m_dwReset(0), m_bDynamicAlloc(TRUE), m_bGotAttributes(FALSE) - { - if (m_spReader.p != NULL) - { - m_spReader->putContentHandler(this); - } - } - - inline HRESULT Initialize(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, BOOL bDynamicAlloc = FALSE) - { - m_spReader = pReader; - m_spParent = pParent; - m_dwLevel = dwLevel+1; - m_bDynamicAlloc = bDynamicAlloc; - m_bGotAttributes = FALSE; - m_dwReset = 0; - - if (m_spReader.p != NULL) - { - return m_spReader->putContentHandler(this); - } - - return E_FAIL; - } - - virtual ~CParserBase() - { - if ((m_spParent.p != NULL) && (m_spReader.p != NULL)) - { - m_spReader->putContentHandler(m_spParent); - } - } - - EMPTY_XMLTAG_MAP() - EMPTY_XMLATTR_MAP() - - HRESULT DispatchElement( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw (); - - HRESULT GetAttributes(ISAXAttributes *pAttributes); - - inline CParserBase * GetParentHandler() - { - return m_spParent; - } - - inline void SetParentHandler(CParserBase *pParent) - { - m_spParent = pParent; - } - - ISAXXMLReader * GetReader() - { - return m_spReader; - } - - inline void SetReader(ISAXXMLReader *pReader) - { - m_spReader = pReader; - } - - inline DWORD GetLevel() - { - return m_dwLevel; - } - - inline void SetLevel(DWORD dwLevel) - { - m_dwLevel = dwLevel; - } - - virtual HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw (); - - virtual HRESULT OnMissingAttribute(BOOL bRequired, - const wchar_t *wszName, int cchName, - const wchar_t *wszNamespace, int cchNamespace); - - HRESULT SkipElement(); - void EmitInvalidValue(const char *szName, const wchar_t *wszValue); - void EmitUnsupported(UINT nID, const wchar_t *wszUri, const wchar_t *wszName); - void EmitSkip(const wchar_t *wszUri, const wchar_t *wszName); - void EmitString(const wchar_t *wszUri, const wchar_t *wszName); - - inline ISAXLocator * GetLocator() - { - if (m_spLocator.p != NULL) - { - return m_spLocator; - } - if (m_spParent.p != NULL) - { - return m_spParent->GetLocator(); - } - return NULL; - } - - virtual HRESULT ValidateElement() - { - return S_OK; - } - - inline void SetGotAttributes(BOOL bGotAttributes) - { - m_bGotAttributes = bGotAttributes; - } - - inline BOOL GetGotAttributes() - { - return m_bGotAttributes; - } - - inline DWORD GetReset() - { - return m_dwReset; - } - - inline void EnableReset(BOOL bForce = FALSE) - { - if (bForce != FALSE) - { - m_dwReset = 0; - } - else if (m_dwReset > 0) - { - m_dwReset--; - } - } - - inline void DisableReset(DWORD dwCnt = 1) - { - m_dwReset+= dwCnt; - } - - inline BOOL GetDynamicAlloc() - { - return m_bDynamicAlloc; - } - - inline void SetDynamicAlloc(BOOL bDynamicAlloc) - { - m_bDynamicAlloc = bDynamicAlloc; - } - - // - // IUnknown interface - // - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv); - ULONG __stdcall AddRef(); - ULONG __stdcall Release(); - - // - // ISAXContentHandler interface - // - HRESULT __stdcall putDocumentLocator(ISAXLocator *pLocator); - - HRESULT __stdcall startDocument(); - - HRESULT __stdcall endDocument(); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT __stdcall endPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix); - - HRESULT __stdcall startElement( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - const wchar_t *wszQName, - int cchQName, - ISAXAttributes *pAttributes); - - HRESULT __stdcall endElement( - const wchar_t *wszNamespaceUri, - int cchNamespaceUri, - const wchar_t *wszLocalName, - int cchLocalName, - const wchar_t *wszQName, - int cchQName); - - HRESULT __stdcall characters( - const wchar_t *wszChars, - int cchChars); - - HRESULT __stdcall ignorableWhitespace( - const wchar_t *wszChars, - int cchChars); - - HRESULT __stdcall processingInstruction( - const wchar_t *wszTarget, - int cchTarget, - const wchar_t *wszData, - int cchData); - - HRESULT __stdcall skippedEntity( - const wchar_t *wszName, - int cchName); -}; - -inline HRESULT CopyNamespaceMap(const NAMESPACEMAP& in, NAMESPACEMAP& out) -{ - out.InitHashTable(in.GetHashTableSize()); - out.DisableAutoRehash(); - POSITION pos = in.GetStartPosition(); - while (pos != NULL) - { - const NAMESPACEMAP::CPair *p = in.GetNext(pos); - if (!out.SetAt(p->m_key, p->m_value)) - { - return E_FAIL; - } - } - out.EnableAutoRehash(); - - return S_OK; -} - -// for cleanup purposes -#ifndef _PREFIX_ -__declspec(selectany) CAtlPtrList g_ParserList; -#else -CAtlPtrList g_ParserList; -#endif // _PREFIX_ - -inline void SetLocatorInfo(CXMLElement *pElem, ISAXLocator *pLocator) -{ - ATLASSERT( pLocator != NULL ); - ATLASSERT( pElem != NULL ); - - int nLine = 0; - int nCol = 0; - - pLocator->getLineNumber(&nLine); - pLocator->getColumnNumber(&nCol); - - pElem->SetLineNumber(nLine); - pElem->SetColumnNumber(nCol); -} - - -ATL_NOINLINE inline void SetXMLElementInfo(CXMLElement *pElem, CXMLElement *pParent, ISAXLocator *pLocator) -{ - ATLASSERT( pElem != NULL ); - ATLASSERT( pParent != NULL ); - ATLASSERT( pLocator != NULL ); - - pElem->SetParentElement(pParent); - pElem->SetParentDocument(pParent->GetParentDocument()); - SetLocatorInfo(pElem, pLocator); -} - -ATL_NOINLINE inline void SetXSDElementInfo(CXSDElement *pElem, CXSDElement *pParent, ISAXLocator *pLocator) -{ - ATLASSERT( pElem != NULL ); - ATLASSERT( pParent != NULL ); - ATLASSERT( pLocator != NULL ); - - pElem->SetParentSchema(pParent->GetParentSchema()); - pElem->SetParentElement(pParent); - pElem->SetParentDocument(pParent->GetParentDocument()); - SetLocatorInfo(pElem, pLocator); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/QName.cpp b/ATL90/source/SProxy/QName.cpp deleted file mode 100644 index be44ea0..0000000 --- a/ATL90/source/SProxy/QName.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// QName.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "QName.h" - -void CQName::CrackQName(const wchar_t *wszQName, int cchQName) -{ - if (cchQName == -1) - { - cchQName = (int)wcslen(wszQName); - } - - wchar_t * wszQNameTmp = (wchar_t *) wszQName; - wchar_t * wszColon = wcschr(wszQNameTmp, L':'); - if (wszColon && (wszColon-wszQNameTmp) <= cchQName) - { - m_strPrefix.SetString(wszQNameTmp, (int)(wszColon-wszQNameTmp)); - m_strName.SetString(wszColon+1, (int)(cchQName-m_strPrefix.GetLength()-1)); - } - else - { - m_strName.SetString(wszQName, cchQName); - } -} - -CQName::CQName(const CStringW& strQName) -{ - SetQName(strQName); -} - -CQName::CQName(const CStringW& strPrefix, const CStringW& strName) - :m_strPrefix(strPrefix), m_strName(strName) -{ -} - -CQName::CQName(const wchar_t *wszQName, int cchQName) -{ - SetQName(wszQName, cchQName); -} - -void CQName::SetQName(const CStringW& strQName) -{ - CrackQName((LPCWSTR) strQName, strQName.GetLength()); -} - -void CQName::SetQName(const CStringW& strPrefix, const CStringW& strName) -{ - m_strPrefix = strPrefix; - m_strName = strName; -} - -void CQName::SetQName(const wchar_t *wszQName, int cchQName) -{ - CrackQName(wszQName, cchQName); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/QName.h b/ATL90/source/SProxy/QName.h deleted file mode 100644 index 1091c19..0000000 --- a/ATL90/source/SProxy/QName.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// QName.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" - -class CQName -{ -private: - - CStringW m_strPrefix; - CStringW m_strName; - - void CrackQName(const wchar_t *wszQName, int cchQName); - -public: - - CQName() - { - } - - CQName(const CStringW& strQName); - CQName(const CStringW& strPrefix, const CStringW& strName); - CQName(const wchar_t *wszQName, int cchQName); - - inline CQName(const CQName& that) - { - *this = that; - } - - inline const CQName& operator=(const CQName& that) - { - if (this != &that) - { - m_strPrefix = that.m_strPrefix; - m_strName = that.m_strName; - } - - return *this; - } - - void SetQName(const CStringW& strQName); - void SetQName(const CStringW& strPrefix, const CStringW& strName); - void SetQName(const wchar_t *wszQName, int cchQName); - - inline void SetPrefix(const CStringW& strPrefix) - { - m_strPrefix = strPrefix; - } - - inline CStringW& GetPrefix() - { - return m_strPrefix; - } - - inline CStringW& GetName() - { - return m_strName; - } - - inline void SetName(const CStringW& strName) - { - m_strName = strName; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/ReadMe.txt b/ATL90/source/SProxy/ReadMe.txt deleted file mode 100644 index 678f1e0..0000000 --- a/ATL90/source/SProxy/ReadMe.txt +++ /dev/null @@ -1 +0,0 @@ -This is placeholder for a readme file to Sproxy tool \ No newline at end of file diff --git a/ATL90/source/SProxy/Schema.cpp b/ATL90/source/SProxy/Schema.cpp deleted file mode 100644 index bc42367..0000000 --- a/ATL90/source/SProxy/Schema.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// Schema.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Attribute.h" -#include "Schema.h" -#include "Element.h" -#include "SimpleType.h" -#include "ComplexType.h" -#include "WSDLDocument.h" - -CComplexType * CSchema::AddComplexType(CComplexType * p) -{ - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_complexTypes.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - // - // TODO: error - // - return NULL; -} - -CSimpleType * CSchema::AddSimpleType(CSimpleType * p) -{ - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_simpleTypes.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; -} - -CElement * CSchema::AddElement(CElement * p) -{ - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_elements.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; -} - -CXSDElement * CSchema::GetNamedItemFromParent(const CStringW& strUri, const CStringW& strName) -{ - CXSDElement *pRet = NULL; - CXMLDocument *pParentDoc = GetParentDocument(); - if ((pParentDoc != NULL) && (pParentDoc->GetDocumentType() == WSDLDOC)) - { - CWSDLDocument *pWSDLDocument = static_cast(pParentDoc); - pRet = pWSDLDocument->GetComplexType(strName, strUri); - if (pRet == NULL) - { - pRet = pWSDLDocument->GetSimpleType(strName, strUri); - if (pRet == NULL) - { - pRet = pWSDLDocument->GetElement(strName, strUri); - } - } - } - return pRet; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Schema.h b/ATL90/source/SProxy/Schema.h deleted file mode 100644 index 303166a..0000000 --- a/ATL90/source/SProxy/Schema.h +++ /dev/null @@ -1,201 +0,0 @@ -// -// Schema.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "XSDElement.h" -#include "ComplexType.h" -#include "SimpleType.h" -#include "Element.h" -//#include "UnsupportedElement.h" - -#include "Emit.h" -#include "resource.h" - -class CSchema : public CXSDElement -{ -private: - - typedef CAtlPtrMap > COMPLEXTYPEMAP; - typedef CAtlPtrMap > SIMPLETYPEMAP; - typedef CAtlPtrMap > ELEMENTMAP; -// typedef CAtlPtrMap > UNSUPPORTEDMAP; - - COMPLEXTYPEMAP m_complexTypes; - SIMPLETYPEMAP m_simpleTypes; - ELEMENTMAP m_elements; -// UNSUPPORTEDMAP m_unsupportedTypes; - - CStringW m_strTargetNamespace; - CStringW m_strName; - CStringW m_strID; - -public: - - CComplexType * AddComplexType(CComplexType * p); - CSimpleType * AddSimpleType(CSimpleType * p); - CElement * AddElement(CElement * p); - - CXSDElement * GetNamedItemFromParent(const CStringW& strUri, const CStringW& strName); - - inline CXSDElement * GetNamedItem(const CStringW& strUri, const CStringW& strName) - { - CXSDElement *pRet = NULL; - if (strUri.GetLength() == 0 || strUri == GetTargetNamespace()) - { - CStringW str; - pRet = GetComplexType(str, strName); - if (pRet == NULL) - { - pRet = GetSimpleType(str, strName); - if (pRet == NULL) - { - pRet = GetElement(str, strName); -// if (pRet == NULL) -// { -// pRet = GetUnsupportedElement(str, strName); -// } - } - } - } - else - { - pRet = GetNamedItemFromParent(strUri, strName); - } - - return pRet; - } - - inline CComplexType * GetComplexType(const CStringW& strUri, const CStringW& strName) - { - if (strUri.GetLength() == 0 || strUri == GetTargetNamespace()) - { - const COMPLEXTYPEMAP::CPair *p = m_complexTypes.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - } - - return NULL; - } - - inline CSimpleType * GetSimpleType(const CStringW& strUri, const CStringW& strName) - { - if (strUri.GetLength() == 0 || strUri == GetTargetNamespace()) - { - const SIMPLETYPEMAP::CPair *p = m_simpleTypes.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - } - - return NULL; - } - - inline CElement * GetElement(const CStringW& strUri, const CStringW& strName) - { - if (strUri.GetLength() == 0 || strUri == GetTargetNamespace()) - { - const ELEMENTMAP::CPair *p = m_elements.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - } - - return NULL; - } - -// inline CUnsupportedElement * GetUnsupportedElement(const CStringW& strUri, const CStringW& strName) -// { -// if (strUri.GetLength() == 0 || strUri == GetTargetNamespace()) -// { -// const UNSUPPORTEDMAP::CPair *p = m_unsupportedTypes.Lookup(strName); -// if (p != NULL) -// { -// return p->m_value; -// } -// } -// -// return NULL; -// } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetTargetNamespace(const wchar_t *wszTargetNamespace, int cchTargetNamespace) - { - if (!wszTargetNamespace) - { - return E_FAIL; - } - - m_strTargetNamespace.SetString(wszTargetNamespace, cchTargetNamespace); - - return S_OK; - } - - inline HRESULT SetTargetNamespace(const CStringW& strTargetNamespace) - { - m_strTargetNamespace = strTargetNamespace; - - return S_OK; - } - - inline const CStringW& GetTargetNamespace() - { - return m_strTargetNamespace; - } - - inline HRESULT SetID(const wchar_t *wszID, int cchID) - { - if (!wszID) - { - return E_FAIL; - } - - m_strID.SetString(wszID, cchID); - - return S_OK; - } - - inline HRESULT SetID(const CStringW& strID) - { - m_strID = strID; - - return S_OK; - } - - inline const CStringW& GetID() - { - return m_strID; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/SchemaDocument.h b/ATL90/source/SProxy/SchemaDocument.h deleted file mode 100644 index 66201c5..0000000 --- a/ATL90/source/SProxy/SchemaDocument.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// SchemaDocument.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Schema.h" - -class CSchemaDocument : public CXMLDocument -{ -private: - - CSchema m_schema; - -public: - - inline CSchema * GetSchema() - { - return m_&schema; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/SchemaParser.cpp b/ATL90/source/SProxy/SchemaParser.cpp deleted file mode 100644 index 6b2a329..0000000 --- a/ATL90/source/SProxy/SchemaParser.cpp +++ /dev/null @@ -1,353 +0,0 @@ -// -// SchemaParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "SchemaParser.h" -#include "ComplexTypeParser.h" -#include "ElementParser.h" -#include "SimpleTypeParser.h" -#include "Schema.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CSchemaParser, OnInclude) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnImport) -{ - TRACE_PARSE_ENTRY(); - - // - // TODO: do imports here (or delay?) - // - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnAnnotation) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnRedefine) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnAttribute) -{ - TRACE_PARSE_ENTRY(); -/* - // TODO: investigate supporting this stuff - CSchema *pCurr = GetSchema(); - - if (pCurr != NULL) - { - CAttribute *pElem = pCurr->AddAttribute(); - if (pElem != NULL) - { - pElem->SetParentDocument(pCurr->GetParentDocument()); - pElem->SetParentElement(pCurr); - - CAutoPtr p( new CAttributeParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - p.Detach(); - return p->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -*/ - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - // - // TODO: investigate supporting this - // - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnAttributeGroup) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnElement) -{ - TRACE_PARSE_ENTRY(); - - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CElement ); - if (spElem != NULL) - { - SetXSDElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentSchema(pCurr); - - CAutoPtr p( new CElementParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (spElem->GetName().GetLength() != 0) - { - if (pCurr->AddElement(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - EmitNamedElementError("element"); - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CSchemaParser, OnGroup) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnNotation) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSchemaParser, OnSimpleType) -{ - TRACE_PARSE_ENTRY(); - - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CSimpleType ); - if (spElem != NULL) - { - SetXSDElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentSchema(pCurr); - - CAutoPtr p( new CSimpleTypeParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (spElem->GetName().GetLength() != 0) - { - if (pCurr->AddSimpleType(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - EmitNamedElementError("simpleType"); - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -TAG_METHOD_IMPL(CSchemaParser, OnComplexType) -{ - TRACE_PARSE_ENTRY(); - - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CComplexType ); - if (spElem != NULL) - { - SetXSDElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentSchema(pCurr); - - CAutoPtr p( new CComplexTypeParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (spElem->GetName().GetLength() != 0) - { - if (pCurr->AddComplexType(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - EmitNamedElementError("complexType"); - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - - -ATTR_METHOD_IMPL(CSchemaParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnTargetNamespace) -{ - TRACE_PARSE_ENTRY(); - - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - return pCurr->SetTargetNamespace(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnAttributeFormDefault) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnBlockDefault) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnElementFormDefault) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnFinalDefault) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSchemaParser, OnVersion) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -HRESULT __stdcall CSchemaParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CSchema * pCurr = GetSchema(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -void CSchemaParser::EmitNamedElementError(const char *szElem) -{ - int nLine = 0; - int nCol = 0; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - CSchema *pCurr = GetSchema(); - if (pCurr != NULL) - { - EmitFileError(IDS_SDL_SCHEMALEVEL_NAME, - (LPCWSTR) pCurr->GetParentDocument()->GetDocumentUri(), - nLine, nCol, 0, szElem); - } - EmitError(IDS_SDL_INTERNAL); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/SchemaParser.h b/ATL90/source/SProxy/SchemaParser.h deleted file mode 100644 index dbd1559..0000000 --- a/ATL90/source/SProxy/SchemaParser.h +++ /dev/null @@ -1,124 +0,0 @@ -// -// SchemaParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "Emit.h" -#include "resource.h" - -class CSchema; - -class CSchemaParser : public CParserBase -{ -private: - - CSchema * m_pSchema; - -public: - - inline CSchemaParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CSchema *pSchema = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pSchema(pSchema) - { - } - - inline CSchema * GetSchema() - { - return m_pSchema; - } - - inline void SetSchema(CSchema *pSchema) - { - m_pSchema = pSchema; - } - - void EmitNamedElementError(const char *szElem); - - inline void MarkUnsupported(const wchar_t *wszQName, int cchQName) - { -#ifdef _DEBUG - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - ATLTRACE( _T("%sUnsupported tag@(%d, %d) : %.*ws -- skipping element\n"), GetTabs(GetLevel()), - nLine, nCol, - cchQName, wszQName ); -#endif - } - - /* - include, import, annotation, redefine - attribute, attributeGroup, element, group, notation, simpleType, complexType - */ - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("include", XSD_NAMESPACEA, OnInclude) - XMLTAG_ENTRY_EX("import", XSD_NAMESPACEA, OnImport) - XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation) - XMLTAG_ENTRY_EX("redefine", XSD_NAMESPACEA, OnRedefine) - XMLTAG_ENTRY_EX("attribute", XSD_NAMESPACEA, OnAttribute) - XMLTAG_ENTRY_EX("attributeGroup", XSD_NAMESPACEA, OnAttributeGroup) - XMLTAG_ENTRY_EX("element", XSD_NAMESPACEA, OnElement) - XMLTAG_ENTRY_EX("group", XSD_NAMESPACEA, OnGroup) - XMLTAG_ENTRY_EX("notation", XSD_NAMESPACEA, OnNotation) - XMLTAG_ENTRY_EX("simpleType", XSD_NAMESPACEA, OnSimpleType) - XMLTAG_ENTRY_EX("complexType", XSD_NAMESPACEA, OnComplexType) - END_XMLTAG_MAP() - - /* - - */ - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("targetNamespace", OnTargetNamespace) - XMLATTR_ENTRY("id", OnID) - XMLATTR_ENTRY("attributeFormDefault", OnAttributeFormDefault) - XMLATTR_ENTRY("blockDefault", OnBlockDefault) - XMLATTR_ENTRY("elementFormDefault", OnElementFormDefault) - XMLATTR_ENTRY("finalDefault", OnFinalDefault) - XMLATTR_ENTRY("version", OnVersion) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnInclude); - TAG_METHOD_DECL(OnImport); - TAG_METHOD_DECL(OnAnnotation); - TAG_METHOD_DECL(OnRedefine); - TAG_METHOD_DECL(OnAttribute); - TAG_METHOD_DECL(OnAttributeGroup); - TAG_METHOD_DECL(OnElement); - TAG_METHOD_DECL(OnGroup); - TAG_METHOD_DECL(OnNotation); - TAG_METHOD_DECL(OnSimpleType); - TAG_METHOD_DECL(OnComplexType); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnTargetNamespace); - ATTR_METHOD_DECL(OnID); - ATTR_METHOD_DECL(OnAttributeFormDefault); - ATTR_METHOD_DECL(OnBlockDefault); - ATTR_METHOD_DECL(OnElementFormDefault); - ATTR_METHOD_DECL(OnFinalDefault); - ATTR_METHOD_DECL(OnVersion); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/SimpleType.h b/ATL90/source/SProxy/SimpleType.h deleted file mode 100644 index e047105..0000000 --- a/ATL90/source/SProxy/SimpleType.h +++ /dev/null @@ -1,276 +0,0 @@ -// -// SimpleType.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XSDElement.h" -#include "QName.h" - -// typedef CStringW CEnumeration; -// typedef CStringElementTraits CEnumerationElementTraits; - -class CEnumeration -{ -private: - - CStringW m_strValue; - -public: - - inline HRESULT SetValue(const wchar_t *wszValue, int cchValue) - { - if (!wszValue) - { - return E_FAIL; - } - - m_strValue.SetString(wszValue, cchValue); - - return S_OK; - } - - inline HRESULT SetValue(const CStringW& strValue) - { - m_strValue = strValue; - - return S_OK; - } - - const CStringW& GetValue() - { - return m_strValue; - } - - const CStringW& GetValue() const - { - return m_strValue; - } -}; - -class CEnumerationElementTraits : - public CElementTraitsBase -{ -public: - - static ULONG Hash( INARGTYPE e ) - { - LPCWSTR wsz = (LPCWSTR) e.GetValue(); - ULONG nHash = 0; - while (*wsz != 0) - { - nHash = (nHash<<5)+nHash+(*wsz); - wsz++; - } - - return nHash; - } - - static bool CompareElements(INARGTYPE e1, INARGTYPE e2) - { - return e1.GetValue() == e2.GetValue(); - } - - static int CompareElementsOrdered(INARGTYPE e1, INARGTYPE e2) - { - return (CStringW::StrTraits::StringCompare(e1.GetValue(), e2.GetValue())); - } -}; - - -enum ENCODING_TYPE -{ - ENCODING_ERR = 0, - ENCODING_UNK, - ENCODING_HEX, - ENCODING_BASE64 -}; - -ENCODING_TYPE GetEncodingAttribute(const wchar_t *wszVal, int cchVal); - -class CSimpleType : public CXSDElement -{ -private: - - CAtlList m_enumerations; - ENCODING_TYPE m_encType; - int m_nLength; - int m_nMaxLength; - int m_nMinLength; - - CStringW m_strName; - CQName m_base; - -public: - - CSimpleType() - :m_encType(ENCODING_UNK), m_nLength(-1), m_nMaxLength(-1), m_nMinLength(-1) - { - SetElementType(XSD_SIMPLETYPE); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline HRESULT SetBase(const CStringW& strQName) - { - m_base.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetBase(const CStringW& strPrefix, const CStringW& strName) - { - m_base.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetBase(const wchar_t *wszQName, int cchQName) - { - m_base.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetBase() - { - return m_base; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline ENCODING_TYPE GetEncodingType() - { - return m_encType; - } - - inline ENCODING_TYPE SetEncodingType(ENCODING_TYPE encType) - { - return m_encType = encType; - } - - inline HRESULT SetEncodingType(const wchar_t * wszVal, int cchVal) - { - m_encType = GetEncodingAttribute(wszVal, cchVal); - if ((m_encType != ENCODING_ERR) && - (m_encType != ENCODING_UNK)) - { - return S_OK; - } - return E_FAIL; - } - - inline CEnumeration * AddEnumeration(CEnumeration* pEnum = NULL) - { - POSITION pos = NULL; - if (pEnum != NULL) - { - pos = m_enumerations.AddTail(*pEnum); - } - else - { - CEnumeration e; - pos = m_enumerations.AddTail(e); - } - - if (pos != NULL) - { - return &(m_enumerations.GetAt(pos)); - } - - return NULL; - } - - inline POSITION GetFirstEnumeration() - { - return m_enumerations.GetHeadPosition(); - } - - inline CEnumeration * GetNextEnumeration(POSITION &pos) - { - return &m_enumerations.GetNext(pos); - } - - inline BOOL HasLength() - { - return (m_nLength != -1 ? TRUE : FALSE); - } - - inline BOOL HasMinLength() - { - return (m_nMinLength != -1 ? TRUE : FALSE); - } - - inline BOOL HasMaxLength() - { - return (m_nMaxLength != -1 ? TRUE : FALSE); - } - - inline int GetLength() - { - return m_nLength; - } - - inline void SetLength(int nLength) - { - m_nLength = nLength; - } - - inline int GetMinLength() - { - return m_nMinLength; - } - - inline void SetMinLength(int nLength) - { - m_nMinLength = nLength; - } - - inline int GetMaxLength() - { - return m_nMaxLength; - } - - inline void SetMaxLength(int nLength) - { - m_nMaxLength = nLength; - } -}; - -inline ENCODING_TYPE GetEncodingAttribute(const wchar_t *wszVal, int cchVal) -{ - ENCODING_TYPE ret = ENCODING_ERR; - if (cchVal == sizeof("hex")-1 && !wcsncmp(wszVal, L"hex", cchVal)) - { - ret = ENCODING_HEX; - } - else if (cchVal == sizeof("base64")-1 && !wcsncmp(wszVal, L"base64", cchVal)) - { - ret = ENCODING_BASE64; - } - - return ret; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/SimpleTypeParser.cpp b/ATL90/source/SProxy/SimpleTypeParser.cpp deleted file mode 100644 index 2da2f4c..0000000 --- a/ATL90/source/SProxy/SimpleTypeParser.cpp +++ /dev/null @@ -1,260 +0,0 @@ -// -// SimpleTypeParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "SimpleTypeParser.h" -#include "SimpleType.h" -#include "Util.h" -#include "Emit.h" -#include "resource.h" - -TAG_METHOD_IMPL(CSimpleTypeParser, OnAnnotation) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnLength) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnPattern) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnEnumeration) -{ - TRACE_PARSE_ENTRY(); - - CSimpleType * pCurr = GetSimpleType(); - if (pCurr != NULL) - { - CEnumeration *pElem = pCurr->AddEnumeration(); - if (pElem != NULL) - { - CStringW strValue; - if (SUCCEEDED(GetAttribute(pAttributes, L"value", sizeof("value")-1, strValue))) - { - if (SUCCEEDED(pElem->SetValue(strValue))) - { - return SkipElement(); - } - } - OnMissingAttribute(TRUE, L"value", sizeof("value")-1, L"", 0); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnScale) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnPeriod) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnDuration) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMaxLength) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnPrecision) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMinInclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMinExclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMaxInclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMaxExclusive) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnMinLength) -{ - TRACE_PARSE_ENTRY(); - - MarkUnsupported(wszQName, cchQName); - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnEncoding) -{ - TRACE_PARSE_ENTRY(); - - DisableReset(); - - CSimpleType * pCurr = GetSimpleType(); - if (pCurr != NULL) - { - const wchar_t *wsz = NULL; - int cch = 0; - HRESULT hr = GetAttribute(pAttributes, L"value", sizeof("value")-1, &wsz, &cch); - if ((SUCCEEDED(hr)) && (wsz != NULL)) - { - return pCurr->SetEncodingType(wsz, cch); - } - - OnMissingAttribute(TRUE, L"value", sizeof("value")-1, L"", 0); - } - - EmitError(IDS_SDL_INTERNAL); - return E_FAIL; -} - -TAG_METHOD_IMPL(CSimpleTypeParser, OnRestriction) -{ - TRACE_PARSE_ENTRY(); - - DisableReset(); - - CSimpleType * pCurr = GetSimpleType(); - if (pCurr != NULL) - { - const wchar_t *wsz = NULL; - int cch = 0; - HRESULT hr = GetAttribute(pAttributes, L"base", sizeof("base")-1, - &wsz, &cch); - if ((hr == S_OK) && (wsz != NULL)) - { - return pCurr->SetBase(wsz, cch); - } - OnMissingAttribute(TRUE, L"base", sizeof("base")-1, L"", 0); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - - -ATTR_METHOD_IMPL(CSimpleTypeParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CSimpleType * pCurr = GetSimpleType(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CSimpleTypeParser, OnID) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -ATTR_METHOD_IMPL(CSimpleTypeParser, OnAbstract) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -HRESULT __stdcall CSimpleTypeParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CSimpleType * pCurr = GetSimpleType(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/SimpleTypeParser.h b/ATL90/source/SProxy/SimpleTypeParser.h deleted file mode 100644 index dab243b..0000000 --- a/ATL90/source/SProxy/SimpleTypeParser.h +++ /dev/null @@ -1,117 +0,0 @@ -// -// SimpleTypeParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "resource.h" - -class CSimpleType; - -class CSimpleTypeParser : public CParserBase -{ -private: - - CSimpleType * m_pType; - -public: - - inline CSimpleTypeParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CSimpleType * pType) - :CParserBase(pReader, pParent, dwLevel), m_pType(pType) - { - } - - inline CSimpleType * GetSimpleType() - { - return m_pType; - } - - inline void SetSimpleType(CSimpleType * pType) - { - m_pType = pType; - } - - inline void MarkUnsupported(const wchar_t *wszQName, int cchQName) - { -#ifdef _DEBUG - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - ATLTRACE( _T("%sUnsupported tag@(%d, %d) : %.*ws -- skipping element\n"), GetTabs(GetLevel()), - nLine, nCol, - cchQName, wszQName ); -#endif - } - - /* - annotation, length, enumeration, pattern, scale, period, duration, - maxLength, precision, minInclusive, minExclusive, maxInclusive, - maxExclusive, minLength, encoding - */ - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("enumeration", XSD_NAMESPACEA, OnEnumeration) - XMLTAG_ENTRY_EX("annotation", XSD_NAMESPACEA, OnAnnotation) - XMLTAG_ENTRY_EX("length", XSD_NAMESPACEA, OnLength) - XMLTAG_ENTRY_EX("pattern", XSD_NAMESPACEA, OnPattern) - XMLTAG_ENTRY_EX("scale", XSD_NAMESPACEA, OnScale) - XMLTAG_ENTRY_EX("period", XSD_NAMESPACEA, OnPeriod) - XMLTAG_ENTRY_EX("duration", XSD_NAMESPACEA, OnDuration) - XMLTAG_ENTRY_EX("maxLength", XSD_NAMESPACEA, OnMaxLength) - XMLTAG_ENTRY_EX("precision", XSD_NAMESPACEA, OnPrecision) - XMLTAG_ENTRY_EX("minInclusive", XSD_NAMESPACEA, OnMinInclusive) - XMLTAG_ENTRY_EX("minExclusive", XSD_NAMESPACEA, OnMinExclusive) - XMLTAG_ENTRY_EX("maxInclusive", XSD_NAMESPACEA, OnMaxInclusive) - XMLTAG_ENTRY_EX("maxExclusive", XSD_NAMESPACEA, OnMaxExclusive) - XMLTAG_ENTRY_EX("minLength", XSD_NAMESPACEA, OnMinLength) - XMLTAG_ENTRY_EX("encoding", XSD_NAMESPACEA, OnEncoding) - - // REVIEW: new one - XMLTAG_ENTRY_EX("restriction", XSD_NAMESPACEA, OnRestriction) - END_XMLTAG_MAP() - -/* - -*/ - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("id", OnID) - XMLATTR_ENTRY("abstract", OnAbstract) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnAnnotation); - TAG_METHOD_DECL(OnLength); - TAG_METHOD_DECL(OnPattern); - TAG_METHOD_DECL(OnEnumeration); - TAG_METHOD_DECL(OnScale); - TAG_METHOD_DECL(OnPeriod); - TAG_METHOD_DECL(OnDuration); - TAG_METHOD_DECL(OnMaxLength); - TAG_METHOD_DECL(OnPrecision); - TAG_METHOD_DECL(OnMinInclusive); - TAG_METHOD_DECL(OnMinExclusive); - TAG_METHOD_DECL(OnMaxInclusive); - TAG_METHOD_DECL(OnMaxExclusive); - TAG_METHOD_DECL(OnMinLength); - TAG_METHOD_DECL(OnEncoding); - TAG_METHOD_DECL(OnRestriction); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnID); - ATTR_METHOD_DECL(OnAbstract); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/SkipParser.h b/ATL90/source/SProxy/SkipParser.h deleted file mode 100644 index 330f485..0000000 --- a/ATL90/source/SProxy/SkipParser.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SkipParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CSkipParser : public CParserBase -{ -public: - - inline CSkipParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel) - :CParserBase(pReader, pParent, dwLevel) - { - } - - virtual HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() - { - DisableReset(); - return S_OK; - } - - BEGIN_XMLTAG_MAP() - END_XMLTAG_MAP() -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/SproxyColl.h b/ATL90/source/SProxy/SproxyColl.h deleted file mode 100644 index aa62a1c..0000000 --- a/ATL90/source/SProxy/SproxyColl.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// SproxyColl.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" - -template > -class CAtlPtrList : public CAtlList -{ -private: - typedef CAtlList Base; - BOOL m_bAttached; - -public: - - CAtlPtrList() - :m_bAttached(TRUE) - { - } - - void Detach() - { - m_bAttached = FALSE; - } - - void RemoveAll() - { - if (m_bAttached) - { - POSITION pos = GetHeadPosition(); - while (pos != NULL) - { - delete (GetAt(pos)); - GetAt(pos) = NULL; - GetNext(pos); - } - } - Base::RemoveAll(); - } - - ~CAtlPtrList() - { - RemoveAll(); - } -}; // class CAtlPtrList - - -template , class VTraits = CElementTraits > -class CAtlPtrMap : public CAtlMap -{ -private: - typedef CAtlMap Base; - BOOL m_bAttached; - -public: - - CAtlPtrMap() - :m_bAttached(TRUE) - { - } - - void Detach() - { - m_bAttached = FALSE; - } - - void RemoveAll() - { - Base::DisableAutoRehash(); - if (m_bAttached) - { - POSITION pos = GetStartPosition(); - while (pos != NULL) - { - delete (GetValueAt(pos)); - GetValueAt(pos) = NULL; - GetNext(pos); - } - } - Base::RemoveAll(); - Base::EnableAutoRehash(); - } - - ~CAtlPtrMap() - { - RemoveAll(); - } -}; // class CAtlPtrMap \ No newline at end of file diff --git a/ATL90/source/SProxy/SproxyError.h b/ATL90/source/SProxy/SproxyError.h deleted file mode 100644 index 8e995b9..0000000 --- a/ATL90/source/SProxy/SproxyError.h +++ /dev/null @@ -1,9 +0,0 @@ -// -// SproxyError.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" \ No newline at end of file diff --git a/ATL90/source/SProxy/StdAfx.cpp b/ATL90/source/SProxy/StdAfx.cpp deleted file mode 100644 index 4ab043b..0000000 --- a/ATL90/source/SProxy/StdAfx.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// sproxy.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/ATL90/source/SProxy/StdAfx.h b/ATL90/source/SProxy/StdAfx.h deleted file mode 100644 index 293c66d..0000000 --- a/ATL90/source/SProxy/StdAfx.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// stdafx.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#pragma warning(1: 4927) -#pragma warning(1: 4928) - -#define _WIN32_WINNT 0x0502 - -#ifdef _DEBUG -#define ATL_DEBUG_STENCILS -#endif - -#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 - -#include -#include -#include -#include -#include "SproxyColl.h" -#include "resource.h" - -#ifdef _DEBUG -#include -#endif - -#define _MAKEWIDESTR( str ) L ## str -#define MAKEWIDESTR( str ) _MAKEWIDESTR( str ) - -#include "Namespaces.h" - -typedef CAtlMap, CStringRefElementTraits > NAMESPACEMAP; - -const wchar_t * GetWSDLFile(); - -#include "DiscoMapDocument.h" - -CDiscoMapDocument * GetDiscoMapDocument(); - -#ifdef _DEBUG - -inline const TCHAR * GetTabs(DWORD dwLevel) -{ - static TCHAR s_szTabs[2048]; - - dwLevel = min(dwLevel, 2047); - for (DWORD i=0; igetValueFromQName(wszAttrName, cchName, pwszValue, pcchValue) == S_OK ? S_OK : E_FAIL); - } - return (pAttributes->getValueFromName(wszNamespace, cchNamespace, - wszAttrName, cchName, pwszValue, pcchValue) == S_OK ? S_OK : E_FAIL); -} - -HRESULT GetAttribute( - ISAXAttributes *pAttributes, - const wchar_t *wszAttrName, int cchName, - CStringW &strValue, - wchar_t *wszNamespace, int cchNamespace) -{ - const wchar_t *wszValue = NULL; - int cchValue = 0; - - if (!pAttributes || !wszAttrName) - { - return E_INVALIDARG; - } - - HRESULT hr; - if (!wszNamespace) - { - hr = (pAttributes->getValueFromQName(wszAttrName, cchName, &wszValue, &cchValue) == S_OK ? S_OK : E_FAIL); - } - else - { - hr = (pAttributes->getValueFromName(wszNamespace, cchNamespace, - wszAttrName, cchName, &wszValue, &cchValue) == S_OK ? S_OK : E_FAIL); - } - - if (hr == S_OK) - { - strValue.SetString(wszValue, cchValue); - } - - return hr; -} - -inline int IsUnsafeCppChar(char ch) -{ - return (!isalnum((unsigned char)ch) && ch != '_'); -} - -void _CreateSafeCppName( - char *szSafeName, - const char *szName, - const wchar_t *wszName, - size_t nMaxLen) -{ - ATLASSERT( szSafeName != NULL ); - ATLASSERT( szName != NULL ); - ATLASSERT( wszName != NULL ); - - static CCppKeywordLookup cppkwLookup; - const CCppKeywordLookup::HashNode *p = cppkwLookup.Lookup(wszName); - - char *pszOut = szSafeName; - - size_t nLen = 0; - if (p != NULL) - { - // append 3 underscores for a reserved keyword -- ugly, but hey... - memcpy(pszOut, "___", 3); - pszOut+= 3; - nLen+= 3; - } - - if (isdigit((unsigned char)(*szName))) - { - *pszOut++ = '_'; - nLen++; - } - - while (*szName) - { - if (nLen == nMaxLen) - { - // just truncate - break; - } - - if (IsUnsafeCppChar(*szName)) - { - *pszOut = '_'; - } - else - { - *pszOut = *szName; - } - pszOut++; - szName++; - nLen++; - } - - *pszOut = '\0'; -} - -size_t AllocateNameString(char **ppszName, const char *szName) -{ - ATLASSERT( ppszName != NULL ); - ATLASSERT( szName != NULL ); - - size_t nMaxLen = 3*strlen(szName); - *ppszName = (char *)malloc(nMaxLen+1); - if (!*ppszName) - { - return 0; - } - - return nMaxLen; -} - -size_t AllocateNameString(char **ppszName, const wchar_t *wszName) -{ - ATLASSERT( ppszName != NULL ); - ATLASSERT( wszName != NULL ); - - size_t nMaxLen = 3*wcslen(wszName); - *ppszName = (char *)malloc(nMaxLen+1); - if (!*ppszName) - { - return 0; - } - - return nMaxLen; -} - -HRESULT CreateSafeCppName(char **ppszName, const char *szName) -{ - ATLASSERT( ppszName != NULL ); - ATLASSERT( szName != NULL ); - - size_t nMaxLen = AllocateNameString(ppszName, szName); - if (!nMaxLen) - { - return E_OUTOFMEMORY; - } - - _CreateSafeCppName(*ppszName, szName, CA2W( szName ), nMaxLen); - return S_OK; -} - -HRESULT CreateSafeCppName(char **ppszName, const wchar_t *wszName) -{ - ATLASSERT( ppszName != NULL ); - ATLASSERT( wszName != NULL ); - - size_t nMaxLen = AllocateNameString(ppszName, wszName); - if (!nMaxLen) - { - return E_OUTOFMEMORY; - } - - _CreateSafeCppName(*ppszName, CW2A( wszName ), wszName, nMaxLen); - return S_OK; -} - -HRESULT CreateSafeCppName(CStringA& strSafeName, const wchar_t *wszName) -{ - ATLASSERT( wszName != NULL ); - - size_t nMaxLen = 3*wcslen(wszName); - - char *szSafeName = strSafeName.GetBuffer((int) nMaxLen); - - _CreateSafeCppName(szSafeName, CW2A( wszName ), wszName, nMaxLen); - - strSafeName.ReleaseBuffer(); - - return S_OK; -} - -HRESULT CreateSafeCppName(CStringA& strSafeName, const char *szName) -{ - ATLASSERT( szName != NULL ); - - size_t nMaxLen = 3*strlen(szName); - - char *szSafeName = strSafeName.GetBuffer((int) nMaxLen); - - _CreateSafeCppName(szSafeName, szName, CA2W( szName ), nMaxLen); - - strSafeName.ReleaseBuffer(); - - return S_OK; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/Util.h b/ATL90/source/SProxy/Util.h deleted file mode 100644 index 43ca0cd..0000000 --- a/ATL90/source/SProxy/Util.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// Util.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" - -HRESULT GetAttribute( - ISAXAttributes *pAttributes, - const wchar_t *wszAttrName, int cchName, - const wchar_t **pwszValue, int *pcchValue, - wchar_t *wszNamespace = NULL, int cchNamespace = 0); - -HRESULT GetAttribute( - ISAXAttributes *pAttributes, - const wchar_t *wszAttrName, int cchName, - CStringW &strValue, - wchar_t *wszNamespace = NULL, int cchNamespace = 0); - -inline HRESULT GetBooleanValue(bool *pbOut, const wchar_t *wsz, int cch) -{ - if (pbOut == NULL) - { - return E_POINTER; - } - - if (wsz == NULL) - { - return E_INVALIDARG; - } - - HRESULT hr = E_FAIL; - - switch (wsz[0]) - { - case L'1': - { - if (cch == 1) - { - *pbOut = true; - hr = S_OK; - } - break; - } - case L'0': - { - if (cch == 1) - { - *pbOut = false; - hr = S_OK; - } - break; - } - case L't': - { - if ((cch==sizeof("true")-1) && (!wcsncmp(wsz, L"true", cch))) - { - *pbOut = true; - hr = S_OK; - } - break; - } - case L'f': - { - if ((cch==sizeof("false")-1) && (!wcsncmp(wsz, L"false", cch))) - { - *pbOut = false; - hr = S_OK; - } - break; - } - } - - return hr; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLBinding.cpp b/ATL90/source/SProxy/WSDLBinding.cpp deleted file mode 100644 index fc096ca..0000000 --- a/ATL90/source/SProxy/WSDLBinding.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// WSDLBinding.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "WSDLBinding.h" -#include "WSDLPortType.h" -#include "WSDLDocument.h" -#include "Emit.h" -#include "resource.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -CWSDLPortType * CWSDLBinding::GetPortType() -{ - if (m_pPortType != NULL) - { - return m_pPortType; - } - - CXMLDocument *pDoc = GetParentDocument(); - if (pDoc != NULL) - { - CStringW strUri; - if (SUCCEEDED(GetNamespaceUri(m_type.GetPrefix(), strUri))) - { - if (strUri == pDoc->GetTargetNamespace()) - { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - m_pPortType = pWSDLDoc->GetPortType(m_type.GetName()); - } - if (m_pPortType == NULL) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, - "portType", strUri, m_type.GetName()); - } - } - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, m_type.GetPrefix()); - } - } - - return m_pPortType; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLBinding.h b/ATL90/source/SProxy/WSDLBinding.h deleted file mode 100644 index c40a326..0000000 --- a/ATL90/source/SProxy/WSDLBinding.h +++ /dev/null @@ -1,260 +0,0 @@ -// -// WSDLBinding.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "QName.h" -#include "Emit.h" - -#include "WSDLPortTypeOperation.h" - -class CWSDLPortType; - -class CSoapBinding : public CXMLElement -{ -private: - CStringW m_strTransport; - SOAPSTYLE m_style; - - inline HRESULT ValidateStyle(const wchar_t *wsz, int cch) - { - m_style = ::GetStyle(wsz, cch); - if (m_style != SOAPSTYLE_UNK) - { - return S_OK; - } - return E_FAIL; - } - -public: - - CSoapBinding() - :m_style(SOAPSTYLE_UNK) - { - } - - inline HRESULT SetTransport(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strTransport.SetString(wszName, cchName); - - return S_OK; - } - - inline void SetTransport(const CStringW& strName) - { - m_strTransport = strName; - } - - inline const CStringW& GetTransport() - { - return m_strTransport; - } - - inline HRESULT SetStyle(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - return ValidateStyle(wszName, cchName); - } - - inline HRESULT SetStyle(const CStringW& strName) - { - return ValidateStyle(strName, strName.GetLength()); - } - - inline const SOAPSTYLE GetStyle() - { - return m_style; - } -}; - -class CHttpBinding : public CXMLElement -{ -private: - - CStringW m_strVerb; - -public: - - inline HRESULT SetVerb(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strVerb.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetVerb(const CStringW& strName) - { - m_strVerb = strName; - return S_OK; - } - - inline const CStringW& GetVerb() - { - return m_strVerb; - } -}; - -class CWSDLBinding : public CXMLElement -{ -private: - - CStringW m_strName; - CQName m_type; - - CWSDLPortType * m_pPortType; - - CAutoPtr m_pSoapBinding; - CAutoPtr m_pHttpBinding; - - typedef CAtlPtrMap > PORTYPEOPERATIONMAP; - - PORTYPEOPERATIONMAP m_operations; - -public: - - inline CWSDLBinding() - :m_pPortType(NULL) - { - } - - CWSDLPortType * GetPortType(); - - inline CWSDLPortTypeOperation * AddOperation(CWSDLPortTypeOperation *p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_operations.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CSoapBinding * AddSoapBinding(CSoapBinding *pBinding = NULL) - { - if (pBinding == NULL) - { - pBinding = new CSoapBinding; - } - - m_pSoapBinding.Attach( pBinding ); - return m_pSoapBinding; - } - - inline CSoapBinding * GetSoapBinding() - { - return m_pSoapBinding; - } - - inline CHttpBinding * AddHttpBinding(CHttpBinding *pBinding = NULL) - { - if (pBinding == NULL) - { - pBinding = new CHttpBinding; - } - - m_pHttpBinding.Attach( pBinding ); - return m_pHttpBinding; - } - - inline CHttpBinding * GetHttpBinding() - { - return m_pHttpBinding; - } - - inline CWSDLPortTypeOperation * GetOperation(const CStringW& strName) - { - const PORTYPEOPERATIONMAP::CPair *p = m_operations.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } - - inline POSITION GetFirstOperation() - { - return m_operations.GetStartPosition(); - } - - inline CWSDLPortTypeOperation * GetNextOperation(POSITION &pos) - { - return m_operations.GetNextValue(pos); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetType(const CStringW& strQName) - { - m_type.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetType(const CStringW& strPrefix, const CStringW& strName) - { - m_type.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetType(const wchar_t *wszQName, int cchQName) - { - m_type.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline const CQName& GetType() - { - return m_type; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLBindingParser.cpp b/ATL90/source/SProxy/WSDLBindingParser.cpp deleted file mode 100644 index 00ecca8..0000000 --- a/ATL90/source/SProxy/WSDLBindingParser.cpp +++ /dev/null @@ -1,215 +0,0 @@ -// -// WSDLBindingParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLBindingParser.h" -#include "WSDLOperationParser.h" - -#include "WSDLBinding.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLBindingParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLBindingParser, OnOperation) -{ - TRACE_PARSE_ENTRY(); - - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLPortTypeOperation ); - - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - - CAutoPtr p( new CWSDLOperationParser(GetReader(), this, GetLevel(), spElem) ); - if (p) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (pCurr->AddOperation(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLBindingParser, OnSoapBinding) -{ - TRACE_PARSE_ENTRY(); - - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - CSoapBinding *pBinding = pCurr->AddSoapBinding(); - if (pBinding != NULL) - { - SetXMLElementInfo(pBinding, pCurr, GetLocator()); - - CStringW strTransport; - if (S_OK == GetAttribute(pAttributes, L"transport", sizeof("transport")-1, strTransport)) - { - pBinding->SetTransport(strTransport); - } - - const wchar_t *wszStyle; - int cchStyle; - HRESULT hr = S_OK; - if (S_OK == GetAttribute(pAttributes, L"style", sizeof("style")-1, &wszStyle, &cchStyle)) - { - hr = pBinding->SetStyle(wszStyle, cchStyle); - if (FAILED(hr)) - { - EmitInvalidValue("style", wszStyle); - } - } - - if (SUCCEEDED(hr)) - { - return SkipElement(); - } - } - - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLBindingParser, OnHttpBinding) -{ - TRACE_PARSE_ENTRY(); - - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - CHttpBinding *pBinding = pCurr->AddHttpBinding(); - if (pBinding != NULL) - { - SetXMLElementInfo(pBinding, pCurr, GetLocator()); - - CStringW strVerb; - if (S_OK == GetAttribute(pAttributes, L"verb", sizeof("verb")-1, strVerb)) - { - if (SUCCEEDED(pBinding->SetVerb(strVerb))) - { - return SkipElement(); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -//TAG_METHOD_IMPL(CWSDLBindingParser, OnSudsClass) -//{ -// TRACE_PARSE_ENTRY(); -// -// return SkipElement(); -//} -// -//TAG_METHOD_IMPL(CWSDLBindingParser, OnStkPreferredBinding) -//{ -// TRACE_PARSE_ENTRY(); -// -// return SkipElement(); -//} - -ATTR_METHOD_IMPL(CWSDLBindingParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLBindingParser, OnType) -{ - TRACE_PARSE_ENTRY(); - - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - return pCurr->SetType(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLBindingParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLBinding * pCurr = GetBinding(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLBindingParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLBinding *pCurr = GetBinding(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLBindingParser.h b/ATL90/source/SProxy/WSDLBindingParser.h deleted file mode 100644 index 78fa9af..0000000 --- a/ATL90/source/SProxy/WSDLBindingParser.h +++ /dev/null @@ -1,77 +0,0 @@ -// -// WSDLBindingParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLBinding; - -class CWSDLBindingParser : public CParserBase -{ -private: - - CWSDLBinding *m_pBinding; - -public: - - inline CWSDLBindingParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLBinding *pBinding = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pBinding(pBinding) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("binding", SOAP_NAMESPACEA, OnSoapBinding) - XMLTAG_ENTRY_EX("operation", WSDL_NAMESPACEA, OnOperation) - XMLTAG_ENTRY_EX("binding", HTTP_NAMESPACEA, OnHttpBinding) - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - - // extensibility elements -// XMLTAG_ENTRY_EX("class", SUDS_NAMESPACEA, OnSudsClass) -// XMLTAG_ENTRY_EX("binding", STK_PREFERREDENCODING_NAMESPACEA, OnStkPreferredBinding) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("type", OnType) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnOperation); - TAG_METHOD_DECL(OnSoapBinding); - TAG_METHOD_DECL(OnHttpBinding); - -// TAG_METHOD_DECL(OnSudsClass); -// TAG_METHOD_DECL(OnStkPreferredBinding); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnType); - - inline CWSDLBinding * GetBinding() - { - return m_pBinding; - } - - inline void SetBinding(CWSDLBinding * pBinding) - { - ATLASSERT( pBinding != NULL ); - - m_pBinding = pBinding; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLDocument.h b/ATL90/source/SProxy/WSDLDocument.h deleted file mode 100644 index ce42adb..0000000 --- a/ATL90/source/SProxy/WSDLDocument.h +++ /dev/null @@ -1,371 +0,0 @@ -// -// WSDLDocument.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLDocument.h" -#include "XMLElement.h" -#include "WSDLType.h" -#include "WSDLMessage.h" -#include "WSDLPortType.h" -#include "WSDLBinding.h" -#include "WSDLService.h" -#include "Emit.h" -#include "resource.h" - -#include "Attribute.h" -#include "Content.h" -#include "SimpleType.h" -#include "ComplexType.h" -#include "Element.h" -//#include "UnsupportedElement.h" - -class CWSDLDocument : public CXMLDocument -{ -private: - - typedef CAtlPtrMap > MESSAGEMAP; - typedef CAtlPtrMap > PORTMAP; - typedef CAtlPtrMap > BINDINGMAP; - typedef CAtlPtrMap > SERVICEMAP; - - CAtlPtrList m_types; - - MESSAGEMAP m_messages; - PORTMAP m_portTypes; - BINDINGMAP m_bindings; - SERVICEMAP m_services; - - CStringW m_strName; - -public: - - inline CWSDLDocument() - { - SetDocumentType(WSDLDOC); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline CWSDLType * AddType(CWSDLType * p = NULL) - { - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CWSDLType ); - p = spOut; - } - - if (p != NULL) - { - if (m_types.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; - } - - inline POSITION GetFirstType() - { - return m_types.GetHeadPosition(); - } - - inline CWSDLType * GetNextType(POSITION& pos) - { - return m_types.GetNext(pos); - } - - inline CComplexType * GetComplexType(const CStringW& strName, const CStringW& strUri) - { - if (strUri != GetTargetNamespace()) - { - // - // TODO: call import handler - // - } - - POSITION pos = GetFirstType(); - while (pos != NULL) - { - CWSDLType *pType = GetNextType(pos); - if (pType != NULL) - { - POSITION schemaPos = pType->GetFirstSchema(); - while (schemaPos != NULL) - { - CSchema *pSchema = pType->GetNextSchema(schemaPos); - if (pSchema != NULL) - { - CComplexType *pRet = pSchema->GetComplexType(strUri, strName); - if (pRet != NULL) - { - return pRet; - } - } - } - } - } - - return NULL; - } - - inline CElement * GetElement(const CStringW& strName, const CStringW& strUri) - { - if (strUri != GetTargetNamespace()) - { - // - // TODO: call import handler - // - } - - POSITION pos = GetFirstType(); - while (pos != NULL) - { - CWSDLType *pType = GetNextType(pos); - if (pType != NULL) - { - POSITION schemaPos = pType->GetFirstSchema(); - while (schemaPos != NULL) - { - CSchema *pSchema = pType->GetNextSchema(schemaPos); - if (pSchema != NULL) - { - CElement *pRet = pSchema->GetElement(strUri, strName); - if (pRet != NULL) - { - return pRet; - } - } - } - } - } - - return NULL; - } - - inline CSimpleType * GetSimpleType(const CStringW& strName, const CStringW& strUri) - { - if (strUri != GetTargetNamespace()) - { - // - // TODO: call import handler - // - } - - POSITION pos = GetFirstType(); - while (pos != NULL) - { - CWSDLType *pType = GetNextType(pos); - if (pType != NULL) - { - POSITION schemaPos = pType->GetFirstSchema(); - while (schemaPos != NULL) - { - CSchema *pSchema = pType->GetNextSchema(schemaPos); - if (pSchema != NULL) - { - CSimpleType *pRet = pSchema->GetSimpleType(strUri, strName); - if (pRet != NULL) - { - return pRet; - } - } - } - } - } - - return NULL; - } - -// inline CUnsupportedElement * GetUnsupportedElement(const CStringW& strName, const CStringW& strUri) -// { -// if (strUri != GetTargetNamespace()) -// { -// // -// // TODO: call import handler -// // -// } -// -// POSITION pos = GetFirstType(); -// while (pos != NULL) -// { -// CWSDLType *pType = GetNextType(pos); -// if (pType != NULL) -// { -// POSITION schemaPos = pType->GetFirstSchema(); -// while (schemaPos != NULL) -// { -// CSchema *pSchema = pType->GetNextSchema(schemaPos); -// if (pSchema != NULL) -// { -// CUnsupportedElement *pRet = pSchema->GetUnsupportedElement(strUri, strName); -// if (pRet != NULL) -// { -// return pRet; -// } -// } -// } -// } -// } -// -//// EmitError(IDS_SDL_UNRESOLVED_ELEM, strUri, strName); -// return NULL; -// } - - inline CWSDLMessage * AddMessage(CWSDLMessage * p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_messages.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; - } - - inline CWSDLMessage * GetMessage(const CStringW& strName) - { - const MESSAGEMAP::CPair * p = m_messages.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } - - inline CWSDLPortType * AddPortType(CWSDLPortType * p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_portTypes.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; - } - - inline CWSDLPortType * GetPortType(const CStringW& strName) - { - const PORTMAP::CPair * p = m_portTypes.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } - - inline CWSDLBinding * AddBinding(CWSDLBinding * p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_bindings.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; - } - - inline POSITION GetFirstBinding() - { - return m_bindings.GetStartPosition(); - } - - inline CWSDLBinding * GetNextBinding(POSITION &pos) - { - return m_bindings.GetNextValue(pos); - } - - inline CWSDLBinding * GetBinding(const CStringW &strName) - { - const BINDINGMAP::CPair * p = m_bindings.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } - - inline CWSDLService * AddService(CWSDLService * p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_services.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - return NULL; - } - - inline POSITION GetFirstService() - { - return m_services.GetStartPosition(); - } - - inline CWSDLService * GetNextService(POSITION &pos) - { - return m_services.GetNextValue(pos); - } - - inline CWSDLService * GetService(const CStringW &strName) - { - const SERVICEMAP::CPair * p = m_services.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLMessage.h b/ATL90/source/SProxy/WSDLMessage.h deleted file mode 100644 index 55d9cce..0000000 --- a/ATL90/source/SProxy/WSDLMessage.h +++ /dev/null @@ -1,106 +0,0 @@ -// -// WSDLMessage.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "WSDLMessagePart.h" -#include "Emit.h" - -class CWSDLMessage : public CXMLElement -{ -private: - - CStringW m_strDocumentation; - CStringW m_strName; - CAtlPtrList m_parts; - -public: - - inline POSITION GetFirstPart() - { - return m_parts.GetHeadPosition(); - } - - inline CWSDLMessagePart * GetNextPart(POSITION& pos) - { - return m_parts.GetNext(pos); - } - - inline CWSDLMessagePart * GetPartByName(CStringW& strName) - { - POSITION pos = m_parts.GetHeadPosition(); - while (pos != NULL) - { - if (m_parts.GetAt(pos)->GetName() == strName) - { - break; - } - m_parts.GetNext(pos); - } - - if (pos != NULL) - { - return m_parts.GetAt(pos); - } - return NULL; - } - - inline CWSDLMessagePart * AddPart() - { - CAutoPtr p ( new CWSDLMessagePart ); - if (p != NULL) - { - if (m_parts.AddTail(p) != NULL) - { - return p.Detach(); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CWSDLMessagePart * AddPart(CWSDLMessagePart *part) - { - if (m_parts.AddTail(part) != NULL) - { - return part; - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline size_t GetNumParts() - { - return m_parts.GetCount(); - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - return S_OK; - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLMessageParser.cpp b/ATL90/source/SProxy/WSDLMessageParser.cpp deleted file mode 100644 index d092947..0000000 --- a/ATL90/source/SProxy/WSDLMessageParser.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// WSDLMessageParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Util.h" -#include "WSDLMessageParser.h" - -#include "WSDLMessage.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLMessageParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLMessageParser, OnPart) -{ - TRACE_PARSE_ENTRY(); - - CWSDLMessage *pCurr = GetMessage(); - if (pCurr != NULL) - { - CWSDLMessagePart *pPart = pCurr->AddPart(); - if (pPart != NULL) - { - SetXMLElementInfo(pPart, pCurr, GetLocator()); - - CStringW strName; - if (S_OK == GetAttribute(pAttributes, L"name", sizeof("name")-1, strName)) - { - pPart->SetName(strName); - - CStringW strElement; - if (S_OK == GetAttribute(pAttributes, L"element", sizeof("element")-1, strElement)) - { - pPart->SetElement(strElement); - } - CStringW strType; - if (S_OK == GetAttribute(pAttributes, L"type", sizeof("type")-1, strType)) - { - pPart->SetType(strType); - } -// else -// { -// OnMissingAttribute(TRUE, L"element", sizeof("element")-1, L"", 0); -// } - - return SkipElement(); - } - OnMissingAttribute(TRUE, L"name", sizeof("name")-1, L"", 0); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLMessageParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLMessage *pCurr = GetMessage(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLMessageParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLMessage *pCurr = GetMessage(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLMessageParser.h b/ATL90/source/SProxy/WSDLMessageParser.h deleted file mode 100644 index 7fdfd70..0000000 --- a/ATL90/source/SProxy/WSDLMessageParser.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// WSDLMessageParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLMessage; - -class CWSDLMessageParser : public CParserBase -{ -private: - - CWSDLMessage * m_pMessage; - -public: - - inline CWSDLMessageParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLMessage *pMessage = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pMessage(pMessage) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - XMLTAG_ENTRY_EX("part", WSDL_NAMESPACEA, OnPart) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnPart); - - ATTR_METHOD_DECL(OnName); - - inline CWSDLMessage * GetMessage() - { - return m_pMessage; - } - - inline void SetMessage(CWSDLMessage *pMessage) - { - ATLASSERT( m_pMessage == NULL ); - - m_pMessage = pMessage; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLMessagePart.cpp b/ATL90/source/SProxy/WSDLMessagePart.cpp deleted file mode 100644 index 5670495..0000000 --- a/ATL90/source/SProxy/WSDLMessagePart.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// WSDLMessagePart.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "WSDLMessagePart.h" -#include "WSDLDocument.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -// -// TODO: import stuff, errors -// -HRESULT CWSDLMessagePart::GetElement(CElement **ppElement) -{ - ATLASSERT( ppElement != NULL ); - *ppElement = NULL; - if (m_pElement != NULL) - { - *ppElement = m_pElement; - return S_OK; - } - - CXMLDocument *pDoc = GetParentDocument(); - if (pDoc != NULL) - { - CStringW strUri; - if (m_element.GetName().GetLength() != 0) - { - if (SUCCEEDED(GetNamespaceUri(m_element.GetPrefix(), strUri))) - { - // - // TODO: fix this part to handle imports (includes?) - // -// if (strUri == pDoc->GetTargetNamespace()) -// { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - m_pElement = pWSDLDoc->GetElement(m_element.GetName(), strUri); - } -// } - } - } - } - -// return m_pElement; - *ppElement = m_pElement; - if (m_pElement != NULL) - { - return S_OK; - } - return E_FAIL; -} - -// -// TODO: import stuff, errors -// -HRESULT CWSDLMessagePart::GetType(CXSDElement **ppElement, XSDTYPE *pXSD) -{ - ATLASSERT( pXSD != NULL ); - ATLASSERT( ppElement != NULL ); - - *pXSD = XSDTYPE_ERR; - *ppElement = NULL; - - if (m_pXSDElement != NULL) - { - // we've already processed it as a simpleType or complexType - *ppElement = m_pXSDElement; - return S_OK; - } - - // REVIEW (jasjitg): maybe cache the XSDTYPE, as well... ? - - CXMLDocument *pDoc = GetParentDocument(); - CStringW strUri; - if (pDoc != NULL) - { - if (m_type.GetName().GetLength() != 0) - { - if (SUCCEEDED(GetNamespaceUri(m_type.GetPrefix(), strUri))) - { - // check CLR/FX-specific namespaces - if ((strUri == FX_TYPES_NAMESPACEW) || - (strUri == CLR_TYPES_NAMESPACEW)) - { - // treat their custom types as strings - *pXSD = XSDTYPE_STRING; - EmitFileWarning(IDS_SDL_CUSTOM_TYPE, const_cast(this), 0, - strUri, m_type.GetName()); - } - else - { - // - // TODO: fix this part to handle imports (includes?) - // - if (S_FALSE == GetXSDType(strUri, m_type.GetName(), pXSD)) - { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - - // complexType or simpleType - m_pXSDElement = pWSDLDoc->GetComplexType(m_type.GetName(), strUri); - if (m_pXSDElement == NULL) - { - m_pXSDElement = pWSDLDoc->GetSimpleType(m_type.GetName(), strUri); - } - } - } - } - } - } - } - - *ppElement = m_pXSDElement; - if ((m_pXSDElement != NULL) || (*pXSD != XSDTYPE_ERR)) - { - return S_OK; - } - - if (strUri.GetLength() == 0) - { - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, m_type.GetPrefix()); - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, "part", strUri, m_type.GetName()); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLMessagePart.h b/ATL90/source/SProxy/WSDLMessagePart.h deleted file mode 100644 index 1ddfe55..0000000 --- a/ATL90/source/SProxy/WSDLMessagePart.h +++ /dev/null @@ -1,111 +0,0 @@ -// -// WSDLPart.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "QName.h" -#include "XMLElement.h" -#include "XSDElement.h" - -class CElement; -class CXSDElement; - -class CWSDLMessagePart : public CXMLElement -{ -private: - - CStringW m_strName; - CQName m_element; - CQName m_type; - - CElement * m_pElement; - CXSDElement * m_pXSDElement; - -public: - - inline CWSDLMessagePart() - :m_pElement(NULL), m_pXSDElement(NULL) - { - } - - inline CWSDLMessagePart(CXMLDocument *pDoc) - :CXMLElement(pDoc) - { - } - - inline CWSDLMessagePart(const CWSDLMessagePart& that) - { - *this = that; - } - - inline const CWSDLMessagePart& operator=(const CWSDLMessagePart& that) - { - if (this != &that) - { - m_strName = that.m_strName; - m_element = that.m_element; - } - - return *this; - } - - inline void SetName(const CStringW& strName) - { - m_strName = strName; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline void SetElement(const CStringW& strQName) - { - m_element.SetQName(strQName); - } - - inline void SetElement(const CStringW& strPrefix, const CStringW& strName) - { - m_element.SetQName(strPrefix, strName); - } - - inline void SetElement(const wchar_t *wszQName, int cchQName) - { - m_element.SetQName(wszQName, cchQName); - } - - inline CQName& GetElementName() - { - return m_element; - } - - inline void SetType(const CStringW& strQName) - { - m_type.SetQName(strQName); - } - - inline void SetType(const CStringW& strPrefix, const CStringW& strName) - { - m_type.SetQName(strPrefix, strName); - } - - inline void SetType(const wchar_t *wszQName, int cchQName) - { - m_type.SetQName(wszQName, cchQName); - } - - inline CQName& GetTypeName() - { - return m_type; - } - - // - // TODO: import stuff - // - HRESULT GetElement(CElement **ppElement); - HRESULT GetType(CXSDElement **ppElement, XSDTYPE *pXSD); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLOperationIOParser.cpp b/ATL90/source/SProxy/WSDLOperationIOParser.cpp deleted file mode 100644 index 65d58f0..0000000 --- a/ATL90/source/SProxy/WSDLOperationIOParser.cpp +++ /dev/null @@ -1,302 +0,0 @@ -// -// WSDLOperationIOParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLOperationIOParser.h" - -#include "WSDLPortTypeIO.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" -#include "Emit.h" -#include "resource.h" - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnSoapBody) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - CSoapBody *pBody = pCurr->AddSoapBody(); - if (pBody != NULL) - { - SetXMLElementInfo(pBody, pCurr, GetLocator()); - - const wchar_t *wszValue; - int cchValue; - if (S_OK == GetAttribute(pAttributes, L"use", sizeof("use")-1, &wszValue, &cchValue)) - { - if (S_OK != pBody->SetUse(wszValue, cchValue)) - { - EmitInvalidValue("use", wszValue); - } - } - if (S_OK == GetAttribute(pAttributes, L"parts", sizeof("parts")-1, &wszValue, &cchValue)) - { - pBody->SetParts(wszValue, cchValue); - } - - if (S_OK == GetAttribute(pAttributes, L"encodingStyle", sizeof("encodingStyle")-1, &wszValue, &cchValue)) - { - pBody->SetEncodingStyle(wszValue, cchValue); - } - - if (S_OK == GetAttribute(pAttributes, L"namespace", sizeof("namespace")-1, &wszValue, &cchValue)) - { - pBody->SetNamespace(wszValue, cchValue); - } - } - - return SkipElement(); - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnSoapHeader) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - CSoapHeader *pElem = pCurr->AddSoapHeader(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - const wchar_t *wszValue = NULL; - int cchValue = 0; - - // message, part, and use are all required attributes - if (S_OK == GetAttribute(pAttributes, L"message", sizeof("message")-1, &wszValue, &cchValue)) - { - pElem->SetMessage(wszValue, cchValue); - if (S_OK == GetAttribute(pAttributes, L"part", sizeof("part")-1, &wszValue, &cchValue)) - { - pElem->SetParts(wszValue, cchValue); - if (S_OK == GetAttribute(pAttributes, L"use", sizeof("use")-1, &wszValue, &cchValue)) - { - if (S_OK == pElem->SetUse(wszValue, cchValue)) - { - // encodingStyle, namespace, and required are optional attributes - if (S_OK == GetAttribute(pAttributes, L"encodingStyle", sizeof("encodingStyle")-1, &wszValue, &cchValue)) - { - pElem->SetEncodingStyle(wszValue, cchValue); - } - if (S_OK == GetAttribute(pAttributes, L"namespace", sizeof("namespace")-1, &wszValue, &cchValue)) - { - pElem->SetNamespace(wszValue, cchValue); - } - if (S_OK == GetAttribute(pAttributes, L"required", - sizeof("required")-1, &wszValue, &cchValue, WSDL_NAMESPACEW, sizeof(WSDL_NAMESPACEA)-1)) - { - bool bVal; - if (S_OK == GetBooleanValue(&bVal, wszValue, cchValue)) - { - pElem->SetRequired(bVal); - } - else - { - EmitInvalidValue("required", wszValue); - } - } - - return SkipElement(); - } - EmitInvalidValue("use", wszValue); - } - else - { - OnMissingAttribute(TRUE, L"use", sizeof("use")-1, L"", 0); - } - } - else - { - OnMissingAttribute(TRUE, L"part", sizeof("part")-1, L"", 0); - } - } - else - { - OnMissingAttribute(TRUE, L"message", sizeof("message")-1, L"", 0); - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnSoapHeaderFault) -{ - TRACE_PARSE_ENTRY(); - - // REVIEW: output warning here (probably not necessary)? - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnSoapFault) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - CSoapFault *pElem = pCurr->AddSoapFault(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - - const wchar_t *wszValue = NULL; - int cchValue = 0; - - // name and use are required attributes - if (S_OK == GetAttribute(pAttributes, L"name", sizeof("name")-1, &wszValue, &cchValue)) - { - pElem->SetName(wszValue, cchValue); - if (S_OK == GetAttribute(pAttributes, L"use", sizeof("use")-1, &wszValue, &cchValue)) - { - if (S_OK == pElem->SetUse(wszValue, cchValue)) - { - // encodingStyle and namespace are optional attributes - if (S_OK == GetAttribute(pAttributes, L"encodingStyle", sizeof("encodingStyle")-1, &wszValue, &cchValue)) - { - pElem->SetEncodingStyle(wszValue, cchValue); - } - if (S_OK == GetAttribute(pAttributes, L"namespace", sizeof("namespace")-1, &wszValue, &cchValue)) - { - pElem->SetNamespace(wszValue, cchValue); - } - - return SkipElement(); - } - EmitInvalidValue("use", wszValue); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnMimeContent) -{ - TRACE_PARSE_ENTRY(); - - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnMimeXML) -{ - TRACE_PARSE_ENTRY(); - - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnMimeMultipartRelated) -{ - TRACE_PARSE_ENTRY(); - - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnHttpUrlEncoded) -{ - TRACE_PARSE_ENTRY(); - - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationIOParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - EmitSkip(wszNamespaceUri, wszLocalName); - - return SkipElement(); -} - -ATTR_METHOD_IMPL(CWSDLOperationIOParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLOperationIOParser, OnMessage) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - return pCurr->SetMessage(wszValue, cchValue); - } - - return E_FAIL; -} - -HRESULT __stdcall CWSDLOperationIOParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLOperationIOParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLPortTypeIO * pCurr = GetIO(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLOperationIOParser.h b/ATL90/source/SProxy/WSDLOperationIOParser.h deleted file mode 100644 index e086873..0000000 --- a/ATL90/source/SProxy/WSDLOperationIOParser.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// WSDLPortTypeIOParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLPortTypeIO; - -class CWSDLOperationIOParser : public CParserBase -{ -private: - - CWSDLPortTypeIO * m_pIO; - -public: - - inline CWSDLOperationIOParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLPortTypeIO * pIO = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pIO(pIO) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("body", SOAP_NAMESPACEA, OnSoapBody) - XMLTAG_ENTRY_EX("header", SOAP_NAMESPACEA, OnSoapHeader) - XMLTAG_ENTRY_EX("headerfault", SOAP_NAMESPACEA, OnSoapHeaderFault) - XMLTAG_ENTRY_EX("fault", SOAP_NAMESPACEA, OnSoapFault) - XMLTAG_ENTRY_EX("content", MIME_NAMESPACEA, OnMimeContent) - XMLTAG_ENTRY_EX("mimeXml", MIME_NAMESPACEA, OnMimeXML) - XMLTAG_ENTRY_EX("multipartRelated", MIME_NAMESPACEA, OnMimeMultipartRelated) - XMLTAG_ENTRY_EX("urlEncoded", HTTP_NAMESPACEA, OnHttpUrlEncoded) - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("message", OnMessage) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnSoapBody); - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnSoapHeader); - TAG_METHOD_DECL(OnSoapHeaderFault); - TAG_METHOD_DECL(OnSoapFault); - TAG_METHOD_DECL(OnMimeContent); - TAG_METHOD_DECL(OnMimeXML); - TAG_METHOD_DECL(OnMimeMultipartRelated); - TAG_METHOD_DECL(OnHttpUrlEncoded); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnMessage); - - inline CWSDLPortTypeIO * GetIO() - { - return m_pIO; - } - - inline void SetIO(CWSDLPortTypeIO * pIO) - { - ATLASSERT( pIO != NULL ); - - m_pIO = pIO; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLOperationParser.cpp b/ATL90/source/SProxy/WSDLOperationParser.cpp deleted file mode 100644 index c846bd1..0000000 --- a/ATL90/source/SProxy/WSDLOperationParser.cpp +++ /dev/null @@ -1,233 +0,0 @@ -// -// WSDLOperationParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLOperationParser.h" -#include "WSDLOperationIOParser.h" - -#include "WSDLPortTypeOperation.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLOperationParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLOperationParser, OnInput) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - CWSDLPortTypeInput * pElem = pCurr->AddInput(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CWSDLOperationIOParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationParser, OnOutput) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - CWSDLPortTypeOutput * pElem = pCurr->AddOutput(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - CAutoPtr p( new CWSDLOperationIOParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationParser, OnFault) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - CWSDLPortTypeFault * pElem = pCurr->AddFault(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - CAutoPtr p( new CWSDLOperationIOParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationParser, OnSoapOperation) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - CSoapOperation *pOperation = pCurr->AddSoapOperation(); - if (pOperation != NULL) - { - CStringW strSoapAction; - if (S_OK == GetAttribute(pAttributes, L"soapAction", sizeof("soapAction")-1, strSoapAction)) - { - pOperation->SetSoapAction(strSoapAction); - } - - const wchar_t *wszStyle; - int cchStyle; - HRESULT hr = S_OK; - if (S_OK == GetAttribute(pAttributes, L"style", sizeof("style")-1, &wszStyle, &cchStyle)) - { - hr = pOperation->SetStyle(wszStyle, cchStyle); - if (FAILED(hr)) - { - EmitInvalidValue("style", wszStyle); - } - } - - if (SUCCEEDED(hr)) - { - return SkipElement(); - } - else - { - OnMissingAttribute(TRUE, L"style", sizeof("style")-1, L"", 0); - } - } - - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLOperationParser, OnHttpOperation) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - CHttpOperation *pOperation = pCurr->AddHttpOperation(); - if (pOperation != NULL) - { - CStringW strLocation; - if (S_OK == GetAttribute(pAttributes, L"location", sizeof("location")-1, strLocation)) - { - if (SUCCEEDED(pOperation->SetLocation(strLocation))) - { - return SkipElement(); - } - } - OnMissingAttribute(TRUE, L"location", sizeof("location")-1, L"", 0); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLOperationParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLOperationParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLOperationParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLPortTypeOperation * pCurr = GetOperation(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLOperationParser.h b/ATL90/source/SProxy/WSDLOperationParser.h deleted file mode 100644 index 0b5e881..0000000 --- a/ATL90/source/SProxy/WSDLOperationParser.h +++ /dev/null @@ -1,74 +0,0 @@ -// -// WSDLOperationParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "WSDLPortTypeIO.h" - - -class CWSDLPortTypeOperation; - -class CWSDLOperationParser : public CParserBase -{ -private: - - CWSDLPortTypeOperation *m_pOperation; - -public: - - inline CWSDLOperationParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLPortTypeOperation *pOperation = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pOperation(pOperation) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("input", WSDL_NAMESPACEA, OnInput) - XMLTAG_ENTRY_EX("output", WSDL_NAMESPACEA, OnOutput) - XMLTAG_ENTRY_EX("fault", WSDL_NAMESPACEA, OnFault) - XMLTAG_ENTRY_EX("operation", SOAP_NAMESPACEA, OnSoapOperation) - XMLTAG_ENTRY_EX("operation", HTTP_NAMESPACEA, OnHttpOperation) - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnInput); - TAG_METHOD_DECL(OnOutput); - TAG_METHOD_DECL(OnFault); - TAG_METHOD_DECL(OnSoapOperation); - TAG_METHOD_DECL(OnHttpOperation); - - ATTR_METHOD_DECL(OnName); - - inline CWSDLPortTypeOperation * GetOperation() - { - return m_pOperation; - } - - inline void SetOperation(CWSDLPortTypeOperation *pOperation) - { - ATLASSERT( pOperation != NULL ); - - m_pOperation = pOperation; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLParser.cpp b/ATL90/source/SProxy/WSDLParser.cpp deleted file mode 100644 index 5f1341a..0000000 --- a/ATL90/source/SProxy/WSDLParser.cpp +++ /dev/null @@ -1,308 +0,0 @@ -// -// WSDLParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "Util.h" - -#include "WSDLParser.h" -#include "WSDLTypesParser.h" -#include "WSDLMessageParser.h" -#include "WSDLPortTypeParser.h" -#include "WSDLBindingParser.h" -#include "WSDLServiceParser.h" - -#include "WSDLDocument.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -CWSDLParser::CWSDLParser() - :m_pDocument(NULL) -{ -} - -CWSDLParser::CWSDLParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel) - :CParserBase(pReader, pParent, dwLevel), m_pDocument(NULL) -{ -} - -TAG_METHOD_IMPL( CWSDLParser, OnDefinitions ) -{ - TRACE_PARSE_ENTRY(); - - return S_OK; -} - -TAG_METHOD_IMPL( CWSDLParser, OnImport ) -{ - // - // TODO: parse import (?) - // - TRACE_PARSE_ENTRY(); - - CStringW strNs; - HRESULT hr = GetAttribute(pAttributes, L"namespace", sizeof("namespace")-1, strNs); - if (SUCCEEDED(hr)) - { - CStringW strLoc; - hr = GetAttribute(pAttributes, L"location", sizeof("location")-1, strLoc); - if (SUCCEEDED(hr)) - { - CStringW localStrLoc = GetDiscoMapDocument()->GetValue(strLoc); - if(!localStrLoc.IsEmpty()) - strLoc = localStrLoc; - - if (m_importMap.SetAt(strNs, strLoc) != NULL) - { - return S_OK; - } - EmitErrorHr(E_OUTOFMEMORY); - } - else - { - OnMissingAttribute(TRUE, L"location", sizeof("location")-1, L"", 0); - } - } - else - { - OnMissingAttribute(TRUE, L"location", sizeof("location")-1, L"", 0); - } - return E_FAIL; -} - -TAG_METHOD_IMPL( CWSDLParser, OnDocumentation ) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL( CWSDLParser, OnTypes ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument *pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - CWSDLType *pElem = pCurr->AddType(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - pElem->SetParentDocument(pCurr); - - CAutoPtr p( new CWSDLTypesParser(GetReader(), this, GetLevel(), pElem)); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL( CWSDLParser, OnMessage ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument *pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLMessage ); - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentDocument(pCurr); - - CAutoPtr p( new CWSDLMessageParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (pCurr->AddMessage(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL( CWSDLParser, OnPortType ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument *pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLPortType ); - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentDocument(pCurr); - - CAutoPtr p( new CWSDLPortTypeParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (pCurr->AddPortType(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL( CWSDLParser, OnBinding ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument *pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLBinding ); - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentDocument(pCurr); - - CWSDLBindingParser * p = new CWSDLBindingParser(GetReader(), this, GetLevel(), spElem); - if (p != NULL) - { - if (SUCCEEDED(p->GetAttributes(pAttributes))) - { - if (pCurr->AddBinding(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -TAG_METHOD_IMPL( CWSDLParser, OnService ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument *pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLService ); - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - spElem->SetParentDocument(pCurr); - - CAutoPtr p( new CWSDLServiceParser(GetReader(), this, GetLevel(), spElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (pCurr->AddService(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL( CWSDLParser, OnName ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument * pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL( CWSDLParser, OnTargetNamespace ) -{ - TRACE_PARSE_ENTRY(); - - CWSDLDocument * pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - return pCurr->SetTargetNamespace(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -CWSDLDocument * CWSDLParser::CreateWSDLDocument() -{ - m_pDocument.Attach( new CWSDLDocument ); - return m_pDocument; -} - -HRESULT __stdcall CWSDLParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLDocument * pCurr = GetWSDLDocument(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLParser.h b/ATL90/source/SProxy/WSDLParser.h deleted file mode 100644 index 738c951..0000000 --- a/ATL90/source/SProxy/WSDLParser.h +++ /dev/null @@ -1,89 +0,0 @@ -// -// WSDLParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -typedef NAMESPACEMAP IMPORTMAP; - -class CWSDLDocument; - -class CWSDLParser : public CParserBase -{ -private: - - IMPORTMAP m_importMap; - - CAutoPtr m_pDocument; - -public: - CWSDLParser(); - CWSDLParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel); - - // - // Parsing maps - // - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX( "definitions", WSDL_NAMESPACEA, OnDefinitions ) - XMLTAG_ENTRY( "import", OnImport ) - XMLTAG_ENTRY_EX( "documentation", WSDL_NAMESPACEA, OnDocumentation ) - XMLTAG_ENTRY_EX( "types", WSDL_NAMESPACEA, OnTypes ) - XMLTAG_ENTRY_EX( "message", WSDL_NAMESPACEA, OnMessage ) - XMLTAG_ENTRY_EX( "portType", WSDL_NAMESPACEA, OnPortType ) - XMLTAG_ENTRY_EX( "binding", WSDL_NAMESPACEA, OnBinding ) - XMLTAG_ENTRY_EX( "service", WSDL_NAMESPACEA, OnService ) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY( "name", OnName ) - XMLATTR_ENTRY( "targetNamespace", OnTargetNamespace ) - END_XMLATTR_MAP() - - // - // Parse functions - // - TAG_METHOD_DECL( OnDefinitions ); - TAG_METHOD_DECL( OnImport ); - TAG_METHOD_DECL( OnDocumentation ); - TAG_METHOD_DECL( OnTypes ); - TAG_METHOD_DECL( OnMessage ); - TAG_METHOD_DECL( OnPortType ); - TAG_METHOD_DECL( OnBinding ); - TAG_METHOD_DECL( OnService ); - - ATTR_METHOD_DECL( OnName ); - ATTR_METHOD_DECL( OnTargetNamespace ); - - inline void SetWSDLDocument(CWSDLDocument *pDoc) - { - m_pDocument.Free(); - m_pDocument.Attach(pDoc); - } - - inline CWSDLDocument * GetWSDLDocument(BOOL bReleaseOwnership = FALSE) - { - if (m_pDocument == NULL) - { - CreateWSDLDocument(); - } - - if (bReleaseOwnership != FALSE) - { - return m_pDocument.Detach(); - } - return m_pDocument; - } - - CWSDLDocument * CreateWSDLDocument(); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPort.cpp b/ATL90/source/SProxy/WSDLPort.cpp deleted file mode 100644 index 868ff06..0000000 --- a/ATL90/source/SProxy/WSDLPort.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// WSDLPort.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "WSDLPort.h" -#include "WSDLDocument.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -CWSDLBinding * CWSDLPort::GetBinding() -{ - if (m_pBinding != NULL) - { - return m_pBinding; - } - - CXMLDocument *pDoc = GetParentDocument(); - if (pDoc != NULL) - { - CStringW strUri; - if (SUCCEEDED(GetNamespaceUri(m_binding.GetPrefix(), strUri))) - { - if (strUri == pDoc->GetTargetNamespace()) - { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - m_pBinding = pWSDLDoc->GetBinding(m_binding.GetName()); - if (m_pBinding == NULL) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, - "binding", strUri, m_binding.GetName()); - } - } - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, "binding", strUri, m_binding.GetName()); - } - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, m_binding.GetPrefix()); - } - } - - return m_pBinding; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPort.h b/ATL90/source/SProxy/WSDLPort.h deleted file mode 100644 index a2d2c13..0000000 --- a/ATL90/source/SProxy/WSDLPort.h +++ /dev/null @@ -1,131 +0,0 @@ -// -// WSDLPort.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "QName.h" -#include "WSDLBinding.h" - -class CWSDLPort : public CXMLElement -{ -private: - CStringW m_strName; - CQName m_binding; - - CStringW m_strSoapAddress; - CStringW m_strHttpAddress; - - CWSDLBinding * m_pBinding; - -public: - - CWSDLPort(CWSDLBinding *pBinding = NULL) - :m_pBinding(pBinding) - { - } - - inline HRESULT SetBinding(const CStringW& strQName) - { - m_binding.SetQName(strQName); - return S_OK; - } - - inline HRESULT SetBinding(const CStringW& strPrefix, const CStringW& strName) - { - m_binding.SetQName(strPrefix, strName); - return S_OK; - } - - inline HRESULT SetBinding(const wchar_t *wszQName, int cchQName) - { - m_binding.SetQName(wszQName, cchQName); - return S_OK; - } - - inline const CQName& GetBindingName() - { - return m_binding; - } - - CWSDLBinding * GetBinding(); - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetSoapAddress(const wchar_t *wszSoapAddress, int cchSoapAddress) - { - if (!wszSoapAddress) - { - return E_FAIL; - } - - m_strSoapAddress.SetString(wszSoapAddress, cchSoapAddress); - - return S_OK; - } - - inline HRESULT SetSoapAddress(const CStringW& strSoapAddress) - { - - wchar_t wszTmp[ATL_URL_MAX_URL_LENGTH]; - if(AtlEscapeUrl(strSoapAddress,wszTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE) == FALSE) - return E_FAIL; - m_strSoapAddress = wszTmp; - return S_OK; - } - - inline const CStringW& GetSoapAddress() - { - return m_strSoapAddress; - } - - inline HRESULT SetHttpAddress(const wchar_t *wszHttpAddress, int cchHttpAddress) - { - if (!wszHttpAddress) - { - return E_FAIL; - } - - m_strHttpAddress.SetString(wszHttpAddress, cchHttpAddress); - - return S_OK; - } - - inline HRESULT SetHttpAddress(const CStringW& strHttpAddress) - { - m_strHttpAddress = strHttpAddress; - - return S_OK; - } - - inline const CStringW& GetHttpAddress() - { - return m_strHttpAddress; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortType.h b/ATL90/source/SProxy/WSDLPortType.h deleted file mode 100644 index e87670a..0000000 --- a/ATL90/source/SProxy/WSDLPortType.h +++ /dev/null @@ -1,87 +0,0 @@ -// -// WSDLPortType.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "WSDLPortTypeOperation.h" - -class CWSDLPortType : public CXMLElement -{ -private: - - CStringW m_strDocumentation; - CStringW m_strName; - - typedef CAtlPtrMap > PORTYPEOPERATIONMAP; - - PORTYPEOPERATIONMAP m_operations; - -public: - - inline CWSDLPortTypeOperation * AddOperation(CWSDLPortTypeOperation *p) - { - if (p != NULL) - { - if (p->GetName().GetLength() != 0) - { - if (m_operations.SetAt(p->GetName(), p) != NULL) - { - return p; - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CWSDLPortTypeOperation * GetOperation(const CStringW& strName) - { - const PORTYPEOPERATIONMAP::CPair *p = m_operations.Lookup(strName); - if (p != NULL) - { - return p->m_value; - } - - return NULL; - } - - inline POSITION GetFirstOperation() - { - return m_operations.GetStartPosition(); - } - - inline CWSDLPortTypeOperation * GetNextOperation(POSITION &pos) - { - return m_operations.GetNextValue(pos); - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - return S_OK; - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortTypeIO.cpp b/ATL90/source/SProxy/WSDLPortTypeIO.cpp deleted file mode 100644 index 7b4ae42..0000000 --- a/ATL90/source/SProxy/WSDLPortTypeIO.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// WSDLPortTypeIO.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "WSDLPortTypeIO.h" -#include "WSDLMessage.h" -#include "WSDLDocument.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -CWSDLMessage * CWSDLPortTypeIO::GetMessage() -{ - if (m_pMessage != NULL) - { - return m_pMessage; - } - - CXMLDocument *pDoc = GetParentDocument(); - if (pDoc != NULL) - { - CStringW strUri; - if (SUCCEEDED(GetNamespaceUri(m_message.GetPrefix(), strUri))) - { - if (strUri == pDoc->GetTargetNamespace()) - { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - m_pMessage = pWSDLDoc->GetMessage(m_message.GetName()); - if (m_pMessage == NULL) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, - "message", strUri, m_message.GetName()); - } - } - } - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, m_message.GetPrefix()); - } - } - - return m_pMessage; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortTypeIO.h b/ATL90/source/SProxy/WSDLPortTypeIO.h deleted file mode 100644 index 3576bfb..0000000 --- a/ATL90/source/SProxy/WSDLPortTypeIO.h +++ /dev/null @@ -1,190 +0,0 @@ -// -// WSDLPortTypeIO.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "QName.h" -#include "Emit.h" -#include "WSDLSoapElement.h" - -class CWSDLMessage; - -class CWSDLPortTypeIO : public CXMLElement -{ -private: - - CStringW m_strName; - CQName m_message; - - CWSDLMessage * m_pMessage; - - CAutoPtr m_pSoapBody; - - CAtlPtrList m_headers; - CAtlPtrList m_faults; - -public: - - inline CWSDLPortTypeIO() - :m_pMessage(NULL) - { - } - - inline CSoapHeader * AddSoapHeader() - { - CAutoPtr p ( new CSoapHeader ); - if (p != NULL) - { - if (m_headers.AddTail(p) != NULL) - { - return p.Detach(); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CSoapHeader * AddSoapHeader(CSoapHeader *p) - { - if (m_headers.AddTail(p) != NULL) - { - return p; - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline POSITION GetFirstSoapHeader() - { - return m_headers.GetHeadPosition(); - } - - inline CSoapHeader * GetNextSoapHeader(POSITION &pos) - { - return m_headers.GetNext(pos); - } - - inline size_t GetNumSoapHeaders() - { - return m_headers.GetCount(); - } - - inline CSoapFault * AddSoapFault() - { - CAutoPtr p ( new CSoapFault ); - if (p != NULL) - { - if (m_faults.AddTail(p) != NULL) - { - return p.Detach(); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CSoapFault * AddSoapFault(CSoapFault *p) - { - if (m_faults.AddTail(p) != NULL) - { - return p; - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline POSITION GetFirstSoapFault() - { - return m_faults.GetHeadPosition(); - } - - inline CSoapFault * GetNextSoapFault(POSITION &pos) - { - return m_faults.GetNext(pos); - } - - inline CSoapBody * AddSoapBody() - { - m_pSoapBody.Free(); - m_pSoapBody.Attach( new CSoapBody ); - return m_pSoapBody; - } - - inline CSoapBody * AddSoapBody(CSoapBody *pBody) - { - m_pSoapBody.Free(); - m_pSoapBody.Attach( pBody ); - return m_pSoapBody; - } - - inline CSoapBody * GetSoapBody() - { - return m_pSoapBody; - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline HRESULT SetMessage(const CStringW& strQName) - { - m_message.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetMessage(const CStringW& strPrefix, const CStringW& strName) - { - m_message.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetMessage(const wchar_t *wszQName, int cchQName) - { - m_message.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline const CQName& GetMessageName() - { - return m_message; - } - - CWSDLMessage * GetMessage(); -}; - - -typedef CWSDLPortTypeIO CWSDLPortTypeInput; -typedef CWSDLPortTypeIO CWSDLPortTypeOutput; -typedef CWSDLPortTypeIO CWSDLPortTypeFault; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortTypeOperation.h b/ATL90/source/SProxy/WSDLPortTypeOperation.h deleted file mode 100644 index ec044a2..0000000 --- a/ATL90/source/SProxy/WSDLPortTypeOperation.h +++ /dev/null @@ -1,282 +0,0 @@ -// -// WSDLPortTypeOperation.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "WSDLPortTypeIO.h" -#include "Emit.h" - -// -// TODO: merge CSoapOperation with CSoapBinding if possible (the code is very similar) -// - -class CSoapOperation -{ -private: - CStringW m_strSoapAction; - SOAPSTYLE m_style; - - inline HRESULT ValidateStyle(const wchar_t *wsz, int cch) - { - m_style = ::GetStyle(wsz, cch); - if (m_style != SOAPSTYLE_UNK) - { - return S_OK; - } - return E_FAIL; - } - -public: - - CSoapOperation() - :m_style(SOAPSTYLE_UNK) - { - } - - inline HRESULT SetSoapAction(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strSoapAction.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetSoapAction(const CStringW& strName) - { - m_strSoapAction = strName; - - return S_OK; - } - - inline const CStringW& GetSoapAction() - { - return m_strSoapAction; - } - - inline HRESULT SetStyle(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - return ValidateStyle(wszName, cchName); - } - - inline HRESULT SetStyle(const CStringW& strName) - { - return ValidateStyle(strName, strName.GetLength()); - } - - inline const SOAPSTYLE GetStyle() - { - return m_style; - } -}; - -class CHttpOperation -{ -private: - - CStringW m_strLocation; - -public: - - inline HRESULT SetLocation(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strLocation.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetLocation(const CStringW& strName) - { - m_strLocation = strName; - - return S_OK; - } - - inline const CStringW& GetLocation() - { - return m_strLocation; - } -}; - - -class CWSDLPortTypeOperation : public CXMLElement -{ -private: - - CStringW m_strName; - CStringW m_strDocumentation; - CStringW m_strParameterOrder; - CAutoPtr m_pInput; - CAutoPtr m_pOutput; - CAtlPtrList m_faults; - CAutoPtr m_pSoapOperation; - CAutoPtr m_pHttpOperation; - -public: - - inline CSoapOperation * AddSoapOperation(CSoapOperation *pBinding = NULL) - { - if (pBinding == NULL) - { - pBinding = new CSoapOperation; - } - - m_pSoapOperation.Free(); - m_pSoapOperation.Attach( pBinding ); - return m_pSoapOperation; - } - - inline CSoapOperation * GetSoapOperation() - { - return m_pSoapOperation; - } - - inline CHttpOperation * AddHttpOperation(CHttpOperation *pBinding = NULL) - { - if (pBinding == NULL) - { - pBinding = new CHttpOperation; - } - - m_pHttpOperation.Free(); - m_pHttpOperation.Attach( pBinding ); - return m_pHttpOperation; - } - - inline CHttpOperation * GetHttpOperation() - { - return m_pHttpOperation; - } - - inline CWSDLPortTypeInput * AddInput() - { - if (!m_pInput) - { - m_pInput.Free(); - m_pInput.Attach( new CWSDLPortTypeInput ); - } - - return m_pInput; - } - - inline CWSDLPortTypeOutput * AddOutput() - { - if (!m_pOutput) - { - m_pOutput.Free(); - m_pOutput.Attach( new CWSDLPortTypeOutput ); - } - - return m_pOutput; - } - - inline CWSDLPortTypeInput * GetInput() - { - return m_pInput; - } - - inline CWSDLPortTypeOutput * GetOutput() - { - return m_pOutput; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - return S_OK; - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } - - inline const CStringW& GetParameterOrder() - { - return m_strParameterOrder; - } - - inline HRESULT SetParameterOrder(const CStringW& str) - { - m_strParameterOrder = str; - return S_OK; - } - - inline HRESULT SetParameterOrder(const wchar_t *wsz, int cch) - { - if (!wsz) - { - return E_FAIL; - } - - m_strParameterOrder.SetString(wsz, cch); - - return S_OK; - } - - inline CWSDLPortTypeFault * AddFault() - { - CAutoPtr p ( new CWSDLPortTypeFault ); - if (p != NULL) - { - if (m_faults.AddTail(p) != NULL) - { - return p.Detach(); - } - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline CWSDLPortTypeFault * AddFault(CWSDLPortTypeFault *p) - { - if (m_faults.AddTail(p) != NULL) - { - return p; - } - - EmitErrorHr(E_OUTOFMEMORY); - return NULL; - } - - inline POSITION GetFirstFault() - { - return m_faults.GetHeadPosition(); - } - - inline CWSDLPortTypeFault * GetNextFault(POSITION &pos) - { - return m_faults.GetNext(pos); - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortTypeParser.cpp b/ATL90/source/SProxy/WSDLPortTypeParser.cpp deleted file mode 100644 index e65ebc7..0000000 --- a/ATL90/source/SProxy/WSDLPortTypeParser.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// WSDLPortTypeParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLPortTypeParser.h" -#include "WSDLOperationParser.h" - -#include "WSDLPortType.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLPortTypeParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLPortTypeParser, OnOperation) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortType * pCurr = GetPortType(); - if (pCurr != NULL) - { - CAutoPtr spElem; - spElem.Attach( new CWSDLPortTypeOperation ); - if (spElem != NULL) - { - SetXMLElementInfo(spElem, pCurr, GetLocator()); - CAutoPtr p( new CWSDLOperationParser(GetReader(), this, GetLevel(), spElem) ); - if (p) - { - if (g_ParserList.AddHead(p) != NULL) - { - if (SUCCEEDED(p.Detach()->GetAttributes(pAttributes))) - { - if (pCurr->AddOperation(spElem) != NULL) - { - spElem.Detach(); - return S_OK; - } - } - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLPortTypeParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPortType *pCurr = GetPortType(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLPortTypeParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLPortType * pCurr = GetPortType(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLPortTypeParser.h b/ATL90/source/SProxy/WSDLPortTypeParser.h deleted file mode 100644 index b0b722d..0000000 --- a/ATL90/source/SProxy/WSDLPortTypeParser.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// WSDLPortTypeParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLPortType; - -class CWSDLPortTypeParser : public CParserBase -{ -private: - - CWSDLPortType * m_pPortType; - -public: - - inline CWSDLPortTypeParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLPortType * pPortType = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pPortType(pPortType) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - XMLTAG_ENTRY_EX("operation", WSDL_NAMESPACEA, OnOperation) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnOperation); - - ATTR_METHOD_DECL(OnName); - - inline CWSDLPortType * GetPortType() - { - return m_pPortType; - } - - inline void SetPortType(CWSDLPortType * pPortType) - { - ATLASSERT( pPortType != NULL ); - - m_pPortType = pPortType; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLService.h b/ATL90/source/SProxy/WSDLService.h deleted file mode 100644 index 8c20260..0000000 --- a/ATL90/source/SProxy/WSDLService.h +++ /dev/null @@ -1,77 +0,0 @@ -// -// WSDLService.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "WSDLPort.h" - -class CWSDLService : public CXMLElement -{ -private: - - CStringW m_strDocumentation; - CStringW m_strName; - - CAtlPtrList m_ports; - -public: - - inline CWSDLPort * AddPort(CWSDLPort * p = NULL) - { - CAutoPtr spOut; - if (p == NULL) - { - spOut.Attach( new CWSDLPort ); - p = spOut; - } - if (p != NULL) - { - if (m_ports.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; - } - - POSITION GetFirstPort() - { - return m_ports.GetHeadPosition(); - } - - CWSDLPort * GetNextPort(POSITION &pos) - { - return m_ports.GetNext(pos); - } - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline const CStringW& GetName() - { - return m_strName; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLServiceParser.cpp b/ATL90/source/SProxy/WSDLServiceParser.cpp deleted file mode 100644 index 994d511..0000000 --- a/ATL90/source/SProxy/WSDLServiceParser.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// WSDLServiceParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLServiceParser.h" -#include "WSDLServicePortParser.h" - -#include "WSDLService.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLServiceParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLServiceParser, OnPort) -{ - TRACE_PARSE_ENTRY(); - - CWSDLService *pCurr = GetService(); - if (pCurr != NULL) - { - CWSDLPort *pElem = pCurr->AddPort(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CWSDLServicePortParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLServiceParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLService * pCurr = GetService(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLServiceParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLService * pCurr = GetService(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLServiceParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLService * pCurr = GetService(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLServiceParser.h b/ATL90/source/SProxy/WSDLServiceParser.h deleted file mode 100644 index a9b3550..0000000 --- a/ATL90/source/SProxy/WSDLServiceParser.h +++ /dev/null @@ -1,64 +0,0 @@ -// -// WSDLServiceParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLService; - -class CWSDLServiceParser : public CParserBase -{ -private: - - CWSDLService *m_pService; - -public: - - inline CWSDLServiceParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLService *pService = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pService(pService) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - XMLTAG_ENTRY_EX("port", WSDL_NAMESPACEA, OnPort) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnPort); - - ATTR_METHOD_DECL(OnName); - - inline CWSDLService * GetService() - { - return m_pService; - } - - inline void SetService(CWSDLService *pService) - { - ATLASSERT( pService != NULL ); - - m_pService = pService; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() ; -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLServicePortParser.cpp b/ATL90/source/SProxy/WSDLServicePortParser.cpp deleted file mode 100644 index 8d8af10..0000000 --- a/ATL90/source/SProxy/WSDLServicePortParser.cpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// WSDLServicePortParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Util.h" - -#include "WSDLServicePortParser.h" - -#include "WSDLPort.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLServicePortParser, OnSoapAddress) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - CStringW strAddress; - if (S_OK == GetAttribute(pAttributes, L"location", sizeof("location")-1, strAddress)) - { - if (SUCCEEDED(pCurr->SetSoapAddress(strAddress))) - { - return SkipElement(); - } - } - OnMissingAttribute(TRUE, L"location", sizeof("location")-1, L"", 0); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -TAG_METHOD_IMPL(CWSDLServicePortParser, OnHttpAddress) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - CStringW strAddress; - if (S_OK == GetAttribute(pAttributes, L"location", sizeof("location")-1, strAddress)) - { - if (SUCCEEDED(pCurr->SetHttpAddress(strAddress))) - { - return SkipElement(); - } - } - OnMissingAttribute(TRUE, L"location", sizeof("location")-1, L"", 0); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLServicePortParser, OnName) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - return pCurr->SetName(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -ATTR_METHOD_IMPL(CWSDLServicePortParser, OnBinding) -{ - TRACE_PARSE_ENTRY(); - - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - return pCurr->SetBinding(wszValue, cchValue); - } - - EmitError(IDS_SDL_INTERNAL); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLServicePortParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLServicePortParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLPort * pCurr = GetPort(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLServicePortParser.h b/ATL90/source/SProxy/WSDLServicePortParser.h deleted file mode 100644 index 991bdcc..0000000 --- a/ATL90/source/SProxy/WSDLServicePortParser.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// WSDLServicePortParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLPort; - -class CWSDLServicePortParser : public CParserBase -{ -private: - - CWSDLPort *m_pPort; - -public: - - inline CWSDLServicePortParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLPort *pPort = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pPort(pPort) - { - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("address", SOAP_NAMESPACEA, OnSoapAddress) - XMLTAG_ENTRY_EX("address", HTTP_NAMESPACEA, OnHttpAddress) - END_XMLTAG_MAP() - - BEGIN_XMLATTR_MAP() - XMLATTR_ENTRY("name", OnName) - XMLATTR_ENTRY("binding", OnBinding) - END_XMLATTR_MAP() - - TAG_METHOD_DECL(OnSoapAddress); - TAG_METHOD_DECL(OnHttpAddress); - - ATTR_METHOD_DECL(OnName); - ATTR_METHOD_DECL(OnBinding); - - inline CWSDLPort * GetPort() - { - return m_pPort; - } - - inline void SetPort(CWSDLPort *pPort) - { - ATLASSERT( pPort != NULL ); - - m_pPort = pPort; - } - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLSoapElement.cpp b/ATL90/source/SProxy/WSDLSoapElement.cpp deleted file mode 100644 index 19d592e..0000000 --- a/ATL90/source/SProxy/WSDLSoapElement.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// WSDLSoapElement.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "WSDLSoapElement.h" -#include "WSDLMessage.h" -#include "WSDLDocument.h" - -CWSDLMessage * CWSDLSoapHeaderElement::GetMessage() -{ - if (m_pMessage != NULL) - { - return m_pMessage; - } - - CXMLDocument *pDoc = GetParentDocument(); - if (pDoc != NULL) - { - CStringW strUri; - if (SUCCEEDED(GetNamespaceUri(m_message.GetPrefix(), strUri))) - { - if (strUri == pDoc->GetTargetNamespace()) - { - if (pDoc->GetDocumentType() == WSDLDOC) - { - CWSDLDocument *pWSDLDoc = static_cast(pDoc); - m_pMessage = pWSDLDoc->GetMessage(m_message.GetName()); - if (m_pMessage == NULL) - { - EmitFileError(IDS_SDL_UNRESOLVED_ELEM2, const_cast(this), 0, - "message", strUri, m_message.GetName()); - } - } - } - } - else - { - EmitFileError(IDS_SDL_UNRESOLVED_NAMESPACE, const_cast(this), 0, - m_message.GetPrefix()); - } - } - - return m_pMessage; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLSoapElement.h b/ATL90/source/SProxy/WSDLSoapElement.h deleted file mode 100644 index 202bdba..0000000 --- a/ATL90/source/SProxy/WSDLSoapElement.h +++ /dev/null @@ -1,319 +0,0 @@ -// -// WSDLSoapElement.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "QName.h" -#include "Emit.h" - -// this file contains common definitions for -// soap:header -// soap:headerfault -// soap:body -// soap:fault - -enum SOAPUSE -{ - SOAPUSE_UNK = -1, - SOAPUSE_LITERAL, - SOAPUSE_ENCODED -}; - -inline SOAPUSE GetSoapUse(const wchar_t *wsz, int cch) -{ - struct _soapuse - { - wchar_t *wsz; - int cch; - SOAPUSE soapuse; - }; - - SOAPUSE retUse = SOAPUSE_UNK; - - // data driven is kind of overkill for two options, but makes it - // easy to extend later - static const _soapuse s_uses[] = - { - { L"literal", sizeof("literal")-1, SOAPUSE_LITERAL }, - { L"encoded", sizeof("encoded")-1, SOAPUSE_ENCODED } - }; - - for (int i=0; i<(sizeof(s_uses)/sizeof(s_uses[0])); i++) - { - if (cch == s_uses[i].cch && !wcsncmp(wsz, s_uses[i].wsz, cch)) - { - retUse = s_uses[i].soapuse; - break; - } - } - - return retUse; -} - -enum SOAPSTYLE -{ - SOAPSTYLE_UNK = -1, - SOAPSTYLE_RPC, - SOAPSTYLE_DOC -}; - -inline SOAPSTYLE GetStyle(const wchar_t *wsz, int cch) -{ - struct _style - { - wchar_t * wszStyle; - int cchStyle; - SOAPSTYLE style; - }; - - static const _style s_styles[] = - { - { L"rpc", sizeof("rpc")-1, SOAPSTYLE_RPC }, - { L"document", sizeof("document")-1, SOAPSTYLE_DOC } - }; - - for (int i=0; i<(sizeof(s_styles)/sizeof(s_styles[0])); i++) - { - if (cch == s_styles[i].cchStyle && !wcsncmp(wsz, s_styles[i].wszStyle, cch)) - { - return s_styles[i].style; - } - } - - return SOAPSTYLE_UNK; -} - -// forward declaration of CWSDLMessage -class CWSDLMessage; - -// CWSDLSoapElement is the common base class for -// soap:header -// soap:headerfault -// soap:body -// soap:fault -class CWSDLSoapElement : public CXMLElement -{ -private: - - SOAPUSE m_use; - CStringW m_strEncodingStyle; - CStringW m_strNamespace; - -public: - - CWSDLSoapElement() - : m_use(SOAPUSE_UNK) - { - } - - inline HRESULT SetUse(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_use = GetSoapUse(wszName, cchName); - return (m_use != SOAPUSE_UNK) ? S_OK : E_FAIL; - } - - inline HRESULT SetUse(const CStringW& strName) - { - return (GetSoapUse(strName, strName.GetLength()) != SOAPUSE_UNK) ? S_OK : E_FAIL; - } - - inline const SOAPUSE GetUse() - { - return m_use; - } - - inline HRESULT SetNamespace(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strNamespace.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetNamespace(const CStringW& strName) - { - m_strNamespace = strName; - - return S_OK; - } - - inline CStringW& GetNamespace() - { - return m_strNamespace; - } - - inline HRESULT SetEncodingStyle(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strEncodingStyle.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetEncodingStyle(const CStringW& strName) - { - m_strEncodingStyle = strName; - - return S_OK; - } - - inline CStringW& GetEncodingStyle() - { - return m_strEncodingStyle; - } -}; // class CWSDLSoapElement - -// CWSDLSoapElementEx is an extended base class for -// soap:body -// soap:header -// soap:headerfault -class CWSDLSoapElementEx : public CWSDLSoapElement -{ -private: - - CStringW m_strParts; - -public: - - inline HRESULT SetParts(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strParts.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetParts(const CStringW& strName) - { - m_strParts = strName; - - return S_OK; - } - - inline CStringW& GetParts() - { - return m_strParts; - } -}; - -class CWSDLMessage; - -// CWSDLSoapHeaderElement is an extended class for -// soap:header -// soap:headerfault -class CWSDLSoapHeaderElement : public CWSDLSoapElementEx -{ -private: - - CQName m_message; - CWSDLMessage *m_pMessage; - bool m_bRequired; - -public: - - CWSDLSoapHeaderElement() - : m_pMessage(NULL), m_bRequired(false) - { - } - - inline HRESULT SetMessage(const CStringW& strQName) - { - m_message.SetQName(strQName); - - return S_OK; - } - - inline HRESULT SetMessage(const CStringW& strPrefix, const CStringW& strName) - { - m_message.SetQName(strPrefix, strName); - - return S_OK; - } - - inline HRESULT SetMessage(const wchar_t *wszQName, int cchQName) - { - m_message.SetQName(wszQName, cchQName); - - return S_OK; - } - - inline CQName& GetMessageName() - { - return m_message; - } - - // TODO: determine how/when these get set - inline void SetRequired(bool bRequired) - { - m_bRequired = bRequired; - } - - inline bool GetRequired() - { - return m_bRequired; - } - - CWSDLMessage * GetMessage(); -}; // class CWSDLSoapHeaderElement - -// CWSDLSoapFaultElement is an extended class for -// soap:fault -class CWSDLSoapFaultElement : public CWSDLSoapElement -{ -private: - - CStringW m_strName; - -public: - - inline HRESULT SetName(const wchar_t *wszName, int cchName) - { - if (!wszName) - { - return E_FAIL; - } - - m_strName.SetString(wszName, cchName); - - return S_OK; - } - - inline HRESULT SetName(const CStringW& strName) - { - m_strName = strName; - - return S_OK; - } - - inline CStringW& GetName() - { - return m_strName; - } -}; // class CWSDLSoapFaultElement - -typedef CWSDLSoapElementEx CSoapBody; -typedef CWSDLSoapHeaderElement CSoapHeader; -typedef CWSDLSoapHeaderElement CSoapHeaderFault; -typedef CWSDLSoapFaultElement CSoapFault; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLType.h b/ATL90/source/SProxy/WSDLType.h deleted file mode 100644 index 8410089..0000000 --- a/ATL90/source/SProxy/WSDLType.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// WSDLType.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "XMLElement.h" -#include "Schema.h" - -class CWSDLType : public CXMLElement -{ -private: - - CStringW m_strDocumentation; - - CAtlPtrList m_schemas; - -public: - - inline CSchema * AddSchema(CSchema * p = NULL) - { - CAutoPtr spOut; - if (p== NULL) - { - spOut.Attach( new CSchema ); - p = spOut; - } - - if (p != NULL) - { - if (m_schemas.AddTail(p) != NULL) - { - spOut.Detach(); - return p; - } - } - - return NULL; - } - - inline POSITION GetFirstSchema() - { - return m_schemas.GetHeadPosition(); - } - - inline CSchema * GetNextSchema(POSITION& pos) - { - return m_schemas.GetNext(pos); - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLTypesParser.cpp b/ATL90/source/SProxy/WSDLTypesParser.cpp deleted file mode 100644 index 3bb5208..0000000 --- a/ATL90/source/SProxy/WSDLTypesParser.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// WSDLTypesParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -#include "WSDLTypesParser.h" -#include "SchemaParser.h" - -#include "WSDLType.h" -#include "Attribute.h" -#include "Content.h" -#include "Element.h" -#include "ComplexType.h" - -TAG_METHOD_IMPL(CWSDLTypesParser, OnDocumentation) -{ - TRACE_PARSE_ENTRY(); - - return SkipElement(); -} - -TAG_METHOD_IMPL(CWSDLTypesParser, OnSchema) -{ - TRACE_PARSE_ENTRY(); - - CWSDLType *pCurr = GetType(); - if (pCurr != NULL) - { - CSchema *pElem = pCurr->AddSchema(); - if (pElem != NULL) - { - SetXMLElementInfo(pElem, pCurr, GetLocator()); - - CAutoPtr p( new CSchemaParser(GetReader(), this, GetLevel(), pElem) ); - if (p != NULL) - { - if (g_ParserList.AddHead(p) != NULL) - { - return p.Detach()->GetAttributes(pAttributes); - } - } - } - } - - EmitErrorHr(E_OUTOFMEMORY); - - return E_FAIL; -} - -HRESULT __stdcall CWSDLTypesParser::startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri) -{ - CWSDLType *pCurr = GetType(); - if (pCurr != NULL) - { - return pCurr->SetNamespaceUri(wszPrefix, cchPrefix, wszUri, cchUri); - } - return E_FAIL; -} - -HRESULT CWSDLTypesParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t * /*wszQName*/, int /*cchQName*/, - ISAXAttributes * /*pAttributes*/) throw() -{ - CWSDLType *pCurr = GetType(); - if (pCurr != NULL) - { - int nLine; - int nCol; - GetLocator()->getLineNumber(&nLine); - GetLocator()->getColumnNumber(&nCol); - - EmitFileWarning(IDS_SDL_SKIP_EXTENSIBILITY, - pCurr->GetParentDocument()->GetDocumentUri(), - nLine, - nCol, - 0, - wszNamespaceUri, - wszLocalName); - } - return SkipElement(); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/WSDLTypesParser.h b/ATL90/source/SProxy/WSDLTypesParser.h deleted file mode 100644 index efd17f2..0000000 --- a/ATL90/source/SProxy/WSDLTypesParser.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// WSDLTypesParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" - -class CWSDLType; - -class CWSDLTypesParser : public CParserBase -{ -private: - - CWSDLType * m_pType; - -public: - - inline CWSDLTypesParser() - { - } - - inline CWSDLTypesParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel, CWSDLType * pType = NULL) - :CParserBase(pReader, pParent, dwLevel), m_pType(pType) - { - } - - inline CWSDLType * GetType() - { - return m_pType; - } - - inline void SetType(CWSDLType * pType) - { - m_pType = pType; - } - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("documentation", WSDL_NAMESPACEA, OnDocumentation) - XMLTAG_ENTRY_EX("schema", XSD_NAMESPACEA, OnSchema) - END_XMLTAG_MAP() - - EMPTY_XMLATTR_MAP() - - TAG_METHOD_DECL(OnDocumentation); - TAG_METHOD_DECL(OnSchema); - - HRESULT __stdcall startPrefixMapping( - const wchar_t *wszPrefix, - int cchPrefix, - const wchar_t *wszUri, - int cchUri); - - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLDocParser.cpp b/ATL90/source/SProxy/XMLDocParser.cpp deleted file mode 100644 index dfe37a6..0000000 --- a/ATL90/source/SProxy/XMLDocParser.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// XMLDocParser.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "XMLDocParser.h" -#include "resource.h" - -CXMLDocParser::CXMLDocParser() - :m_docType(UNKDOC) -{ -} - -CXMLDocParser::CXMLDocParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel) - :CParserBase(pReader, pParent, dwLevel), m_docType(UNKDOC) -{ -} - -TAG_METHOD_IMPL( CXMLDocParser, OnSchema ) -{ - if (m_docType != UNKDOC && m_docType != SCHEMADOC) - { - ATLTRACE( _T("Not a schema document. Unknown root document tag: %.*ws\n"), cchLocalName, wszLocalName ); - } - return S_OK; -} - -TAG_METHOD_IMPL( CXMLDocParser, OnDefinitions ) -{ - if (m_docType != UNKDOC && m_docType != WSDLDOC) - { - ATLTRACE( _T("Not a WSDL document. Unknown root document tag: %.*ws\n"), cchLocalName, wszLocalName ); - } - return S_OK; -} - -HRESULT CXMLDocParser::OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw() -{ - const wchar_t *wszUrl; - if (SUCCEEDED(GetReader()->getBaseURL(&wszUrl))) - { - EmitError(IDS_SDL_UNRECOGNIZED_DOC, wszUrl, wszNamespaceUri, wszLocalName); - } - - return CParserBase::OnUnrecognizedTag(wszNamespaceUri, cchNamespaceUri, - wszLocalName, cchLocalName, - wszQName, cchQName, - pAttributes); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLDocParser.h b/ATL90/source/SProxy/XMLDocParser.h deleted file mode 100644 index 0758650..0000000 --- a/ATL90/source/SProxy/XMLDocParser.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// XMLDocParser.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "Parser.h" -#include "XMLDocument.h" - -class CXMLDocParser : public CParserBase -{ - XMLDOCTYPE m_docType; - -public: - - CXMLDocParser(); - CXMLDocParser(ISAXXMLReader *pReader, CParserBase *pParent, DWORD dwLevel); - - BEGIN_XMLTAG_MAP() - XMLTAG_ENTRY_EX("schema", XSD_NAMESPACEA, OnSchema) - XMLTAG_ENTRY_EX("definitions", WSDL_NAMESPACEA, OnDefinitions) - END_XMLTAG_MAP() - - TAG_METHOD_DECL( OnSchema ); - TAG_METHOD_DECL( OnDefinitions ); - - inline void SetExpectingDocType(XMLDOCTYPE docType) - { - m_docType = docType; - } - - // - // override OnUnrecognizedTag - // - HRESULT OnUnrecognizedTag( - const wchar_t *wszNamespaceUri, int cchNamespaceUri, - const wchar_t *wszLocalName, int cchLocalName, - const wchar_t *wszQName, int cchQName, - ISAXAttributes *pAttributes) throw(); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLDocument.cpp b/ATL90/source/SProxy/XMLDocument.cpp deleted file mode 100644 index 4f04a6d..0000000 --- a/ATL90/source/SProxy/XMLDocument.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// XMLDocument.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "XMLDocument.h" -#include "Emit.h" - -CXMLDocument::~CXMLDocument() -{ -} - -CXMLDocument::CXMLDocument(XMLDOCTYPE docType) - :m_docType(docType) -{ -} - -BOOL CXMLDocument::AddDocument(const CStringW& strUri, CXMLDocument *pDoc) -{ - // - // always try to add to the parent if possible - // - CXMLDocument * pParentDocument = GetParentDocument(); - if (pParentDocument != NULL) - { - return pParentDocument->AddDocument(strUri, pDoc); - } - - if (m_docMap.SetAt(strUri, pDoc) != NULL) - { - return TRUE; - } - else - { - EmitErrorHr(E_OUTOFMEMORY); - return FALSE; - } -} - -BOOL CXMLDocument::AddDocument(LPCWSTR wszUri, int cchUri, CXMLDocument *pDoc) -{ - CStringW strUri; - strUri.SetString(wszUri, cchUri); - - return AddDocument(strUri, pDoc); -} - - -CXMLDocument * CXMLDocument::GetDocument(const CStringW& strUri) -{ - CXMLDocument *pDoc = NULL; - const XMLDOCMAP::CPair *p = m_docMap.Lookup(strUri); - if (p != NULL) - { - pDoc = const_cast(p)->m_value; - } - else - { - CXMLDocument * pParentDocument = GetParentDocument(); - if (pParentDocument != NULL) - { - pDoc = pParentDocument->GetDocument(strUri); - } - } - - return pDoc; -} - -CXMLDocument * CXMLDocument::GetDocument(LPCWSTR wszUri, int cchUri) -{ - CStringW strUri; - strUri.SetString(wszUri, cchUri); - - return GetDocument(strUri); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLDocument.h b/ATL90/source/SProxy/XMLDocument.h deleted file mode 100644 index d804492..0000000 --- a/ATL90/source/SProxy/XMLDocument.h +++ /dev/null @@ -1,116 +0,0 @@ -// -// XMLDocument.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" - -enum XMLDOCTYPE -{ - // - // generic (unknown) document type - // - UNKDOC = 1, - - // - // XML schema document - // - SCHEMADOC, - - // - // WSDL document - // - WSDLDOC, - - // - // DiscoMap document - DMDOC -}; - -class CXMLDocument; -typedef CAtlPtrMap > XMLDOCMAP; - -class CXMLDocument : public CXMLElement -{ -private: - - XMLDOCTYPE m_docType; - CStringW m_strDocumentUri; - CStringW m_strTargetNamespace; - - // - // mapping of URI's to CXMLDocuments - // - XMLDOCMAP m_docMap; - -public: - virtual ~CXMLDocument() = 0; - CXMLDocument(XMLDOCTYPE docType = UNKDOC); - - BOOL AddDocument(const CStringW& strUri, CXMLDocument *pDoc); - BOOL AddDocument(LPCWSTR wszUri, int cchUri, CXMLDocument *pDoc); - CXMLDocument * GetDocument(const CStringW& strUri); - CXMLDocument * GetDocument(LPCWSTR wszUri, int cchUri); - - inline void SetDocumentType(XMLDOCTYPE docType) - { - m_docType = docType; - } - - inline XMLDOCTYPE GetDocumentType() - { - return m_docType; - } - - inline HRESULT SetTargetNamespace(const wchar_t *wszTargetNamespace, int cchTargetNamespace) - { - if (!wszTargetNamespace) - { - return E_FAIL; - } - - m_strTargetNamespace.SetString(wszTargetNamespace, cchTargetNamespace); - - return S_OK; - } - - inline HRESULT SetTargetNamespace(const CStringW& strTargetNamespace) - { - m_strTargetNamespace = strTargetNamespace; - - return S_OK; - } - - inline const CStringW& GetTargetNamespace() - { - return m_strTargetNamespace; - } - - inline HRESULT SetDocumentUri(const wchar_t *wszDocumentUri, int cchDocumentUri) - { - if (!wszDocumentUri) - { - return E_FAIL; - } - - m_strDocumentUri.SetString(wszDocumentUri, cchDocumentUri); - - return S_OK; - } - - inline HRESULT SetDocumentUri(const CStringW& strDocumentUri) - { - m_strDocumentUri = strDocumentUri; - - return S_OK; - } - - inline const CStringW& GetDocumentUri() - { - return m_strDocumentUri; - } -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLElement.cpp b/ATL90/source/SProxy/XMLElement.cpp deleted file mode 100644 index 4736744..0000000 --- a/ATL90/source/SProxy/XMLElement.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// XMLElement.cpp -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "XMLElement.h" -#include "XMLDocument.h" -#include "Emit.h" - -HRESULT CXMLElement::GetNamespaceUri(const CStringW &strPrefix, CStringW &strUri) -{ - if (m_namespaceMap.Lookup(strPrefix, strUri)) - { - return S_OK; - } - - if (m_pParentElement != NULL) - { - return m_pParentElement->GetNamespaceUri(strPrefix, strUri); - } - - return E_FAIL; -} - -LPCWSTR CXMLElement::GetNamespaceUri(LPCWSTR wszPrefix, int cchPrefix) -{ - if (cchPrefix == -1) - { - cchPrefix = (int)wcslen(wszPrefix); - } - - CStringW strUri(wszPrefix, cchPrefix); - - CStringW strRet; - if (SUCCEEDED(GetNamespaceUri(strUri, strRet))) - { - return (LPCWSTR) strRet; - } - return NULL; -} - -HRESULT CXMLElement::SetNamespaceUri(const CStringW& strPrefix, CStringW &strUri) -{ - if (m_namespaceMap.SetAt(strPrefix, strUri) != NULL) - { - return S_OK; - } - EmitErrorHr(E_OUTOFMEMORY); - return E_FAIL; -} - -HRESULT CXMLElement::SetNamespaceUri(LPCWSTR wszPrefix, int cchPrefix, LPCWSTR wszUri, int cchUri) -{ - if (cchPrefix == -1) - { - cchPrefix = (int)wcslen(wszPrefix); - } - CStringW strPrefix(wszPrefix, cchPrefix); - - if (cchUri == -1) - { - cchUri = (int)wcslen(wszUri); - } - CStringW strUri(wszUri, cchUri); - - return SetNamespaceUri(strPrefix, strUri); -} \ No newline at end of file diff --git a/ATL90/source/SProxy/XMLElement.h b/ATL90/source/SProxy/XMLElement.h deleted file mode 100644 index b3f71f9..0000000 --- a/ATL90/source/SProxy/XMLElement.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// XMLElement.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" - -class CXMLDocument; - -// TODO: set locator information for each element -struct LOCATORINFO -{ - int nLine; - int nCol; - - LOCATORINFO() - :nLine(0), nCol(0) - { - } -}; - -class CXMLElement -{ -private: - - CXMLDocument * m_pParentDocument; - CXMLElement * m_pParentElement; - NAMESPACEMAP m_namespaceMap; - LOCATORINFO m_locInfo; - -public: - virtual ~CXMLElement() = 0 {}; - - inline CXMLElement(CXMLDocument *pDoc = NULL, CXMLElement * pParentElement = NULL) - :m_pParentDocument(pDoc), m_pParentElement(pParentElement) - { - } - - inline CXMLElement * GetParentElement() - { - return m_pParentElement; - } - - inline void SetParentElement(CXMLElement * pParentElement) - { - m_pParentElement = pParentElement; - } - - inline CXMLDocument * GetParentDocument() - { - return m_pParentDocument; - } - - void SetParentDocument(CXMLDocument *pDoc) - { - m_pParentDocument = pDoc; - } - - void SetLineNumber(int nLine) - { - m_locInfo.nLine = nLine; - } - - void SetColumnNumber(int nCol) - { - m_locInfo.nCol = nCol; - } - - int GetLineNumber() - { - return m_locInfo.nLine; - } - - int GetColumnNumber() - { - return m_locInfo.nCol; - } - - HRESULT GetNamespaceUri(const CStringW &strPrefix, CStringW &strUri); - LPCWSTR GetNamespaceUri(LPCWSTR wszPrefix, int cchPrefix = -1); - HRESULT SetNamespaceUri(const CStringW& strPrefix, CStringW &strUri); - HRESULT SetNamespaceUri(LPCWSTR wszPrefix, int cchPrefix, LPCWSTR wszUri, int cchUri); -}; \ No newline at end of file diff --git a/ATL90/source/SProxy/XSDElement.h b/ATL90/source/SProxy/XSDElement.h deleted file mode 100644 index b5df854..0000000 --- a/ATL90/source/SProxy/XSDElement.h +++ /dev/null @@ -1,220 +0,0 @@ -// -// XSDElement.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "stdafx.h" -#include "XMLElement.h" -#include "XSDMappingTable.h" -#include "Emit.h" - -enum XSDELEMENT_TYPE -{ - XSD_UNK = 0, - - XSD_ERR = 1, - - // - // Permits the elements in the group to appear (or not appear) - // in any order in the containing element. - // - XSD_ALL = 2, - - // - // Enables any element from the specified namespace(s) - // to appear in the containing complexType, sequence, or choice element. - // - XSD_ANY, - - // - // Enables any attribute from the specified namespace(s) - // to appear in the containing complexType element. - // - XSD_ANYATTRIBUTE, - - // - // Defines an annotation. - // - XSD_ANNOTATION, - - // - // Specifies information to be used by applications - // within an annotation. - // - XSD_APPINFO, - - // - // Declares an attribute. - // - XSD_ATTRIBUTE, - - // - // Groups a set of attribute declarations so that they - // can be incorporated as a group into complex type definitions. - // - XSD_ATTRIBUTEGROUP, - - // - // Permits one and only one of the elements contained in the group - // to be present within the containing element. - // - XSD_CHOICE, - - // - // Defines a complex type, which determines the set of attributes - // and the content of an element. - // - XSD_COMPLEXTYPE, - - // - // Specifies information to be read by or used by humans - // within an annotation. - // - XSD_DOCUMENTATION, - - // - // Declares an element. - // - XSD_ELEMENT, - - // - // Specifies an XPATH expression that specifies value - // (or one of the values) used to enforce an identity - // constraint (unique, key, keyref). - // - XSD_FIELD, - - // - // Groups a set of element declarations so that they can - // be incorporated as a group into complex type definitions. - // - XSD_GROUP, - - // - // Identifies a namespace whose schema components are referenced - // by the containing schema. - // - XSD_IMPORT, - - // - // Includes the specified schema document in the targetNamespace - // of the containing schema. - // - XSD_INCLUDE, - - // - // Specifies that an attribute or element value (or set of values) - // must be a key within the specified scope. A key must be unique, - // non-nullable, and always present. - // - XSD_KEY, - - // - // Specifies that an attribute or element value (or set of values) - // have a correspondence with those of the specified key or unique element. - // - XSD_KEYREF, - - // - // Contains the definition of a schema. - // - XSD_SCHEMA, - - // - // Specifies an XPATH expression that selects a set of elements for an - // identity constraint (unique, key, keyref). - // - XSD_SELECTOR, - - // - // Requires the elements in the group to appear in the specified sequence - // within the containing element. - // - XSD_SEQUENCE, - - // - // Defines a simple type, which determines the constraints on and - // information about the values of attributes or elements with - // text-only content. - // - XSD_SIMPLETYPE, - - // - // Specifies that an attribute or element value (or set of values) - // must be unique within the specified scope. - // - XSD_UNIQUE, - - XSD_COMPLEXCONTENT, - XSD_SIMPLECONTENT, - XSD_RESTRICTION, - XSD_EXTENSION, - - XSD_UNSUPPORTED -}; - -class CSchema; - -class CXSDElement : public CXMLElement -{ -private: - - XSDELEMENT_TYPE m_elementType; - CSchema * m_pParentSchema; - -public: - - CXSDElement(CXMLElement * pParentElement = NULL, XSDELEMENT_TYPE elementType = XSD_UNK) - :m_elementType(elementType) - { - SetParentElement(pParentElement); - } - - inline XSDELEMENT_TYPE GetElementType() - { - return m_elementType; - } - - inline void SetElementType(XSDELEMENT_TYPE elementType) - { - m_elementType = elementType; - } - - inline CSchema * GetParentSchema() - { - return m_pParentSchema; - } - - inline void SetParentSchema(CSchema * pParentSchema) - { - m_pParentSchema = pParentSchema; - } -}; - -// XSD Mapping table -extern const __declspec(selectany) CXSDTypeLookup g_xsdLookup; - -inline HRESULT GetXSDType(const CStringW& strUri, const CStringW& strName, XSDTYPE *pXSD) -{ - ATLASSERT( pXSD != NULL ); - *pXSD = XSDTYPE_ERR; - if (strUri == XSD_NAMESPACEW) - { - const CXSDTypeLookup::HashNode *pNode = g_xsdLookup.Lookup(strName); - if (pNode != NULL) - { - *pXSD = pNode->data.xsdType; - return S_OK; - } - else // (pNode == NULL) - { - EmitError(IDS_SDL_UNRESOLVED_ELEM, strUri, strName); - return E_FAIL; - } - } - - return S_FALSE; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/XSDMappingTable.h b/ATL90/source/SProxy/XSDMappingTable.h deleted file mode 100644 index e93c416..0000000 --- a/ATL90/source/SProxy/XSDMappingTable.h +++ /dev/null @@ -1,604 +0,0 @@ -#include - -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -enum FACET_TYPE -{ - // - // value is timeDuration - // - FACET_DURATION = 1, - - // - // value is "hex" or "base64" - // - FACET_ENCODING = 2, - - // - // specified set of values -- this constrains - // the datatype to the specified values - // - FACET_ENUMERATION = 4, - - // - // number of units of length - // units of length depends on the data type - // value is nonNegativeInteger - // - FACET_LENGTH = 8, - - // - // Upper bound value (all values are less than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MAXEXCLUSIVE = 16, - - // - // Maximum value. - // This value must be the same data type as the inherited data type. - // - FACET_MAXINCLUSIVE = 32, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MAXLENGTH = 64, - - // - // Lower bound value (all values are greater than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MINEXCLUSIVE = 128, - - // - // Minimum value. - // This value must be the same data type as the inherited data type. - // - FACET_MININCLUSIVE = 256, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MINLENGTH = 512, - - // - // Specific pattern that the data type’s values must match. - // This constrains the data type to literals that match the - // specified pattern. - // The pattern value must be a regular expression. - // - FACET_PATTERN = 1024, - - // - // Frequency of recurrence for recurringDuration and its derivatives. - // This value must be timeDuration. - // - FACET_PERIOD = 2048, - - // - // Maximum number of digits for data types derived from decimal. - // This value must a positiveInteger. - // - FACET_PRECISION = 4096, - - // - // Maximum number of digits in the fractional portion for data types - // derived from decimal. - // This value must a nonNegativeInteger. - // - FACET_SCALE = 8192, - - // - // whiteSpace provides for: constraining a value space to the white space - // normalization rules. - // - FACET_WHITESPACE = 16384 -}; - -enum XSDTYPE -{ - XSDTYPE_ERR = -2, - XSDTYPE_UNK = -1, - - // - // string - // - XSDTYPE_STRING = 0, - - // - // boolean - // - XSDTYPE_BOOLEAN, - - // - // Represents single-precision 32-bit floating point numbers. - // - XSDTYPE_FLOAT, - - // - // Represents double-precision 64-bit floating point numbers. - // - XSDTYPE_DOUBLE, - - // - // Represents arbitrary precision numbers. - // - XSDTYPE_DECIMAL, - - // - // Represents a duration of time. - // - XSDTYPE_DURATION, - -#if 0 -/* removed */ - // - // Represents a timeDuration that recurs at a specific - // timeDuration, starting from a specific origin. - // This data type cannot be used directly in a schema. - // Only derived data types that specify duration and period can be used. - // - XSDTYPE_UNK, // abstract -#endif - - // - // Represents binary data. - // - XSDTYPE_HEXBINARY, - - // - // Represents binary data. - // - XSDTYPE_BASE64BINARY, - - // - // Represents a Uniform Resource Identifier - // (URI) as defined by RFC 2396. - // - XSDTYPE_ANYURI, - - // - // Represents the ID attribute type defined in the XML 1.0 - // Recommendation. The ID must be an NCName and must be - // unique within an XML document. - // - XSDTYPE_ID, - - // - // Represents a reference to an element that has an ID attribute - // that matches the specified ID. An IDREF must be an NCName and - // must be a value of an element or attribute of type ID within - // the XML document. - // - XSDTYPE_IDREF, - - // - // Represents the ENTITY attribute type in XML 1.0 Recommendation. - // This is a reference to an unparsed entity with a name that matches - // the specified name. An ENTITY must be an NCName and must be - // declared in the schema as an unparsed entity name. - // - XSDTYPE_ENTITY, - - // - // Represents the NOTATION attribute type in XML 1.0 Recommendation. - // This is a reference to a notation with a name that matches the - // specified name. A NOTATION must be an NCName and must be declared - // in the schema as a notation name. - // - XSDTYPE_NOTATION, - - // - // Represents a qualified name. A qualified name is composed of a prefix - // and a local name separated by a colon. Both the prefix and local names - // must be of type NCName. The prefix must be associated with a namespace - // URI reference, using a namespace declaration. - // - XSDTYPE_QNAME, - - // - // Begin Derived Types - // - - // - // CDATA represents white space normalized strings. The value space of CDATA - // is the set of strings that do not contain the carriage-return (#xD), line-feed - // (#xA), nor tab (#x9) characters. The lexical space of CDATA is the set of - // strings that do not cotain the newline (#xD) nor tab (#x9) characters - // - XSDTYPE_NORMALIZEDSTRING, - - // - // token represents tokenized strings. The value space of token is the set of - // strings that do not contain the line-feed (#xA) nor tab (#x9) characters, - // that have no leading or trailing spaces (#x20) and that have no internal sequences - // of two or more spaces. The lexical space of token is the set of strings - // that do not contain the line-feed (#xA) nor tab (#x9) characters, that have - // no trailing or leading spaces (#x20) and that have no internal sequences - // of two or more spaces - XSDTYPE_TOKEN, - - - // - // Represents natural language identifiers (defined by RFC 1766). - // - XSDTYPE_LANGUAGE, - - // - // Represents the IDREFS attribute type. IDREFS contains a - // set of values of type IDREF. - // - XSDTYPE_IDREFS, - - // - // Represents the ENTITIES attribute type. ENTITIES - // contains a set of values of type ENTITY. - // - XSDTYPE_ENTITIES, - - // - // Represents the NMTOKEN attribute type. An NMTOKEN - // is set of name characters (letters, digits, and other - // characters) in any combination. Unlike Name and NCName, - // NMTOKEN has no restrictions on the starting character. - // - XSDTYPE_NMTOKEN, - - // - // Represents the NMTOKENS attribute type. NMTOKENS contains - // a set of values of type NMTOKEN. - // - XSDTYPE_NMTOKENS, - - // - // Represents names in XML. A Name is a token that begins with - // a letter, underscore, or colon and continues with name - // characters (letters, digits, and other characters). - // - XSDTYPE_NAME, - - // - // Represents “non-colonized” names. This data type is the - // same as Name—except it cannot begin with a colon. - // - XSDTYPE_NCNAME, - - // - // Represents a sequence of decimal digits with an optional leading - // sign (+ or -). This data type is derived from decimal. - // - XSDTYPE_INTEGER, - - // - // Represents an integer that is less than or equal to zero. A - // nonPositiveInteger consists of a negative sign (-) and sequence - // of decimal digits. This data type is derived from integer. - // - XSDTYPE_NONPOSITIVEINTEGER, - - // - // Represents an integer that is less than zero. A negativeInteger - // consists of a negative sign (-) and sequence of decimal digits. - // This data type is derived from nonPositiveInteger. - // - XSDTYPE_NEGATIVEINTEGER, - - // - // Represents an integer with a minimum value of -9223372036854775808 - // and maximum of 9223372036854775807. This data type is derived from integer. - // - XSDTYPE_LONG, - - // - // Represents an integer with a minimum value of -32768 and maximum of 32767. - // This data type is derived from long. - // - XSDTYPE_INT, - - // - // Represents an integer with a minimum value of -2147483648 and maximum of 2147483647. - // This data type is derived from int. - // - XSDTYPE_SHORT, - - // - // Represents an integer with a minimum value of -128 and maximum of 127. - // This data type is derived from short. - // - XSDTYPE_BYTE, - - // - // Represents an integer that is greater than or equal to zero. - // This data type is derived from integer. - // - XSDTYPE_NONNEGATIVEINTEGER, - - // - // Represents an integer with a minimum of zero and maximum of 18446744073709551615. - // This data type is derived from nonNegativeInteger. - // - XSDTYPE_UNSIGNEDLONG, - - // - // Represents an integer with a minimum of zero and maximum of 4294967295. - // This data type is derived from unsignedLong. - // - XSDTYPE_UNSIGNEDINT, - - // - // Represents an integer with a minimum of zero and maximum of 65535. - // This data type is derived from unsignedInt. - // - XSDTYPE_UNSIGNEDSHORT, - - // - // Represents an integer with a minimum of zero and maximum of 255. - // This data type is derived from unsignedShort. - // - XSDTYPE_UNSIGNEDBYTE, - - // - // Represents an integer that is greater than zero. - // This data type is derived from nonNegativeInteger. - // - XSDTYPE_POSITIVEINTEGER, - - // - // Represents an instant of time. - // This data type is derived from recurringDuration. - // - XSDTYPE_DATETIME, - - // - // Represents the time of day. - // This data type is derived from recurringDuration. - // - XSDTYPE_TIME, - -#if 0 -/* removed ??? */ - // - // Represents a period of time with a start and an end. - // This data type is derived from recurringDuration. - // This data type cannot be used directly in a schema. - // Only derived data types that specify duration can be used. - // - XSDTYPE_TIMEPERIOD, -#endif - - // - // Represents a timePeriod that begins at midnight of the specified - // day and ends at midnight the following day. - // This data type is derived from timePeriod. - // The format of the date is CCYY-MM-DD. - // Example: 2000-09-27 - // - XSDTYPE_DATE, - - // - // Represents a timePeriod that begins at midnight of the first day of - // the specified month and ends at midnight of the last day. This data type - // is independent of the number days in the month. - // This data type is derived from timePeriod. - // - XSDTYPE_GMONTH, - XSDTYPE_GYEARMONTH, - - // - // Represents a timePeriod that begins at midnight of the first day of - // the specified year and ends at midnight of the last day. This data - // type is independent of the number days in the year. - // This data type is derived from timePeriod. - // - XSDTYPE_GYEAR, - -#if 0 -/* removed */ - // - // Represents a timePeriod that begins at midnight of the first day of the - // specified century and ends at midnight of the last day. - // This data type is derived from timePeriod. - // - XSDTYPE_CENTURY, -#endif - - // - // Represents a recurring day in the year. - // This data type is derived from recurringDuration. - // - XSDTYPE_GMONTHDAY, - - // - // Represents a recurring day in the month. - // This data type is derived from recurringDuration. - // - XSDTYPE_GDAY -}; - -enum XSDFLAGS -{ - XSDFLAG_NONE = 0, - XSDFLAG_ABSTRACT = 1, - XSDFLAG_PRIMITIVE = 2, - XSDFLAG_DERIVED = 4 -}; - -struct _xsdtypemapping -{ - XSDTYPE xsdType; - XSDTYPE baseType; - DWORD dwFlags; - DWORD dwAllowableFacets; -}; - -class CXSDTypeLookup -{ -public: - - struct HashNode - { - wchar_t * key; - unsigned long hash; - size_t link; - size_t entries; - _xsdtypemapping data; - }; - -protected: - const static HashNode m_data[99]; - const static size_t m_size = 88; - const static size_t m_tableSize = 44; - -public: - - static unsigned long Hash( const wchar_t * sz ) - { - unsigned long hash; - hash = 0; - while ( *sz != 0 ) - { - hash = (hash<<3)+hash+(*sz); - sz++; - } - return hash; - } - - static const HashNode * Lookup( const wchar_t * key ) - { - unsigned long hash; - const HashNode * p; - unsigned long index; - hash = Hash(key); - index = hash % m_size; - p = &m_data[index]; - while (p->key) - { - if (p->hash==hash && !wcscmp(key, p->key)) - break; - - if (p->link) - { - p = &m_data[p->link]; - } - else - { - p = 0; - break; - } - } - - if (p && p->key) - return p; - return NULL; - } -}; - -__declspec(selectany) const CXSDTypeLookup::HashNode CXSDTypeLookup::m_data[99] = -{ - { 0, 0x00000000, 0, 0, }, - { L"positiveInteger", 0xabe363a1, 0, 0, {XSDTYPE_POSITIVEINTEGER, XSDTYPE_NONNEGATIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"hexBinary", 0x2bb71922, 88, 1, {XSDTYPE_HEXBINARY, XSDTYPE_UNK, XSDFLAG_ABSTRACT | XSDFLAG_PRIMITIVE, FACET_ENCODING | FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} }, - { 0, 0x00000000, 0, 0, }, - { L"NOTATION", 0x191078f4, 89, 1, {XSDTYPE_NOTATION, XSDTYPE_QNAME, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { 0, 0x00000000, 0, 0, }, - { L"gYearMonth", 0x4f23e716, 0, 0, {XSDTYPE_GYEARMONTH, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"language", 0x224b89a4, 0, 0, {XSDTYPE_LANGUAGE, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { L"ENTITIES", 0x16785275, 90, 2, {XSDTYPE_ENTITIES, XSDTYPE_IDREF, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"anyURI", 0x0063dfd8, 0, 0, {XSDTYPE_ANYURI, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} }, - { L"token", 0x000cfee1, 92, 1, {XSDTYPE_TOKEN, XSDTYPE_NORMALIZEDSTRING, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"int", 0x0000258b, 93, 1, {XSDTYPE_INT, XSDTYPE_LONG, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"byte", 0x000141d4, 0, 0, {XSDTYPE_BYTE, XSDTYPE_SHORT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"ID", 0x000002d5, 94, 1, {XSDTYPE_ID, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"long", 0x00015af0, 95, 1, {XSDTYPE_LONG, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"IDREF", 0x00082d32, 0, 0, {XSDTYPE_IDREF, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"dateTime", 0x20088755, 0, 0, {XSDTYPE_DATETIME, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"string", 0x0074a4ff, 96, 1, {XSDTYPE_STRING, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"normalizedString", 0x66e5729c, 0, 0, {XSDTYPE_NORMALIZEDSTRING, XSDTYPE_STRING, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"duration", 0x20a8dd8e, 0, 0, {XSDTYPE_DURATION, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"double", 0x0066a733, 0, 0, {XSDTYPE_DOUBLE, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { L"nonNegativeInteger", 0x44dfc4fc, 0, 0, {XSDTYPE_NONNEGATIVEINTEGER, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"IDREFS", 0x00499715, 0, 0, {XSDTYPE_IDREFS, XSDTYPE_IDREF, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"nonPositiveInteger", 0xe6262dcc, 0, 0, {XSDTYPE_NONPOSITIVEINTEGER, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"integer", 0x03c3739e, 97, 1, {XSDTYPE_INTEGER, XSDTYPE_DECIMAL, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"short", 0x000cd310, 0, 0, {XSDTYPE_SHORT, XSDTYPE_INT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"Name", 0x00010109, 0, 0, {XSDTYPE_NAME, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"decimal", 0x03912567, 0, 0, {XSDTYPE_DECIMAL, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { L"gYear", 0x000b7108, 0, 0, {XSDTYPE_GYEAR, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { L"QName", 0x00091cfa, 0, 0, {XSDTYPE_QNAME, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"ENTITY", 0x00470435, 98, 1, {XSDTYPE_ENTITY, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { L"float", 0x000b90ae, 0, 0, {XSDTYPE_FLOAT, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} }, - { L"time", 0x00016fc7, 0, 0, {XSDTYPE_TIME, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"boolean", 0x038b29b0, 0, 0, {XSDTYPE_BOOLEAN, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_PATTERN} }, - { L"negativeInteger", 0x0a9cfad1, 0, 0, {XSDTYPE_NEGATIVEINTEGER, XSDTYPE_NONPOSITIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"NCName", 0x004dfdaa, 0, 0, {XSDTYPE_NMTOKEN, XSDTYPE_NAME, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { 0, 0x00000000, 0, 0, }, - { L"base64Binary", 0x3c32ab72, 0, 0, {XSDTYPE_BASE64BINARY, XSDTYPE_UNK, XSDFLAG_ABSTRACT | XSDFLAG_PRIMITIVE, FACET_ENCODING | FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} }, - { L"NMTOKEN", 0x02c74884, 0, 0, {XSDTYPE_NMTOKEN, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} }, - { L"unsignedShort", 0x6d8f7ad5, 91, 0, {XSDTYPE_UNSIGNEDSHORT, XSDTYPE_UNSIGNEDINT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"gDay", 0x00013eb5, 0, 0, {XSDTYPE_GDAY, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"unsignedByte", 0xb6d6e2b1, 0, 0, {XSDTYPE_UNSIGNEDBYTE, XSDTYPE_UNSIGNEDSHORT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"gMonthDay", 0x222e572b, 0, 0, {XSDTYPE_GMONTHDAY, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"unsignedLong", 0xb6d6fbcd, 0, 0, {XSDTYPE_UNSIGNEDLONG, XSDTYPE_NONNEGATIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"unsignedInt", 0x30c28cc0, 0, 0, {XSDTYPE_UNSIGNEDINT, XSDTYPE_UNSIGNEDLONG, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"NMTOKENS", 0x19018cf7, 0, 0, {XSDTYPE_NMTOKENS, XSDTYPE_NMTOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} }, - { L"date", 0x00013fee, 0, 0, {XSDTYPE_DATE, XSDTYPE_DATE, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, - { L"gMonth", 0x0065e6cd, 0, 0, {XSDTYPE_GMONTH, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} }, -}; - diff --git a/ATL90/source/SProxy/cppkeywords.in b/ATL90/source/SProxy/cppkeywords.in deleted file mode 100644 index 118fa8c..0000000 --- a/ATL90/source/SProxy/cppkeywords.in +++ /dev/null @@ -1,168 +0,0 @@ -%class=CCppKeywordLookup -%preamble -// -// generated with VC7Libs\Nonship\Src\Sproxy2\static_hash\static_hash /i cppkeywords.in /o CppKeywordTable.h /w -// - -%type=char -%data -auto,0 -break,0 -case,0 -char,0 -const,0 -continue,0 -default,0 -do,0 -double,0 -else,0 -enum,0 -extern,0 -float,0 -for,0 -goto,0 -if,0 -int,0 -long,0 -register,0 -return,0 -short,0 -signed,0 -sizeof,0 -static,0 -struct,0 -switch,0 -typedef,0 -union,0 -unsigned,0 -void,0 -volatile,0 -while,0 -__inline,0 -__cdecl,0 -__based,0 -__compileBreak,0 -__feacpBreak,0 -__pragma,0 -__stdcall,0 -__declspec,0 -asm,0 -catch,0 -class,0 -const_cast,0 -delete,0 -dynamic_cast,0 -__try_cast,0 -explicit,0 -friend,0 -inline,0 -mutable,0 -namespace,0 -new,0 -operator,0 -private,0 -protected,0 -public,0 -reinterpret_cast,0 -static_cast,0 -template,0 -this,0 -throw,0 -try,0 -typeid,0 -typename,0 -using,0 -virtual,0 -__single_inheritance,0 -__multiple_inheritance,0 -__virtual_inheritance,0 -__novtordisp,0 -__uuidof,0 -__resume,0 -__nounwind,0 -__thiscall,0 -cdecl,0 -__try,0 -__except,0 -__finally,0 -__finally,0 -__leave,0 -__asm,0 -__fastcall,0 -__unaligned,0 -__alignof,0 -__builtin_alignof,0 -__builtin_isfloat,0 -__wchar_t,0 -__restrict,0 -__ptr64,0 -__ptr32,0 -__w64,0 -__nontemporal,0 -__probability,0 -__nodefault,0 -__forceinline,0 -__assume,0 -__int8,0 -__int16,0 -__int32,0 -__int64,0 -__int128,0 -wchar_t,0 -wchar_t,0 -and,0 -and_eq,0 -bitand,0 -or,0 -or_eq,0 -bitor,0 -xor,0 -xor_eq,0 -compl,0 -not,0 -not_eq,0 -bool,0 -true,0 -false,0 -bool,0 -true,0 -false,0 -__property,0 -__interface,0 -__sealed,0 -__abstract,0 -__super,0 -__value,0 -__event,0 -__raise,0 -__hook,0 -__unhook,0 -__delegate,0 -__gc,0 -__nogc,0 -__pin,0 -__box,0 -__identifier,0 -__typeof,0 -__if_exists,0 -__if_not_exists,0 -__CURSOR__,0 -__LINE__,0 -__FILE__,0 -__DATE__,0 -__TIME__,0 -__TIMESTAMP__,0 -__FUNCTION__,0 -__FUNCDNAME__,0 -__FUNCSIG__,0 -__FSTREXP,0 -__LPREFIX,0 -__APREFIX,0 -__SPREFIX,0 -__cplusplus,0 -__BOOL_DEFINED,0 -__STDC__,0 -_WCHAR_T_DEFINED,0 -_NATIVE_WCHAR_T_DEFINED,0 -_WCHAR_T_DEFINED,0 -__COUNTER__,0 diff --git a/ATL90/source/SProxy/errordefs.h b/ATL90/source/SProxy/errordefs.h deleted file mode 100644 index e3485e9..0000000 --- a/ATL90/source/SProxy/errordefs.h +++ /dev/null @@ -1,253 +0,0 @@ -// -// errordefs.h -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#include "resource.h" - -enum EMIT_TYPE -{ - EMIT_ERROR = 0, - EMIT_WARNING -}; - -struct EMITDESC -{ - EMIT_TYPE emitType; - UINT nEmitID; - UINT nMsgID; - bool bForce; -}; - -#define EMITERR_BASE 1000 -#define EMITWARN_BASE 4000 - -#define DECLARE_EMITERR(__nEmitID, __nMsgID) \ - { EMIT_ERROR, EMITERR_BASE + __nEmitID, __nMsgID, false }, - -#define DECLARE_EMITERR_FORCE(__nEmitID, __nMsgID) \ - { EMIT_ERROR, EMITERR_BASE + __nEmitID, __nMsgID, true }, - -#define DECLARE_EMITWARN(__nEmitID, __nMsgID) \ - { EMIT_WARNING, EMITWARN_BASE + __nEmitID, __nMsgID, true }, - -#ifndef _PREFIX_ -extern __declspec(selectany) const EMITDESC g_Emits[] = -#else -extern const EMITDESC g_Emits[] = -#endif // _PREFIX_ -{ -// errors - - DECLARE_EMITERR_FORCE(1, IDS_SDL_PROCESS_FAILURE) - DECLARE_EMITERR_FORCE(2, IDS_SDL_GENERATE_FAILURE) - DECLARE_EMITERR(3, IDS_SDL_INTERNAL) - DECLARE_EMITERR(4, IDS_SDL_PARSE_ERROR) - DECLARE_EMITERR(5, IDS_SDL_UNRECOGNIZED_TAG) - DECLARE_EMITERR(6, IDS_SDL_MISSING_ATTRIBUTE) - DECLARE_EMITERR(7, IDS_SDL_MSXML) - DECLARE_EMITERR(8, IDS_SDL_UNRECOGNIZED_DOC) - DECLARE_EMITERR(9, IDS_SDL_UNRESOLVED_ELEM) - DECLARE_EMITERR(10, IDS_SDL_UNRESOLVED_NAMESPACE) - DECLARE_EMITERR(11, IDS_SDL_LITERAL_ONLY) - DECLARE_EMITERR(12, IDS_SDL_INVALID_VALUE) - DECLARE_EMITERR(13, IDS_SDL_UNRESOLVED_ELEM2) - DECLARE_EMITERR_FORCE(14, IDS_SDL_RECURSIVE_TYPE) - DECLARE_EMITERR_FORCE(15, IDS_SDL_MISSING_OPTION) - DECLARE_EMITERR(16, IDS_SDL_FAILED_WSDL_OPEN) - DECLARE_EMITERR(17, IDS_SDL_UNRESOLVED_MSGPART) - DECLARE_EMITERR(18, IDS_SDL_SOAPHEADER_DUPNAME) - DECLARE_EMITERR(19, IDS_SDL_SCHEMALEVEL_NAME) - DECLARE_EMITERR(20, IDS_SDL_PAD_TYPE) - DECLARE_EMITERR(21, IDS_SDL_PAD_INVALID_SOAP) - DECLARE_EMITERR(22, IDS_SDL_RPC_ENCODED_TYPE) - DECLARE_EMITERR(23, IDS_SDL_DOC_ENCODED) - DECLARE_EMITERR(24, IDS_SDL_ENCODINGSTYLE) - DECLARE_EMITERR(25, IDS_SDL_IO_DIFF_NAMESPACES) - DECLARE_EMITERR(26, IDS_SDL_RPC_LITERAL) - DECLARE_EMITERR(27, IDS_SDL_HEADER_DIFF_NAMESPACES) - DECLARE_EMITERR(28, IDS_SDL_INVALID_ARRAY_DESC_ERR) - DECLARE_EMITERR_FORCE(29, IDS_SDL_NO_GENERATE) - DECLARE_EMITERR(30, IDS_SDL_BASE_EXTENSION) - DECLARE_EMITERR_FORCE(31, IDS_SDL_PROCESS_DM_FAILURE) - DECLARE_EMITERR(32, IDS_SDL_FAILED_DM_OPEN) -// warnings - - DECLARE_EMITWARN(0, IDS_SDL_PARSE_WARNING) - DECLARE_EMITWARN(1, IDS_SDL_ONE_PORT) - DECLARE_EMITWARN(2, IDS_SDL_SOAP_PORT_ONLY) - DECLARE_EMITWARN(3, IDS_SDL_SOAP_BINDING_ONLY) - DECLARE_EMITWARN(4, IDS_SDL_UNSUPPORTED_TAG) - DECLARE_EMITWARN(5, IDS_SDL_UNSUPPORTED_STRING) - DECLARE_EMITWARN(6, IDS_SDL_IGNORE_CMDITEM) - DECLARE_EMITWARN(7, IDS_SDL_INVALID_ARRAY_DESC) - DECLARE_EMITWARN(8, IDS_SDL_SKIP_EXTENSIBILITY) - DECLARE_EMITWARN(9, IDS_SDL_CUSTOM_TYPE) - DECLARE_EMITWARN(10, IDS_SDL_NO_ATTRIBUTES) - DECLARE_EMITWARN(11, IDS_SDL_DEFAULT_TYPE) -}; - -class CEmitError -{ -private: - - bool m_bEmitted; - bool m_bEmitWarnings; - - int GetEmitIndex(UINT uID) - { - for (int i=0; i<(sizeof(g_Emits)/sizeof(g_Emits[0])); i++) - { - if (uID == g_Emits[i].nMsgID) - { - return i; - } - } - - return -1; - } - - void EmitCmdLineMsg(UINT uID, va_list args, bool bError = true) - { - char *szMsg = (bError != false) ? "error" : "warning"; - - CStringA m_strMsg; - if (m_strMsg.LoadString(IDS_SDL_CMDLINE)) - { - printf((LPCSTR) m_strMsg, szMsg); - } - - int nIndex = GetEmitIndex(uID); - if (nIndex != -1) - { - printf("D%d : ", g_Emits[nIndex].nEmitID); - Emit(uID, args); - } - } - - void EmitFileMsg(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, va_list args, bool bError) - { - char *szMsg = (bError != false) ? "error" : "warning"; - int nIndex = GetEmitIndex(uID); - if ((nIndex != -1) && - ((bError == false) || - (m_bEmitted == false) || (g_Emits[nIndex].bForce != false))) - { - CStringA strExtra; - if (uIDExtra != 0) - { - if (!strExtra.LoadString(uIDExtra)) - { - return; - } - } - printf("\r\n%ws(%d,%d) : %s%s SDL%u : ", wszFile, nLine, nCol, - (LPCSTR)strExtra, szMsg, g_Emits[nIndex].nEmitID); - Emit(uID, args); - - if (bError != false) - { - m_bEmitted = true; - } - } - } - -public: - - CEmitError() - :m_bEmitted(false), m_bEmitWarnings(true) - { - } - - void EmitErrorHr(HRESULT hr) - { - if (m_bEmitted == false) - { - char *szMsg = NULL; - DWORD dwLen = ::FormatMessageA( - FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, - NULL, hr, 0, (LPSTR)&szMsg, 0, NULL); - - if (dwLen != 0) - { - printf("\r\nsproxy : error SDL%u : %s", EMITERR_BASE, szMsg); - ::LocalFree(szMsg); - - m_bEmitted = true; - } - } - } - - void EmitError(UINT uID, va_list args) - { - int nIndex = GetEmitIndex(uID); - if ((nIndex != -1) && ((m_bEmitted == false) || (g_Emits[nIndex].bForce != false))) - { - printf("\r\nsproxy : error SDL%u : ", g_Emits[nIndex].nEmitID); - Emit(uID, args); - - m_bEmitted = true; - } - } - - void EmitWarning(UINT uID, va_list args) - { - if (m_bEmitWarnings != false) - { - int nIndex = GetEmitIndex(uID); - if (nIndex != -1) - { - printf("\r\nsproxy : warning SDL%u : ", g_Emits[nIndex].nEmitID); - Emit(uID, args); - } - } - } - - void Emit(UINT uID, va_list args) - { - CStringA m_strMsg; - if (m_strMsg.LoadString(uID)) - { - vprintf((LPCSTR) m_strMsg, args); - } - } - - bool SetEmitWarnings(bool bWarn) - { - bool bPrev = m_bEmitWarnings; - m_bEmitWarnings = bWarn; - return bPrev; - } - - void EmitCmdLineError(UINT uID, va_list args) - { - EmitCmdLineMsg(uID, args, true); - } - - void EmitCmdLineWarning(UINT uID, va_list args) - { - EmitCmdLineMsg(uID, args, false); - } - - void EmitFileWarning(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, va_list args) - { - if (m_bEmitWarnings != false) - { - EmitFileMsg(uID, wszFile, nLine, nCol, uIDExtra, args, false); - } - } - - void EmitFileError(UINT uID, LPCWSTR wszFile, int nLine, int nCol, UINT uIDExtra, va_list args) - { - EmitFileMsg(uID, wszFile, nLine, nCol, uIDExtra, args, true); - } -}; - -#ifndef _PREFIX_ -__declspec(selectany) CEmitError g_Emit; -#else -CEmitError g_Emit; -#endif \ No newline at end of file diff --git a/ATL90/source/SProxy/facets.in b/ATL90/source/SProxy/facets.in deleted file mode 100644 index 131bd4d..0000000 --- a/ATL90/source/SProxy/facets.in +++ /dev/null @@ -1,120 +0,0 @@ -%class=CFacetLookup -%preamble -// -// generated with VC7Libs\Nonship\Src\Sproxy2\static_hash\static_hash /i facets.in /o FacetMappingTable.h /w -// - -enum FACET_TYPE -{ - // - // value is timeDuration - // - FACET_DURATION = 1, - - // - // value is "hex" or "base64" - // - FACET_ENCODING = 2, - - // - // specified set of values -- this constrains - // the datatype to the specified values - // - FACET_ENUMERATION = 4, - - // - // number of units of length - // units of length depends on the data type - // value is nonNegativeInteger - // - FACET_LENGTH = 8, - - // - // Upper bound value (all values are less than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MAXEXCLUSIVE = 16, - - // - // Maximum value. - // This value must be the same data type as the inherited data type. - // - FACET_MAXINCLUSIVE = 32, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MAXLENGTH = 64, - - // - // Lower bound value (all values are greater than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MINEXCLUSIVE = 128, - - // - // Minimum value. - // This value must be the same data type as the inherited data type. - // - FACET_MININCLUSIVE = 256, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MINLENGTH = 512, - - // - // Specific pattern that the data type’s values must match. - // This constrains the data type to literals that match the - // specified pattern. - // The pattern value must be a regular expression. - // - FACET_PATTERN = 1024, - - // - // Frequency of recurrence for recurringDuration and its derivatives. - // This value must be timeDuration. - // - FACET_PERIOD = 2048, - - // - // Maximum number of digits for data types derived from decimal. - // This value must a positiveInteger. - // - FACET_PRECISION = 4096, - - // - // Maximum number of digits in the fractional portion for data types - // derived from decimal. - // This value must a nonNegativeInteger. - // - FACET_SCALE = 8192, - - // - // whiteSpace provides for: constraining a value space to the white space - // normalization rules. - // - FACET_WHITESPACE = 16384 -}; - -%type=FACET_TYPE -%data -duration,FACET_DURATION -encoding,FACET_ENCODING -enumeration,FACET_ENUMERATION -length,FACET_LENGTH -maxExclusive,FACET_MAXEXCLUSIVE -maxInclusive,FACET_MAXINCLUSIVE -maxLength,FACET_MAXLENGTH -minExclusive,FACET_MINEXCLUSIVE -minInclusive,FACET_MININCLUSIVE -minLength,FACET_MINLENGTH -pattern,FACET_PATTERN -period,FACET_PERIOD -precision,FACET_PRECISION -scale,FACET_SCALE -whiteSpace,FACET_WHITESPACE diff --git a/ATL90/source/SProxy/makefile b/ATL90/source/SProxy/makefile deleted file mode 100644 index 33b9ac1..0000000 --- a/ATL90/source/SProxy/makefile +++ /dev/null @@ -1,7 +0,0 @@ -# -# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source -# file to this component. This file merely indirects to the real make file -# that is shared by all the components of Visual Studio. -# -!INCLUDE $(NTMAKEENV)\devdiv.def -!INCLUDE makefile.inc diff --git a/ATL90/source/SProxy/makefile.inc b/ATL90/source/SProxy/makefile.inc deleted file mode 100644 index ff55237..0000000 --- a/ATL90/source/SProxy/makefile.inc +++ /dev/null @@ -1,38 +0,0 @@ -!IF 0 - -Copyright (c) 1990-2003 Microsoft Corporation - -Module Name: - - makefile.inc. - -Abstract: - - This file specifies build commands for the component in each phase. - -!ENDIF - -!include $(VCBASE)\makefile.inc -!include $(VCBASE)\vc7libs\makefile.inc - -!if defined(NO_AUTOMATIC_MANIFEST) && "$(NO_AUTOMATIC_MANIFEST)" != "0" -_LINK_=/manifest:no -!else -# enable manifest file generation and embedding. -_LINK_=$(_LINK_:/manifest:no=) -_LINK_=$(_LINK_:-manifest:no=) -!endif - -BOOT_PHASE SELF_PHASE: - -PROD_PHASE: - set _LINK_=$(_LINK_) - $(MAKE) /nologo /$(MAKEFLAGS) /f Sproxy.mak UNICODE=0 DEBUG=0 $(_ATLMFC_CLEAN) "SECURE_CRT_DEPRECATE=$(SECURE_CRT_DEPRECATE)" -!ifndef _ATLMFC_CLEAN - -if not exist $(BINPATH) mkdir $(BINPATH) - copy $(PLATFORM)\Release\sproxy.exe $(BINPATH) - copy $(PLATFORM)\Release\sproxy.pdb $(BINPATH) - -if not exist $(BINPATH)\1033 mkdir $(BINPATH)\1033 - copy $(PLATFORM)\Release\1033\sproxyUI.dll $(BINPATH)\1033 - -!endif diff --git a/ATL90/source/SProxy/msxml2.h b/ATL90/source/SProxy/msxml2.h deleted file mode 100644 index 3c2c2e7..0000000 --- a/ATL90/source/SProxy/msxml2.h +++ /dev/null @@ -1,21682 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 6.00.0340 */ -/* Compiler settings for msxml2.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 440 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __msxml2_h__ -#define __msxml2_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IXMLDOMImplementation_FWD_DEFINED__ -#define __IXMLDOMImplementation_FWD_DEFINED__ -typedef interface IXMLDOMImplementation IXMLDOMImplementation; -#endif /* __IXMLDOMImplementation_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNode_FWD_DEFINED__ -#define __IXMLDOMNode_FWD_DEFINED__ -typedef interface IXMLDOMNode IXMLDOMNode; -#endif /* __IXMLDOMNode_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__ -#define __IXMLDOMDocumentFragment_FWD_DEFINED__ -typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment; -#endif /* __IXMLDOMDocumentFragment_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocument_FWD_DEFINED__ -#define __IXMLDOMDocument_FWD_DEFINED__ -typedef interface IXMLDOMDocument IXMLDOMDocument; -#endif /* __IXMLDOMDocument_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMSchemaCollection_FWD_DEFINED__ -#define __IXMLDOMSchemaCollection_FWD_DEFINED__ -typedef interface IXMLDOMSchemaCollection IXMLDOMSchemaCollection; -#endif /* __IXMLDOMSchemaCollection_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocument2_FWD_DEFINED__ -#define __IXMLDOMDocument2_FWD_DEFINED__ -typedef interface IXMLDOMDocument2 IXMLDOMDocument2; -#endif /* __IXMLDOMDocument2_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNodeList_FWD_DEFINED__ -#define __IXMLDOMNodeList_FWD_DEFINED__ -typedef interface IXMLDOMNodeList IXMLDOMNodeList; -#endif /* __IXMLDOMNodeList_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__ -#define __IXMLDOMNamedNodeMap_FWD_DEFINED__ -typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap; -#endif /* __IXMLDOMNamedNodeMap_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMCharacterData_FWD_DEFINED__ -#define __IXMLDOMCharacterData_FWD_DEFINED__ -typedef interface IXMLDOMCharacterData IXMLDOMCharacterData; -#endif /* __IXMLDOMCharacterData_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMAttribute_FWD_DEFINED__ -#define __IXMLDOMAttribute_FWD_DEFINED__ -typedef interface IXMLDOMAttribute IXMLDOMAttribute; -#endif /* __IXMLDOMAttribute_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMElement_FWD_DEFINED__ -#define __IXMLDOMElement_FWD_DEFINED__ -typedef interface IXMLDOMElement IXMLDOMElement; -#endif /* __IXMLDOMElement_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMText_FWD_DEFINED__ -#define __IXMLDOMText_FWD_DEFINED__ -typedef interface IXMLDOMText IXMLDOMText; -#endif /* __IXMLDOMText_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMComment_FWD_DEFINED__ -#define __IXMLDOMComment_FWD_DEFINED__ -typedef interface IXMLDOMComment IXMLDOMComment; -#endif /* __IXMLDOMComment_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__ -#define __IXMLDOMProcessingInstruction_FWD_DEFINED__ -typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction; -#endif /* __IXMLDOMProcessingInstruction_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMCDATASection_FWD_DEFINED__ -#define __IXMLDOMCDATASection_FWD_DEFINED__ -typedef interface IXMLDOMCDATASection IXMLDOMCDATASection; -#endif /* __IXMLDOMCDATASection_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentType_FWD_DEFINED__ -#define __IXMLDOMDocumentType_FWD_DEFINED__ -typedef interface IXMLDOMDocumentType IXMLDOMDocumentType; -#endif /* __IXMLDOMDocumentType_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMNotation_FWD_DEFINED__ -#define __IXMLDOMNotation_FWD_DEFINED__ -typedef interface IXMLDOMNotation IXMLDOMNotation; -#endif /* __IXMLDOMNotation_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMEntity_FWD_DEFINED__ -#define __IXMLDOMEntity_FWD_DEFINED__ -typedef interface IXMLDOMEntity IXMLDOMEntity; -#endif /* __IXMLDOMEntity_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMEntityReference_FWD_DEFINED__ -#define __IXMLDOMEntityReference_FWD_DEFINED__ -typedef interface IXMLDOMEntityReference IXMLDOMEntityReference; -#endif /* __IXMLDOMEntityReference_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMParseError_FWD_DEFINED__ -#define __IXMLDOMParseError_FWD_DEFINED__ -typedef interface IXMLDOMParseError IXMLDOMParseError; -#endif /* __IXMLDOMParseError_FWD_DEFINED__ */ - - -#ifndef __IXTLRuntime_FWD_DEFINED__ -#define __IXTLRuntime_FWD_DEFINED__ -typedef interface IXTLRuntime IXTLRuntime; -#endif /* __IXTLRuntime_FWD_DEFINED__ */ - - -#ifndef __IXSLTemplate_FWD_DEFINED__ -#define __IXSLTemplate_FWD_DEFINED__ -typedef interface IXSLTemplate IXSLTemplate; -#endif /* __IXSLTemplate_FWD_DEFINED__ */ - - -#ifndef __IXSLProcessor_FWD_DEFINED__ -#define __IXSLProcessor_FWD_DEFINED__ -typedef interface IXSLProcessor IXSLProcessor; -#endif /* __IXSLProcessor_FWD_DEFINED__ */ - - -#ifndef __ISAXXMLReader_FWD_DEFINED__ -#define __ISAXXMLReader_FWD_DEFINED__ -typedef interface ISAXXMLReader ISAXXMLReader; -#endif /* __ISAXXMLReader_FWD_DEFINED__ */ - - -#ifndef __ISAXXMLFilter_FWD_DEFINED__ -#define __ISAXXMLFilter_FWD_DEFINED__ -typedef interface ISAXXMLFilter ISAXXMLFilter; -#endif /* __ISAXXMLFilter_FWD_DEFINED__ */ - - -#ifndef __ISAXLocator_FWD_DEFINED__ -#define __ISAXLocator_FWD_DEFINED__ -typedef interface ISAXLocator ISAXLocator; -#endif /* __ISAXLocator_FWD_DEFINED__ */ - - -#ifndef __ISAXEntityResolver_FWD_DEFINED__ -#define __ISAXEntityResolver_FWD_DEFINED__ -typedef interface ISAXEntityResolver ISAXEntityResolver; -#endif /* __ISAXEntityResolver_FWD_DEFINED__ */ - - -#ifndef __ISAXContentHandler_FWD_DEFINED__ -#define __ISAXContentHandler_FWD_DEFINED__ -typedef interface ISAXContentHandler ISAXContentHandler; -#endif /* __ISAXContentHandler_FWD_DEFINED__ */ - - -#ifndef __ISAXDTDHandler_FWD_DEFINED__ -#define __ISAXDTDHandler_FWD_DEFINED__ -typedef interface ISAXDTDHandler ISAXDTDHandler; -#endif /* __ISAXDTDHandler_FWD_DEFINED__ */ - - -#ifndef __ISAXErrorHandler_FWD_DEFINED__ -#define __ISAXErrorHandler_FWD_DEFINED__ -typedef interface ISAXErrorHandler ISAXErrorHandler; -#endif /* __ISAXErrorHandler_FWD_DEFINED__ */ - - -#ifndef __ISAXLexicalHandler_FWD_DEFINED__ -#define __ISAXLexicalHandler_FWD_DEFINED__ -typedef interface ISAXLexicalHandler ISAXLexicalHandler; -#endif /* __ISAXLexicalHandler_FWD_DEFINED__ */ - - -#ifndef __ISAXDeclHandler_FWD_DEFINED__ -#define __ISAXDeclHandler_FWD_DEFINED__ -typedef interface ISAXDeclHandler ISAXDeclHandler; -#endif /* __ISAXDeclHandler_FWD_DEFINED__ */ - - -#ifndef __ISAXAttributes_FWD_DEFINED__ -#define __ISAXAttributes_FWD_DEFINED__ -typedef interface ISAXAttributes ISAXAttributes; -#endif /* __ISAXAttributes_FWD_DEFINED__ */ - - -#ifndef __IVBSAXXMLReader_FWD_DEFINED__ -#define __IVBSAXXMLReader_FWD_DEFINED__ -typedef interface IVBSAXXMLReader IVBSAXXMLReader; -#endif /* __IVBSAXXMLReader_FWD_DEFINED__ */ - - -#ifndef __IVBSAXXMLFilter_FWD_DEFINED__ -#define __IVBSAXXMLFilter_FWD_DEFINED__ -typedef interface IVBSAXXMLFilter IVBSAXXMLFilter; -#endif /* __IVBSAXXMLFilter_FWD_DEFINED__ */ - - -#ifndef __IVBSAXLocator_FWD_DEFINED__ -#define __IVBSAXLocator_FWD_DEFINED__ -typedef interface IVBSAXLocator IVBSAXLocator; -#endif /* __IVBSAXLocator_FWD_DEFINED__ */ - - -#ifndef __IVBSAXEntityResolver_FWD_DEFINED__ -#define __IVBSAXEntityResolver_FWD_DEFINED__ -typedef interface IVBSAXEntityResolver IVBSAXEntityResolver; -#endif /* __IVBSAXEntityResolver_FWD_DEFINED__ */ - - -#ifndef __IVBSAXContentHandler_FWD_DEFINED__ -#define __IVBSAXContentHandler_FWD_DEFINED__ -typedef interface IVBSAXContentHandler IVBSAXContentHandler; -#endif /* __IVBSAXContentHandler_FWD_DEFINED__ */ - - -#ifndef __IVBSAXDTDHandler_FWD_DEFINED__ -#define __IVBSAXDTDHandler_FWD_DEFINED__ -typedef interface IVBSAXDTDHandler IVBSAXDTDHandler; -#endif /* __IVBSAXDTDHandler_FWD_DEFINED__ */ - - -#ifndef __IVBSAXErrorHandler_FWD_DEFINED__ -#define __IVBSAXErrorHandler_FWD_DEFINED__ -typedef interface IVBSAXErrorHandler IVBSAXErrorHandler; -#endif /* __IVBSAXErrorHandler_FWD_DEFINED__ */ - - -#ifndef __IVBSAXLexicalHandler_FWD_DEFINED__ -#define __IVBSAXLexicalHandler_FWD_DEFINED__ -typedef interface IVBSAXLexicalHandler IVBSAXLexicalHandler; -#endif /* __IVBSAXLexicalHandler_FWD_DEFINED__ */ - - -#ifndef __IVBSAXDeclHandler_FWD_DEFINED__ -#define __IVBSAXDeclHandler_FWD_DEFINED__ -typedef interface IVBSAXDeclHandler IVBSAXDeclHandler; -#endif /* __IVBSAXDeclHandler_FWD_DEFINED__ */ - - -#ifndef __IVBSAXAttributes_FWD_DEFINED__ -#define __IVBSAXAttributes_FWD_DEFINED__ -typedef interface IVBSAXAttributes IVBSAXAttributes; -#endif /* __IVBSAXAttributes_FWD_DEFINED__ */ - - -#ifndef __IMXWriter_FWD_DEFINED__ -#define __IMXWriter_FWD_DEFINED__ -typedef interface IMXWriter IMXWriter; -#endif /* __IMXWriter_FWD_DEFINED__ */ - - -#ifndef __IMXAttributes_FWD_DEFINED__ -#define __IMXAttributes_FWD_DEFINED__ -typedef interface IMXAttributes IMXAttributes; -#endif /* __IMXAttributes_FWD_DEFINED__ */ - - -#ifndef __IMXReaderControl_FWD_DEFINED__ -#define __IMXReaderControl_FWD_DEFINED__ -typedef interface IMXReaderControl IMXReaderControl; -#endif /* __IMXReaderControl_FWD_DEFINED__ */ - - -#ifndef __IXMLElementCollection_FWD_DEFINED__ -#define __IXMLElementCollection_FWD_DEFINED__ -typedef interface IXMLElementCollection IXMLElementCollection; -#endif /* __IXMLElementCollection_FWD_DEFINED__ */ - - -#ifndef __IXMLDocument_FWD_DEFINED__ -#define __IXMLDocument_FWD_DEFINED__ -typedef interface IXMLDocument IXMLDocument; -#endif /* __IXMLDocument_FWD_DEFINED__ */ - - -#ifndef __IXMLDocument2_FWD_DEFINED__ -#define __IXMLDocument2_FWD_DEFINED__ -typedef interface IXMLDocument2 IXMLDocument2; -#endif /* __IXMLDocument2_FWD_DEFINED__ */ - - -#ifndef __IXMLElement_FWD_DEFINED__ -#define __IXMLElement_FWD_DEFINED__ -typedef interface IXMLElement IXMLElement; -#endif /* __IXMLElement_FWD_DEFINED__ */ - - -#ifndef __IXMLElement2_FWD_DEFINED__ -#define __IXMLElement2_FWD_DEFINED__ -typedef interface IXMLElement2 IXMLElement2; -#endif /* __IXMLElement2_FWD_DEFINED__ */ - - -#ifndef __IXMLAttribute_FWD_DEFINED__ -#define __IXMLAttribute_FWD_DEFINED__ -typedef interface IXMLAttribute IXMLAttribute; -#endif /* __IXMLAttribute_FWD_DEFINED__ */ - - -#ifndef __IXMLError_FWD_DEFINED__ -#define __IXMLError_FWD_DEFINED__ -typedef interface IXMLError IXMLError; -#endif /* __IXMLError_FWD_DEFINED__ */ - - -#ifndef __IXMLDOMSelection_FWD_DEFINED__ -#define __IXMLDOMSelection_FWD_DEFINED__ -typedef interface IXMLDOMSelection IXMLDOMSelection; -#endif /* __IXMLDOMSelection_FWD_DEFINED__ */ - - -#ifndef __XMLDOMDocumentEvents_FWD_DEFINED__ -#define __XMLDOMDocumentEvents_FWD_DEFINED__ -typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents; -#endif /* __XMLDOMDocumentEvents_FWD_DEFINED__ */ - - -#ifndef __IDSOControl_FWD_DEFINED__ -#define __IDSOControl_FWD_DEFINED__ -typedef interface IDSOControl IDSOControl; -#endif /* __IDSOControl_FWD_DEFINED__ */ - - -#ifndef __IXMLHTTPRequest_FWD_DEFINED__ -#define __IXMLHTTPRequest_FWD_DEFINED__ -typedef interface IXMLHTTPRequest IXMLHTTPRequest; -#endif /* __IXMLHTTPRequest_FWD_DEFINED__ */ - - -#ifndef __IServerXMLHTTPRequest_FWD_DEFINED__ -#define __IServerXMLHTTPRequest_FWD_DEFINED__ -typedef interface IServerXMLHTTPRequest IServerXMLHTTPRequest; -#endif /* __IServerXMLHTTPRequest_FWD_DEFINED__ */ - - -#ifndef __DOMDocument_FWD_DEFINED__ -#define __DOMDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DOMDocument DOMDocument; -#else -typedef struct DOMDocument DOMDocument; -#endif /* __cplusplus */ - -#endif /* __DOMDocument_FWD_DEFINED__ */ - - -#ifndef __DOMDocument26_FWD_DEFINED__ -#define __DOMDocument26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DOMDocument26 DOMDocument26; -#else -typedef struct DOMDocument26 DOMDocument26; -#endif /* __cplusplus */ - -#endif /* __DOMDocument26_FWD_DEFINED__ */ - - -#ifndef __DOMDocument30_FWD_DEFINED__ -#define __DOMDocument30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DOMDocument30 DOMDocument30; -#else -typedef struct DOMDocument30 DOMDocument30; -#endif /* __cplusplus */ - -#endif /* __DOMDocument30_FWD_DEFINED__ */ - - -#ifndef __FreeThreadedDOMDocument_FWD_DEFINED__ -#define __FreeThreadedDOMDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FreeThreadedDOMDocument FreeThreadedDOMDocument; -#else -typedef struct FreeThreadedDOMDocument FreeThreadedDOMDocument; -#endif /* __cplusplus */ - -#endif /* __FreeThreadedDOMDocument_FWD_DEFINED__ */ - - -#ifndef __FreeThreadedDOMDocument26_FWD_DEFINED__ -#define __FreeThreadedDOMDocument26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FreeThreadedDOMDocument26 FreeThreadedDOMDocument26; -#else -typedef struct FreeThreadedDOMDocument26 FreeThreadedDOMDocument26; -#endif /* __cplusplus */ - -#endif /* __FreeThreadedDOMDocument26_FWD_DEFINED__ */ - - -#ifndef __FreeThreadedDOMDocument30_FWD_DEFINED__ -#define __FreeThreadedDOMDocument30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FreeThreadedDOMDocument30 FreeThreadedDOMDocument30; -#else -typedef struct FreeThreadedDOMDocument30 FreeThreadedDOMDocument30; -#endif /* __cplusplus */ - -#endif /* __FreeThreadedDOMDocument30_FWD_DEFINED__ */ - - -#ifndef __XMLSchemaCache_FWD_DEFINED__ -#define __XMLSchemaCache_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLSchemaCache XMLSchemaCache; -#else -typedef struct XMLSchemaCache XMLSchemaCache; -#endif /* __cplusplus */ - -#endif /* __XMLSchemaCache_FWD_DEFINED__ */ - - -#ifndef __XMLSchemaCache26_FWD_DEFINED__ -#define __XMLSchemaCache26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLSchemaCache26 XMLSchemaCache26; -#else -typedef struct XMLSchemaCache26 XMLSchemaCache26; -#endif /* __cplusplus */ - -#endif /* __XMLSchemaCache26_FWD_DEFINED__ */ - - -#ifndef __XMLSchemaCache30_FWD_DEFINED__ -#define __XMLSchemaCache30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLSchemaCache30 XMLSchemaCache30; -#else -typedef struct XMLSchemaCache30 XMLSchemaCache30; -#endif /* __cplusplus */ - -#endif /* __XMLSchemaCache30_FWD_DEFINED__ */ - - -#ifndef __XSLTemplate_FWD_DEFINED__ -#define __XSLTemplate_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XSLTemplate XSLTemplate; -#else -typedef struct XSLTemplate XSLTemplate; -#endif /* __cplusplus */ - -#endif /* __XSLTemplate_FWD_DEFINED__ */ - - -#ifndef __XSLTemplate26_FWD_DEFINED__ -#define __XSLTemplate26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XSLTemplate26 XSLTemplate26; -#else -typedef struct XSLTemplate26 XSLTemplate26; -#endif /* __cplusplus */ - -#endif /* __XSLTemplate26_FWD_DEFINED__ */ - - -#ifndef __XSLTemplate30_FWD_DEFINED__ -#define __XSLTemplate30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XSLTemplate30 XSLTemplate30; -#else -typedef struct XSLTemplate30 XSLTemplate30; -#endif /* __cplusplus */ - -#endif /* __XSLTemplate30_FWD_DEFINED__ */ - - -#ifndef __DSOControl_FWD_DEFINED__ -#define __DSOControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DSOControl DSOControl; -#else -typedef struct DSOControl DSOControl; -#endif /* __cplusplus */ - -#endif /* __DSOControl_FWD_DEFINED__ */ - - -#ifndef __DSOControl26_FWD_DEFINED__ -#define __DSOControl26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DSOControl26 DSOControl26; -#else -typedef struct DSOControl26 DSOControl26; -#endif /* __cplusplus */ - -#endif /* __DSOControl26_FWD_DEFINED__ */ - - -#ifndef __DSOControl30_FWD_DEFINED__ -#define __DSOControl30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class DSOControl30 DSOControl30; -#else -typedef struct DSOControl30 DSOControl30; -#endif /* __cplusplus */ - -#endif /* __DSOControl30_FWD_DEFINED__ */ - - -#ifndef __XMLHTTP_FWD_DEFINED__ -#define __XMLHTTP_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLHTTP XMLHTTP; -#else -typedef struct XMLHTTP XMLHTTP; -#endif /* __cplusplus */ - -#endif /* __XMLHTTP_FWD_DEFINED__ */ - - -#ifndef __XMLHTTP26_FWD_DEFINED__ -#define __XMLHTTP26_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLHTTP26 XMLHTTP26; -#else -typedef struct XMLHTTP26 XMLHTTP26; -#endif /* __cplusplus */ - -#endif /* __XMLHTTP26_FWD_DEFINED__ */ - - -#ifndef __XMLHTTP30_FWD_DEFINED__ -#define __XMLHTTP30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLHTTP30 XMLHTTP30; -#else -typedef struct XMLHTTP30 XMLHTTP30; -#endif /* __cplusplus */ - -#endif /* __XMLHTTP30_FWD_DEFINED__ */ - - -#ifndef __ServerXMLHTTP_FWD_DEFINED__ -#define __ServerXMLHTTP_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ServerXMLHTTP ServerXMLHTTP; -#else -typedef struct ServerXMLHTTP ServerXMLHTTP; -#endif /* __cplusplus */ - -#endif /* __ServerXMLHTTP_FWD_DEFINED__ */ - - -#ifndef __ServerXMLHTTP30_FWD_DEFINED__ -#define __ServerXMLHTTP30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ServerXMLHTTP30 ServerXMLHTTP30; -#else -typedef struct ServerXMLHTTP30 ServerXMLHTTP30; -#endif /* __cplusplus */ - -#endif /* __ServerXMLHTTP30_FWD_DEFINED__ */ - - -#ifndef __SAXXMLReader_FWD_DEFINED__ -#define __SAXXMLReader_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class SAXXMLReader SAXXMLReader; -#else -typedef struct SAXXMLReader SAXXMLReader; -#endif /* __cplusplus */ - -#endif /* __SAXXMLReader_FWD_DEFINED__ */ - - -#ifndef __SAXXMLReader30_FWD_DEFINED__ -#define __SAXXMLReader30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class SAXXMLReader30 SAXXMLReader30; -#else -typedef struct SAXXMLReader30 SAXXMLReader30; -#endif /* __cplusplus */ - -#endif /* __SAXXMLReader30_FWD_DEFINED__ */ - - -#ifndef __MXXMLWriter_FWD_DEFINED__ -#define __MXXMLWriter_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MXXMLWriter MXXMLWriter; -#else -typedef struct MXXMLWriter MXXMLWriter; -#endif /* __cplusplus */ - -#endif /* __MXXMLWriter_FWD_DEFINED__ */ - - -#ifndef __MXXMLWriter30_FWD_DEFINED__ -#define __MXXMLWriter30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class MXXMLWriter30 MXXMLWriter30; -#else -typedef struct MXXMLWriter30 MXXMLWriter30; -#endif /* __cplusplus */ - -#endif /* __MXXMLWriter30_FWD_DEFINED__ */ - - -#ifndef __SAXAttributes_FWD_DEFINED__ -#define __SAXAttributes_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class SAXAttributes SAXAttributes; -#else -typedef struct SAXAttributes SAXAttributes; -#endif /* __cplusplus */ - -#endif /* __SAXAttributes_FWD_DEFINED__ */ - - -#ifndef __SAXAttributes30_FWD_DEFINED__ -#define __SAXAttributes30_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class SAXAttributes30 SAXAttributes30; -#else -typedef struct SAXAttributes30 SAXAttributes30; -#endif /* __cplusplus */ - -#endif /* __SAXAttributes30_FWD_DEFINED__ */ - - -#ifndef __XMLDocument_FWD_DEFINED__ -#define __XMLDocument_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class XMLDocument XMLDocument; -#else -typedef struct XMLDocument XMLDocument; -#endif /* __cplusplus */ - -#endif /* __XMLDocument_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" -#include "objidl.h" -#include "oaidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void * ); - -/* interface __MIDL_itf_msxml2_0000 */ -/* [local] */ - -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation, 1997-1998. -// -//-------------------------------------------------------------------------- -#define DOMDocument DOMDocument2 -#define CLSID_DOMDocument CLSID_DOMDocument2 - -#ifdef __USE_MSXML2_NAMESPACE__ -namespace MSXML2 { -#endif -#ifndef __msxml_h__ -typedef struct _xml_error - { - unsigned int _nLine; - BSTR _pchBuf; - unsigned int _cchBuf; - unsigned int _ich; - BSTR _pszFound; - BSTR _pszExpected; - DWORD _reserved1; - DWORD _reserved2; - } XML_ERROR; - -#endif -#ifndef __ISAXXMLReader_INTERFACE_DEFINED__ -#undef __MSXML2_LIBRARY_DEFINED__ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_msxml2_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_msxml2_0000_v0_0_s_ifspec; - - -#ifndef __MSXML2_LIBRARY_DEFINED__ -#define __MSXML2_LIBRARY_DEFINED__ - -/* library MSXML2 */ -/* [lcid][helpstring][version][uuid] */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#undef ParseURL -#if !defined(__msxml_h__) -typedef /* [helpstring] */ -enum tagXMLEMEM_TYPE - { XMLELEMTYPE_ELEMENT = 0, - XMLELEMTYPE_TEXT = XMLELEMTYPE_ELEMENT + 1, - XMLELEMTYPE_COMMENT = XMLELEMTYPE_TEXT + 1, - XMLELEMTYPE_DOCUMENT = XMLELEMTYPE_COMMENT + 1, - XMLELEMTYPE_DTD = XMLELEMTYPE_DOCUMENT + 1, - XMLELEMTYPE_PI = XMLELEMTYPE_DTD + 1, - XMLELEMTYPE_OTHER = XMLELEMTYPE_PI + 1 - } XMLELEM_TYPE; - -#endif -#if !defined(__msxml_h__) || defined(__IXMLElementNotificationSink_INTERFACE_DEFINED__) -typedef /* [helpstring] */ -enum tagDOMNodeType - { NODE_INVALID = 0, - NODE_ELEMENT = NODE_INVALID + 1, - NODE_ATTRIBUTE = NODE_ELEMENT + 1, - NODE_TEXT = NODE_ATTRIBUTE + 1, - NODE_CDATA_SECTION = NODE_TEXT + 1, - NODE_ENTITY_REFERENCE = NODE_CDATA_SECTION + 1, - NODE_ENTITY = NODE_ENTITY_REFERENCE + 1, - NODE_PROCESSING_INSTRUCTION = NODE_ENTITY + 1, - NODE_COMMENT = NODE_PROCESSING_INSTRUCTION + 1, - NODE_DOCUMENT = NODE_COMMENT + 1, - NODE_DOCUMENT_TYPE = NODE_DOCUMENT + 1, - NODE_DOCUMENT_FRAGMENT = NODE_DOCUMENT_TYPE + 1, - NODE_NOTATION = NODE_DOCUMENT_FRAGMENT + 1 - } DOMNodeType; - -#endif -typedef /* [helpstring] */ -enum _SERVERXMLHTTP_OPTION - { SXH_OPTION_URL_CODEPAGE = 0, - SXH_OPTION_ESCAPE_PERCENT_IN_URL = SXH_OPTION_URL_CODEPAGE + 1 - } SERVERXMLHTTP_OPTION; - - -EXTERN_C const IID LIBID_MSXML2; - -#ifndef __IXMLDOMImplementation_INTERFACE_DEFINED__ -#define __IXMLDOMImplementation_INTERFACE_DEFINED__ - -/* interface IXMLDOMImplementation */ -/* [uuid][dual][oleautomation][unique][nonextensible][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMImplementation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8F-7B36-11d2-B20E-00C04F983E60") - IXMLDOMImplementation : public IDispatch - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE hasFeature( - /* [in] */ BSTR feature, - /* [in] */ BSTR version, - /* [retval][out] */ VARIANT_BOOL *hasFeature) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMImplementationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMImplementation * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMImplementation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMImplementation * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMImplementation * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMImplementation * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMImplementation * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMImplementation * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *hasFeature )( - IXMLDOMImplementation * This, - /* [in] */ BSTR feature, - /* [in] */ BSTR version, - /* [retval][out] */ VARIANT_BOOL *hasFeature); - - END_INTERFACE - } IXMLDOMImplementationVtbl; - - interface IXMLDOMImplementation - { - CONST_VTBL struct IXMLDOMImplementationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMImplementation_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMImplementation_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMImplementation_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMImplementation_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMImplementation_hasFeature(This,feature,version,hasFeature) \ - (This)->lpVtbl -> hasFeature(This,feature,version,hasFeature) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IXMLDOMImplementation_hasFeature_Proxy( - IXMLDOMImplementation * This, - /* [in] */ BSTR feature, - /* [in] */ BSTR version, - /* [retval][out] */ VARIANT_BOOL *hasFeature); - - -void __RPC_STUB IXMLDOMImplementation_hasFeature_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMImplementation_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNode_INTERFACE_DEFINED__ -#define __IXMLDOMNode_INTERFACE_DEFINED__ - -/* interface IXMLDOMNode */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNode; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF80-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNode : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeName( - /* [retval][out] */ BSTR *name) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeValue( - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_nodeValue( - /* [in] */ VARIANT value) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeType( - /* [retval][out] */ DOMNodeType *type) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parentNode( - /* [retval][out] */ IXMLDOMNode **parent) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_childNodes( - /* [retval][out] */ IXMLDOMNodeList **childList) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_firstChild( - /* [retval][out] */ IXMLDOMNode **firstChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_lastChild( - /* [retval][out] */ IXMLDOMNode **lastChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_previousSibling( - /* [retval][out] */ IXMLDOMNode **previousSibling) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nextSibling( - /* [retval][out] */ IXMLDOMNode **nextSibling) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes( - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE insertBefore( - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE replaceChild( - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE appendChild( - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE hasChildNodes( - /* [retval][out] */ VARIANT_BOOL *hasChild) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ownerDocument( - /* [retval][out] */ IXMLDOMDocument **DOMDocument) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE cloneNode( - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeTypeString( - /* [out][retval] */ BSTR *nodeType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *text) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR text) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_specified( - /* [retval][out] */ VARIANT_BOOL *isSpecified) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_definition( - /* [out][retval] */ IXMLDOMNode **definitionNode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeTypedValue( - /* [out][retval] */ VARIANT *typedValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_nodeTypedValue( - /* [in] */ VARIANT typedValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_dataType( - /* [out][retval] */ VARIANT *dataTypeName) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_dataType( - /* [in] */ BSTR dataTypeName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_xml( - /* [out][retval] */ BSTR *xmlString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE transformNode( - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE selectNodes( - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE selectSingleNode( - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parsed( - /* [out][retval] */ VARIANT_BOOL *isParsed) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_namespaceURI( - /* [out][retval] */ BSTR *namespaceURI) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_prefix( - /* [out][retval] */ BSTR *prefixString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_baseName( - /* [out][retval] */ BSTR *nameString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE transformNodeToObject( - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMNodeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNode * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNode * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNode * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNode * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNode * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMNode * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMNode * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMNode * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMNode * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMNode * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMNode * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMNode * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMNode * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMNode * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMNodeVtbl; - - interface IXMLDOMNode - { - CONST_VTBL struct IXMLDOMNodeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNode_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMNode_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMNode_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMNode_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMNode_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMNode_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMNode_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMNode_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMNode_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMNode_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMNode_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMNode_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMNode_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMNode_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMNode_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMNode_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMNode_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMNode_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMNode_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMNode_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMNode_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMNode_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMNode_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMNode_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMNode_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMNode_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMNode_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMNode_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMNode_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMNode_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMNode_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMNode_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMNode_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMNode_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMNode_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMNode_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMNode_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMNode_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMNode_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMNode_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMNode_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMNode_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMNode_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeName_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ BSTR *name); - - -void __RPC_STUB IXMLDOMNode_get_nodeName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeValue_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT *value); - - -void __RPC_STUB IXMLDOMNode_get_nodeValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_nodeValue_Proxy( - IXMLDOMNode * This, - /* [in] */ VARIANT value); - - -void __RPC_STUB IXMLDOMNode_put_nodeValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeType_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ DOMNodeType *type); - - -void __RPC_STUB IXMLDOMNode_get_nodeType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_parentNode_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **parent); - - -void __RPC_STUB IXMLDOMNode_get_parentNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_childNodes_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - -void __RPC_STUB IXMLDOMNode_get_childNodes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_firstChild_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - -void __RPC_STUB IXMLDOMNode_get_firstChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_lastChild_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - -void __RPC_STUB IXMLDOMNode_get_lastChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_previousSibling_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - -void __RPC_STUB IXMLDOMNode_get_previousSibling_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nextSibling_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - -void __RPC_STUB IXMLDOMNode_get_nextSibling_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_attributes_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - -void __RPC_STUB IXMLDOMNode_get_attributes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_insertBefore_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - -void __RPC_STUB IXMLDOMNode_insertBefore_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_replaceChild_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - -void __RPC_STUB IXMLDOMNode_replaceChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_removeChild_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - -void __RPC_STUB IXMLDOMNode_removeChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_appendChild_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - -void __RPC_STUB IXMLDOMNode_appendChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_hasChildNodes_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - -void __RPC_STUB IXMLDOMNode_hasChildNodes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_ownerDocument_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - -void __RPC_STUB IXMLDOMNode_get_ownerDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_cloneNode_Proxy( - IXMLDOMNode * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - -void __RPC_STUB IXMLDOMNode_cloneNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeTypeString_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nodeType); - - -void __RPC_STUB IXMLDOMNode_get_nodeTypeString_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_text_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *text); - - -void __RPC_STUB IXMLDOMNode_get_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_text_Proxy( - IXMLDOMNode * This, - /* [in] */ BSTR text); - - -void __RPC_STUB IXMLDOMNode_put_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_specified_Proxy( - IXMLDOMNode * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - -void __RPC_STUB IXMLDOMNode_get_specified_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_definition_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - -void __RPC_STUB IXMLDOMNode_get_definition_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeTypedValue_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *typedValue); - - -void __RPC_STUB IXMLDOMNode_get_nodeTypedValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_nodeTypedValue_Proxy( - IXMLDOMNode * This, - /* [in] */ VARIANT typedValue); - - -void __RPC_STUB IXMLDOMNode_put_nodeTypedValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_dataType_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT *dataTypeName); - - -void __RPC_STUB IXMLDOMNode_get_dataType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_dataType_Proxy( - IXMLDOMNode * This, - /* [in] */ BSTR dataTypeName); - - -void __RPC_STUB IXMLDOMNode_put_dataType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_xml_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *xmlString); - - -void __RPC_STUB IXMLDOMNode_get_xml_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNode_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - -void __RPC_STUB IXMLDOMNode_transformNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectNodes_Proxy( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - -void __RPC_STUB IXMLDOMNode_selectNodes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectSingleNode_Proxy( - IXMLDOMNode * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - -void __RPC_STUB IXMLDOMNode_selectSingleNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_parsed_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - -void __RPC_STUB IXMLDOMNode_get_parsed_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_namespaceURI_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *namespaceURI); - - -void __RPC_STUB IXMLDOMNode_get_namespaceURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_prefix_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *prefixString); - - -void __RPC_STUB IXMLDOMNode_get_prefix_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_baseName_Proxy( - IXMLDOMNode * This, - /* [out][retval] */ BSTR *nameString); - - -void __RPC_STUB IXMLDOMNode_get_baseName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNodeToObject_Proxy( - IXMLDOMNode * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - -void __RPC_STUB IXMLDOMNode_transformNodeToObject_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMNode_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ -#define __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocumentFragment */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocumentFragment; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa413-272f-11d2-836f-0000f87a7782") - IXMLDOMDocumentFragment : public IXMLDOMNode - { - public: - }; - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentFragmentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocumentFragment * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocumentFragment * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocumentFragment * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocumentFragment * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocumentFragment * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocumentFragment * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMDocumentFragment * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocumentFragment * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocumentFragment * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocumentFragment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocumentFragment * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocumentFragment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMDocumentFragmentVtbl; - - interface IXMLDOMDocumentFragment - { - CONST_VTBL struct IXMLDOMDocumentFragmentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocumentFragment_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMDocumentFragment_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMDocumentFragment_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMDocumentFragment_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMDocumentFragment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMDocumentFragment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMDocumentFragment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMDocumentFragment_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMDocumentFragment_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMDocumentFragment_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMDocumentFragment_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMDocumentFragment_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMDocumentFragment_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMDocumentFragment_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMDocumentFragment_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMDocumentFragment_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMDocumentFragment_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMDocumentFragment_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMDocumentFragment_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMDocumentFragment_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMDocumentFragment_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMDocumentFragment_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMDocumentFragment_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMDocumentFragment_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMDocumentFragment_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMDocumentFragment_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMDocumentFragment_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMDocumentFragment_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMDocumentFragment_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMDocumentFragment_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMDocumentFragment_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocumentFragment_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocumentFragment_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMDocumentFragment_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMDocumentFragment_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMDocumentFragment_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMDocumentFragment_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMDocumentFragment_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMDocumentFragment_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMDocumentFragment_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMDocumentFragment_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMDocumentFragment_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMDocumentFragment_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocument_INTERFACE_DEFINED__ -#define __IXMLDOMDocument_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocument */ -/* [hidden][unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocument; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF81-7B36-11d2-B20E-00C04F983E60") - IXMLDOMDocument : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [retval][out] */ IXMLDOMDocumentType **documentType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_implementation( - /* [retval][out] */ IXMLDOMImplementation **impl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_documentElement( - /* [retval][out] */ IXMLDOMElement **DOMElement) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_documentElement( - /* [in] */ IXMLDOMElement *DOMElement) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createDocumentFragment( - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createTextNode( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createComment( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createCDATASection( - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createProcessingInstruction( - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createAttribute( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createEntityReference( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getElementsByTagName( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createNode( - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nodeFromID( - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE load( - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *value) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parseError( - /* [out][retval] */ IXMLDOMParseError **errorObj) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_url( - /* [out][retval] */ BSTR *urlString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_async( - /* [out][retval] */ VARIANT_BOOL *isAsync) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_async( - /* [in] */ VARIANT_BOOL isAsync) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE abort( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE loadXML( - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE save( - /* [in] */ VARIANT destination) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_validateOnParse( - /* [out][retval] */ VARIANT_BOOL *isValidating) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_validateOnParse( - /* [in] */ VARIANT_BOOL isValidating) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_resolveExternals( - /* [out][retval] */ VARIANT_BOOL *isResolving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_resolveExternals( - /* [in] */ VARIANT_BOOL isResolving) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_preserveWhiteSpace( - /* [out][retval] */ VARIANT_BOOL *isPreserving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace( - /* [in] */ VARIANT_BOOL isPreserving) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_onreadystatechange( - /* [in] */ VARIANT readystatechangeSink) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ondataavailable( - /* [in] */ VARIANT ondataavailableSink) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ontransformnode( - /* [in] */ VARIANT ontransformnodeSink) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocument * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocument * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocument * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocument * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocument * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocument * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMDocument * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocument * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocument * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocument * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocument * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocument * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocument * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocument * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocument * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocument * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocument * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentType **documentType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_implementation )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMImplementation **impl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_documentElement )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMElement **DOMElement); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_documentElement )( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMElement *DOMElement); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createDocumentFragment )( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createTextNode )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createComment )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createCDATASection )( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createProcessingInstruction )( - IXMLDOMDocument * This, - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createAttribute )( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createEntityReference )( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getElementsByTagName )( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createNode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nodeFromID )( - IXMLDOMDocument * This, - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *load )( - IXMLDOMDocument * This, - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDOMDocument * This, - /* [out][retval] */ long *value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parseError )( - IXMLDOMDocument * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_url )( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *urlString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_async )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isAsync); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_async )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isAsync); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IXMLDOMDocument * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *loadXML )( - IXMLDOMDocument * This, - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *save )( - IXMLDOMDocument * This, - /* [in] */ VARIANT destination); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_validateOnParse )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isValidating); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_validateOnParse )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isValidating); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_resolveExternals )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isResolving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_resolveExternals )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isResolving); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_preserveWhiteSpace )( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_preserveWhiteSpace )( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - IXMLDOMDocument * This, - /* [in] */ VARIANT readystatechangeSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ondataavailable )( - IXMLDOMDocument * This, - /* [in] */ VARIANT ondataavailableSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ontransformnode )( - IXMLDOMDocument * This, - /* [in] */ VARIANT ontransformnodeSink); - - END_INTERFACE - } IXMLDOMDocumentVtbl; - - interface IXMLDOMDocument - { - CONST_VTBL struct IXMLDOMDocumentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocument_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMDocument_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMDocument_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMDocument_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMDocument_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMDocument_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMDocument_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMDocument_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMDocument_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMDocument_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMDocument_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMDocument_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMDocument_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMDocument_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMDocument_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMDocument_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMDocument_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMDocument_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMDocument_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMDocument_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMDocument_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMDocument_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMDocument_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMDocument_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMDocument_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMDocument_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMDocument_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMDocument_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocument_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocument_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMDocument_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMDocument_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMDocument_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMDocument_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMDocument_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMDocument_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMDocument_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMDocument_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMDocument_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMDocument_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMDocument_get_doctype(This,documentType) \ - (This)->lpVtbl -> get_doctype(This,documentType) - -#define IXMLDOMDocument_get_implementation(This,impl) \ - (This)->lpVtbl -> get_implementation(This,impl) - -#define IXMLDOMDocument_get_documentElement(This,DOMElement) \ - (This)->lpVtbl -> get_documentElement(This,DOMElement) - -#define IXMLDOMDocument_putref_documentElement(This,DOMElement) \ - (This)->lpVtbl -> putref_documentElement(This,DOMElement) - -#define IXMLDOMDocument_createElement(This,tagName,element) \ - (This)->lpVtbl -> createElement(This,tagName,element) - -#define IXMLDOMDocument_createDocumentFragment(This,docFrag) \ - (This)->lpVtbl -> createDocumentFragment(This,docFrag) - -#define IXMLDOMDocument_createTextNode(This,data,text) \ - (This)->lpVtbl -> createTextNode(This,data,text) - -#define IXMLDOMDocument_createComment(This,data,comment) \ - (This)->lpVtbl -> createComment(This,data,comment) - -#define IXMLDOMDocument_createCDATASection(This,data,cdata) \ - (This)->lpVtbl -> createCDATASection(This,data,cdata) - -#define IXMLDOMDocument_createProcessingInstruction(This,target,data,pi) \ - (This)->lpVtbl -> createProcessingInstruction(This,target,data,pi) - -#define IXMLDOMDocument_createAttribute(This,name,attribute) \ - (This)->lpVtbl -> createAttribute(This,name,attribute) - -#define IXMLDOMDocument_createEntityReference(This,name,entityRef) \ - (This)->lpVtbl -> createEntityReference(This,name,entityRef) - -#define IXMLDOMDocument_getElementsByTagName(This,tagName,resultList) \ - (This)->lpVtbl -> getElementsByTagName(This,tagName,resultList) - -#define IXMLDOMDocument_createNode(This,Type,name,namespaceURI,node) \ - (This)->lpVtbl -> createNode(This,Type,name,namespaceURI,node) - -#define IXMLDOMDocument_nodeFromID(This,idString,node) \ - (This)->lpVtbl -> nodeFromID(This,idString,node) - -#define IXMLDOMDocument_load(This,xmlSource,isSuccessful) \ - (This)->lpVtbl -> load(This,xmlSource,isSuccessful) - -#define IXMLDOMDocument_get_readyState(This,value) \ - (This)->lpVtbl -> get_readyState(This,value) - -#define IXMLDOMDocument_get_parseError(This,errorObj) \ - (This)->lpVtbl -> get_parseError(This,errorObj) - -#define IXMLDOMDocument_get_url(This,urlString) \ - (This)->lpVtbl -> get_url(This,urlString) - -#define IXMLDOMDocument_get_async(This,isAsync) \ - (This)->lpVtbl -> get_async(This,isAsync) - -#define IXMLDOMDocument_put_async(This,isAsync) \ - (This)->lpVtbl -> put_async(This,isAsync) - -#define IXMLDOMDocument_abort(This) \ - (This)->lpVtbl -> abort(This) - -#define IXMLDOMDocument_loadXML(This,bstrXML,isSuccessful) \ - (This)->lpVtbl -> loadXML(This,bstrXML,isSuccessful) - -#define IXMLDOMDocument_save(This,destination) \ - (This)->lpVtbl -> save(This,destination) - -#define IXMLDOMDocument_get_validateOnParse(This,isValidating) \ - (This)->lpVtbl -> get_validateOnParse(This,isValidating) - -#define IXMLDOMDocument_put_validateOnParse(This,isValidating) \ - (This)->lpVtbl -> put_validateOnParse(This,isValidating) - -#define IXMLDOMDocument_get_resolveExternals(This,isResolving) \ - (This)->lpVtbl -> get_resolveExternals(This,isResolving) - -#define IXMLDOMDocument_put_resolveExternals(This,isResolving) \ - (This)->lpVtbl -> put_resolveExternals(This,isResolving) - -#define IXMLDOMDocument_get_preserveWhiteSpace(This,isPreserving) \ - (This)->lpVtbl -> get_preserveWhiteSpace(This,isPreserving) - -#define IXMLDOMDocument_put_preserveWhiteSpace(This,isPreserving) \ - (This)->lpVtbl -> put_preserveWhiteSpace(This,isPreserving) - -#define IXMLDOMDocument_put_onreadystatechange(This,readystatechangeSink) \ - (This)->lpVtbl -> put_onreadystatechange(This,readystatechangeSink) - -#define IXMLDOMDocument_put_ondataavailable(This,ondataavailableSink) \ - (This)->lpVtbl -> put_ondataavailable(This,ondataavailableSink) - -#define IXMLDOMDocument_put_ontransformnode(This,ontransformnodeSink) \ - (This)->lpVtbl -> put_ontransformnode(This,ontransformnodeSink) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_doctype_Proxy( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentType **documentType); - - -void __RPC_STUB IXMLDOMDocument_get_doctype_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_implementation_Proxy( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMImplementation **impl); - - -void __RPC_STUB IXMLDOMDocument_get_implementation_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_documentElement_Proxy( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMElement **DOMElement); - - -void __RPC_STUB IXMLDOMDocument_get_documentElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_putref_documentElement_Proxy( - IXMLDOMDocument * This, - /* [in] */ IXMLDOMElement *DOMElement); - - -void __RPC_STUB IXMLDOMDocument_putref_documentElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createElement_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element); - - -void __RPC_STUB IXMLDOMDocument_createElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createDocumentFragment_Proxy( - IXMLDOMDocument * This, - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag); - - -void __RPC_STUB IXMLDOMDocument_createDocumentFragment_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createTextNode_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text); - - -void __RPC_STUB IXMLDOMDocument_createTextNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createComment_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment); - - -void __RPC_STUB IXMLDOMDocument_createComment_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createCDATASection_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata); - - -void __RPC_STUB IXMLDOMDocument_createCDATASection_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createProcessingInstruction_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi); - - -void __RPC_STUB IXMLDOMDocument_createProcessingInstruction_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createAttribute_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute); - - -void __RPC_STUB IXMLDOMDocument_createAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createEntityReference_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef); - - -void __RPC_STUB IXMLDOMDocument_createEntityReference_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_getElementsByTagName_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - -void __RPC_STUB IXMLDOMDocument_getElementsByTagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createNode_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node); - - -void __RPC_STUB IXMLDOMDocument_createNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_nodeFromID_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node); - - -void __RPC_STUB IXMLDOMDocument_nodeFromID_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_load_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - -void __RPC_STUB IXMLDOMDocument_load_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_readyState_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ long *value); - - -void __RPC_STUB IXMLDOMDocument_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_parseError_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - -void __RPC_STUB IXMLDOMDocument_get_parseError_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_url_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ BSTR *urlString); - - -void __RPC_STUB IXMLDOMDocument_get_url_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_async_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isAsync); - - -void __RPC_STUB IXMLDOMDocument_get_async_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_async_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isAsync); - - -void __RPC_STUB IXMLDOMDocument_put_async_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_abort_Proxy( - IXMLDOMDocument * This); - - -void __RPC_STUB IXMLDOMDocument_abort_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_loadXML_Proxy( - IXMLDOMDocument * This, - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - -void __RPC_STUB IXMLDOMDocument_loadXML_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_save_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT destination); - - -void __RPC_STUB IXMLDOMDocument_save_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_validateOnParse_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isValidating); - - -void __RPC_STUB IXMLDOMDocument_get_validateOnParse_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_validateOnParse_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isValidating); - - -void __RPC_STUB IXMLDOMDocument_put_validateOnParse_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_resolveExternals_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isResolving); - - -void __RPC_STUB IXMLDOMDocument_get_resolveExternals_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_resolveExternals_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isResolving); - - -void __RPC_STUB IXMLDOMDocument_put_resolveExternals_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_preserveWhiteSpace_Proxy( - IXMLDOMDocument * This, - /* [out][retval] */ VARIANT_BOOL *isPreserving); - - -void __RPC_STUB IXMLDOMDocument_get_preserveWhiteSpace_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_preserveWhiteSpace_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT_BOOL isPreserving); - - -void __RPC_STUB IXMLDOMDocument_put_preserveWhiteSpace_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_onreadystatechange_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT readystatechangeSink); - - -void __RPC_STUB IXMLDOMDocument_put_onreadystatechange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_ondataavailable_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT ondataavailableSink); - - -void __RPC_STUB IXMLDOMDocument_put_ondataavailable_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_ontransformnode_Proxy( - IXMLDOMDocument * This, - /* [in] */ VARIANT ontransformnodeSink); - - -void __RPC_STUB IXMLDOMDocument_put_ontransformnode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMDocument_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMSchemaCollection_INTERFACE_DEFINED__ -#define __IXMLDOMSchemaCollection_INTERFACE_DEFINED__ - -/* interface IXMLDOMSchemaCollection */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMSchemaCollection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("373984c8-b845-449b-91e7-45ac83036ade") - IXMLDOMSchemaCollection : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE add( - /* [in] */ BSTR namespaceURI, - /* [in] */ VARIANT var) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE get( - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **schemaNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE remove( - /* [in] */ BSTR namespaceURI) = 0; - - virtual /* [propget][helpstring][id] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *length) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_namespaceURI( - /* [in] */ long index, - /* [retval][out] */ BSTR *length) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addCollection( - /* [in] */ IXMLDOMSchemaCollection *otherCollection) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMSchemaCollectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMSchemaCollection * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMSchemaCollection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMSchemaCollection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMSchemaCollection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMSchemaCollection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMSchemaCollection * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMSchemaCollection * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *add )( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI, - /* [in] */ VARIANT var); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *get )( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **schemaNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *remove )( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI); - - /* [propget][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMSchemaCollection * This, - /* [retval][out] */ long *length); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMSchemaCollection * This, - /* [in] */ long index, - /* [retval][out] */ BSTR *length); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addCollection )( - IXMLDOMSchemaCollection * This, - /* [in] */ IXMLDOMSchemaCollection *otherCollection); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMSchemaCollection * This, - /* [out][retval] */ IUnknown **ppUnk); - - END_INTERFACE - } IXMLDOMSchemaCollectionVtbl; - - interface IXMLDOMSchemaCollection - { - CONST_VTBL struct IXMLDOMSchemaCollectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMSchemaCollection_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMSchemaCollection_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMSchemaCollection_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMSchemaCollection_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMSchemaCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMSchemaCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMSchemaCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMSchemaCollection_add(This,namespaceURI,var) \ - (This)->lpVtbl -> add(This,namespaceURI,var) - -#define IXMLDOMSchemaCollection_get(This,namespaceURI,schemaNode) \ - (This)->lpVtbl -> get(This,namespaceURI,schemaNode) - -#define IXMLDOMSchemaCollection_remove(This,namespaceURI) \ - (This)->lpVtbl -> remove(This,namespaceURI) - -#define IXMLDOMSchemaCollection_get_length(This,length) \ - (This)->lpVtbl -> get_length(This,length) - -#define IXMLDOMSchemaCollection_get_namespaceURI(This,index,length) \ - (This)->lpVtbl -> get_namespaceURI(This,index,length) - -#define IXMLDOMSchemaCollection_addCollection(This,otherCollection) \ - (This)->lpVtbl -> addCollection(This,otherCollection) - -#define IXMLDOMSchemaCollection_get__newEnum(This,ppUnk) \ - (This)->lpVtbl -> get__newEnum(This,ppUnk) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_add_Proxy( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI, - /* [in] */ VARIANT var); - - -void __RPC_STUB IXMLDOMSchemaCollection_add_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_Proxy( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **schemaNode); - - -void __RPC_STUB IXMLDOMSchemaCollection_get_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_remove_Proxy( - IXMLDOMSchemaCollection * This, - /* [in] */ BSTR namespaceURI); - - -void __RPC_STUB IXMLDOMSchemaCollection_remove_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget][helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_length_Proxy( - IXMLDOMSchemaCollection * This, - /* [retval][out] */ long *length); - - -void __RPC_STUB IXMLDOMSchemaCollection_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_namespaceURI_Proxy( - IXMLDOMSchemaCollection * This, - /* [in] */ long index, - /* [retval][out] */ BSTR *length); - - -void __RPC_STUB IXMLDOMSchemaCollection_get_namespaceURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_addCollection_Proxy( - IXMLDOMSchemaCollection * This, - /* [in] */ IXMLDOMSchemaCollection *otherCollection); - - -void __RPC_STUB IXMLDOMSchemaCollection_addCollection_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get__newEnum_Proxy( - IXMLDOMSchemaCollection * This, - /* [out][retval] */ IUnknown **ppUnk); - - -void __RPC_STUB IXMLDOMSchemaCollection_get__newEnum_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMSchemaCollection_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocument2_INTERFACE_DEFINED__ -#define __IXMLDOMDocument2_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocument2 */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocument2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF95-7B36-11d2-B20E-00C04F983E60") - IXMLDOMDocument2 : public IXMLDOMDocument - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_namespaces( - /* [retval][out] */ IXMLDOMSchemaCollection **namespaceCollection) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_schemas( - /* [retval][out] */ VARIANT *otherCollection) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_schemas( - /* [in] */ VARIANT otherCollection) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE validate( - /* [out][retval] */ IXMLDOMParseError **errorObj) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setProperty( - /* [in] */ BSTR name, - /* [in] */ VARIANT value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getProperty( - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMDocument2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocument2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocument2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocument2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocument2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocument2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocument2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMDocument2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocument2 * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocument2 * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocument2 * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocument2 * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocument2 * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocument2 * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMDocumentType **documentType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_implementation )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMImplementation **impl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_documentElement )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMElement **DOMElement); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_documentElement )( - IXMLDOMDocument2 * This, - /* [in] */ IXMLDOMElement *DOMElement); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMElement **element); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createDocumentFragment )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMDocumentFragment **docFrag); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createTextNode )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMText **text); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createComment )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMComment **comment); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createCDATASection )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMCDATASection **cdata); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createProcessingInstruction )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR target, - /* [in] */ BSTR data, - /* [retval][out] */ IXMLDOMProcessingInstruction **pi); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createAttribute )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attribute); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createEntityReference )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMEntityReference **entityRef); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getElementsByTagName )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createNode )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT Type, - /* [in] */ BSTR name, - /* [in] */ BSTR namespaceURI, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nodeFromID )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR idString, - /* [out][retval] */ IXMLDOMNode **node); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *load )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT xmlSource, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDOMDocument2 * This, - /* [out][retval] */ long *value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parseError )( - IXMLDOMDocument2 * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_url )( - IXMLDOMDocument2 * This, - /* [out][retval] */ BSTR *urlString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_async )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *isAsync); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_async )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT_BOOL isAsync); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IXMLDOMDocument2 * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *loadXML )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR bstrXML, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *save )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT destination); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_validateOnParse )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *isValidating); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_validateOnParse )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT_BOOL isValidating); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_resolveExternals )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *isResolving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_resolveExternals )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT_BOOL isResolving); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_preserveWhiteSpace )( - IXMLDOMDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_preserveWhiteSpace )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT_BOOL isPreserving); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT readystatechangeSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ondataavailable )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT ondataavailableSink); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ontransformnode )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT ontransformnodeSink); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaces )( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMSchemaCollection **namespaceCollection); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_schemas )( - IXMLDOMDocument2 * This, - /* [retval][out] */ VARIANT *otherCollection); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_schemas )( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT otherCollection); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *validate )( - IXMLDOMDocument2 * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setProperty )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getProperty )( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - END_INTERFACE - } IXMLDOMDocument2Vtbl; - - interface IXMLDOMDocument2 - { - CONST_VTBL struct IXMLDOMDocument2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocument2_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMDocument2_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMDocument2_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMDocument2_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMDocument2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMDocument2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMDocument2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMDocument2_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMDocument2_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMDocument2_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMDocument2_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMDocument2_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMDocument2_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMDocument2_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMDocument2_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMDocument2_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMDocument2_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMDocument2_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMDocument2_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMDocument2_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMDocument2_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMDocument2_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMDocument2_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMDocument2_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMDocument2_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMDocument2_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMDocument2_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMDocument2_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMDocument2_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMDocument2_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMDocument2_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocument2_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocument2_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMDocument2_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMDocument2_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMDocument2_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMDocument2_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMDocument2_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMDocument2_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMDocument2_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMDocument2_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMDocument2_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMDocument2_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMDocument2_get_doctype(This,documentType) \ - (This)->lpVtbl -> get_doctype(This,documentType) - -#define IXMLDOMDocument2_get_implementation(This,impl) \ - (This)->lpVtbl -> get_implementation(This,impl) - -#define IXMLDOMDocument2_get_documentElement(This,DOMElement) \ - (This)->lpVtbl -> get_documentElement(This,DOMElement) - -#define IXMLDOMDocument2_putref_documentElement(This,DOMElement) \ - (This)->lpVtbl -> putref_documentElement(This,DOMElement) - -#define IXMLDOMDocument2_createElement(This,tagName,element) \ - (This)->lpVtbl -> createElement(This,tagName,element) - -#define IXMLDOMDocument2_createDocumentFragment(This,docFrag) \ - (This)->lpVtbl -> createDocumentFragment(This,docFrag) - -#define IXMLDOMDocument2_createTextNode(This,data,text) \ - (This)->lpVtbl -> createTextNode(This,data,text) - -#define IXMLDOMDocument2_createComment(This,data,comment) \ - (This)->lpVtbl -> createComment(This,data,comment) - -#define IXMLDOMDocument2_createCDATASection(This,data,cdata) \ - (This)->lpVtbl -> createCDATASection(This,data,cdata) - -#define IXMLDOMDocument2_createProcessingInstruction(This,target,data,pi) \ - (This)->lpVtbl -> createProcessingInstruction(This,target,data,pi) - -#define IXMLDOMDocument2_createAttribute(This,name,attribute) \ - (This)->lpVtbl -> createAttribute(This,name,attribute) - -#define IXMLDOMDocument2_createEntityReference(This,name,entityRef) \ - (This)->lpVtbl -> createEntityReference(This,name,entityRef) - -#define IXMLDOMDocument2_getElementsByTagName(This,tagName,resultList) \ - (This)->lpVtbl -> getElementsByTagName(This,tagName,resultList) - -#define IXMLDOMDocument2_createNode(This,Type,name,namespaceURI,node) \ - (This)->lpVtbl -> createNode(This,Type,name,namespaceURI,node) - -#define IXMLDOMDocument2_nodeFromID(This,idString,node) \ - (This)->lpVtbl -> nodeFromID(This,idString,node) - -#define IXMLDOMDocument2_load(This,xmlSource,isSuccessful) \ - (This)->lpVtbl -> load(This,xmlSource,isSuccessful) - -#define IXMLDOMDocument2_get_readyState(This,value) \ - (This)->lpVtbl -> get_readyState(This,value) - -#define IXMLDOMDocument2_get_parseError(This,errorObj) \ - (This)->lpVtbl -> get_parseError(This,errorObj) - -#define IXMLDOMDocument2_get_url(This,urlString) \ - (This)->lpVtbl -> get_url(This,urlString) - -#define IXMLDOMDocument2_get_async(This,isAsync) \ - (This)->lpVtbl -> get_async(This,isAsync) - -#define IXMLDOMDocument2_put_async(This,isAsync) \ - (This)->lpVtbl -> put_async(This,isAsync) - -#define IXMLDOMDocument2_abort(This) \ - (This)->lpVtbl -> abort(This) - -#define IXMLDOMDocument2_loadXML(This,bstrXML,isSuccessful) \ - (This)->lpVtbl -> loadXML(This,bstrXML,isSuccessful) - -#define IXMLDOMDocument2_save(This,destination) \ - (This)->lpVtbl -> save(This,destination) - -#define IXMLDOMDocument2_get_validateOnParse(This,isValidating) \ - (This)->lpVtbl -> get_validateOnParse(This,isValidating) - -#define IXMLDOMDocument2_put_validateOnParse(This,isValidating) \ - (This)->lpVtbl -> put_validateOnParse(This,isValidating) - -#define IXMLDOMDocument2_get_resolveExternals(This,isResolving) \ - (This)->lpVtbl -> get_resolveExternals(This,isResolving) - -#define IXMLDOMDocument2_put_resolveExternals(This,isResolving) \ - (This)->lpVtbl -> put_resolveExternals(This,isResolving) - -#define IXMLDOMDocument2_get_preserveWhiteSpace(This,isPreserving) \ - (This)->lpVtbl -> get_preserveWhiteSpace(This,isPreserving) - -#define IXMLDOMDocument2_put_preserveWhiteSpace(This,isPreserving) \ - (This)->lpVtbl -> put_preserveWhiteSpace(This,isPreserving) - -#define IXMLDOMDocument2_put_onreadystatechange(This,readystatechangeSink) \ - (This)->lpVtbl -> put_onreadystatechange(This,readystatechangeSink) - -#define IXMLDOMDocument2_put_ondataavailable(This,ondataavailableSink) \ - (This)->lpVtbl -> put_ondataavailable(This,ondataavailableSink) - -#define IXMLDOMDocument2_put_ontransformnode(This,ontransformnodeSink) \ - (This)->lpVtbl -> put_ontransformnode(This,ontransformnodeSink) - - -#define IXMLDOMDocument2_get_namespaces(This,namespaceCollection) \ - (This)->lpVtbl -> get_namespaces(This,namespaceCollection) - -#define IXMLDOMDocument2_get_schemas(This,otherCollection) \ - (This)->lpVtbl -> get_schemas(This,otherCollection) - -#define IXMLDOMDocument2_putref_schemas(This,otherCollection) \ - (This)->lpVtbl -> putref_schemas(This,otherCollection) - -#define IXMLDOMDocument2_validate(This,errorObj) \ - (This)->lpVtbl -> validate(This,errorObj) - -#define IXMLDOMDocument2_setProperty(This,name,value) \ - (This)->lpVtbl -> setProperty(This,name,value) - -#define IXMLDOMDocument2_getProperty(This,name,value) \ - (This)->lpVtbl -> getProperty(This,name,value) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_get_namespaces_Proxy( - IXMLDOMDocument2 * This, - /* [retval][out] */ IXMLDOMSchemaCollection **namespaceCollection); - - -void __RPC_STUB IXMLDOMDocument2_get_namespaces_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_get_schemas_Proxy( - IXMLDOMDocument2 * This, - /* [retval][out] */ VARIANT *otherCollection); - - -void __RPC_STUB IXMLDOMDocument2_get_schemas_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_putref_schemas_Proxy( - IXMLDOMDocument2 * This, - /* [in] */ VARIANT otherCollection); - - -void __RPC_STUB IXMLDOMDocument2_putref_schemas_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_validate_Proxy( - IXMLDOMDocument2 * This, - /* [out][retval] */ IXMLDOMParseError **errorObj); - - -void __RPC_STUB IXMLDOMDocument2_validate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_setProperty_Proxy( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - -void __RPC_STUB IXMLDOMDocument2_setProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_getProperty_Proxy( - IXMLDOMDocument2 * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - -void __RPC_STUB IXMLDOMDocument2_getProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMDocument2_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNodeList_INTERFACE_DEFINED__ -#define __IXMLDOMNodeList_INTERFACE_DEFINED__ - -/* interface IXMLDOMNodeList */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNodeList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF82-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNodeList : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_item( - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *listLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nextNode( - /* [retval][out] */ IXMLDOMNode **nextItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE reset( void) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMNodeListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNodeList * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNodeList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNodeList * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNodeList * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNodeList * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNodeList * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMNodeList * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( - IXMLDOMNodeList * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMNodeList * This, - /* [retval][out] */ long *listLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nextNode )( - IXMLDOMNodeList * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXMLDOMNodeList * This); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMNodeList * This, - /* [out][retval] */ IUnknown **ppUnk); - - END_INTERFACE - } IXMLDOMNodeListVtbl; - - interface IXMLDOMNodeList - { - CONST_VTBL struct IXMLDOMNodeListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNodeList_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMNodeList_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMNodeList_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMNodeList_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMNodeList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMNodeList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMNodeList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMNodeList_get_item(This,index,listItem) \ - (This)->lpVtbl -> get_item(This,index,listItem) - -#define IXMLDOMNodeList_get_length(This,listLength) \ - (This)->lpVtbl -> get_length(This,listLength) - -#define IXMLDOMNodeList_nextNode(This,nextItem) \ - (This)->lpVtbl -> nextNode(This,nextItem) - -#define IXMLDOMNodeList_reset(This) \ - (This)->lpVtbl -> reset(This) - -#define IXMLDOMNodeList_get__newEnum(This,ppUnk) \ - (This)->lpVtbl -> get__newEnum(This,ppUnk) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get_item_Proxy( - IXMLDOMNodeList * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - -void __RPC_STUB IXMLDOMNodeList_get_item_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get_length_Proxy( - IXMLDOMNodeList * This, - /* [retval][out] */ long *listLength); - - -void __RPC_STUB IXMLDOMNodeList_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_nextNode_Proxy( - IXMLDOMNodeList * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - -void __RPC_STUB IXMLDOMNodeList_nextNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_reset_Proxy( - IXMLDOMNodeList * This); - - -void __RPC_STUB IXMLDOMNodeList_reset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get__newEnum_Proxy( - IXMLDOMNodeList * This, - /* [out][retval] */ IUnknown **ppUnk); - - -void __RPC_STUB IXMLDOMNodeList_get__newEnum_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMNodeList_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ -#define __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ - -/* interface IXMLDOMNamedNodeMap */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNamedNodeMap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF83-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNamedNodeMap : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getNamedItem( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setNamedItem( - /* [in] */ IXMLDOMNode *newItem, - /* [retval][out] */ IXMLDOMNode **nameItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeNamedItem( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_item( - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *listLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getQualifiedItem( - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeQualifiedItem( - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE nextNode( - /* [retval][out] */ IXMLDOMNode **nextItem) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE reset( void) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMNamedNodeMapVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNamedNodeMap * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNamedNodeMap * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNamedNodeMap * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNamedNodeMap * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNamedNodeMap * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNamedNodeMap * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMNamedNodeMap * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ IXMLDOMNode *newItem, - /* [retval][out] */ IXMLDOMNode **nameItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeNamedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( - IXMLDOMNamedNodeMap * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ long *listLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getQualifiedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeQualifiedItem )( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nextNode )( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXMLDOMNamedNodeMap * This); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMNamedNodeMap * This, - /* [out][retval] */ IUnknown **ppUnk); - - END_INTERFACE - } IXMLDOMNamedNodeMapVtbl; - - interface IXMLDOMNamedNodeMap - { - CONST_VTBL struct IXMLDOMNamedNodeMapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNamedNodeMap_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMNamedNodeMap_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMNamedNodeMap_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMNamedNodeMap_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMNamedNodeMap_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMNamedNodeMap_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMNamedNodeMap_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMNamedNodeMap_getNamedItem(This,name,namedItem) \ - (This)->lpVtbl -> getNamedItem(This,name,namedItem) - -#define IXMLDOMNamedNodeMap_setNamedItem(This,newItem,nameItem) \ - (This)->lpVtbl -> setNamedItem(This,newItem,nameItem) - -#define IXMLDOMNamedNodeMap_removeNamedItem(This,name,namedItem) \ - (This)->lpVtbl -> removeNamedItem(This,name,namedItem) - -#define IXMLDOMNamedNodeMap_get_item(This,index,listItem) \ - (This)->lpVtbl -> get_item(This,index,listItem) - -#define IXMLDOMNamedNodeMap_get_length(This,listLength) \ - (This)->lpVtbl -> get_length(This,listLength) - -#define IXMLDOMNamedNodeMap_getQualifiedItem(This,baseName,namespaceURI,qualifiedItem) \ - (This)->lpVtbl -> getQualifiedItem(This,baseName,namespaceURI,qualifiedItem) - -#define IXMLDOMNamedNodeMap_removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem) \ - (This)->lpVtbl -> removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem) - -#define IXMLDOMNamedNodeMap_nextNode(This,nextItem) \ - (This)->lpVtbl -> nextNode(This,nextItem) - -#define IXMLDOMNamedNodeMap_reset(This) \ - (This)->lpVtbl -> reset(This) - -#define IXMLDOMNamedNodeMap_get__newEnum(This,ppUnk) \ - (This)->lpVtbl -> get__newEnum(This,ppUnk) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getNamedItem_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_getNamedItem_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_setNamedItem_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ IXMLDOMNode *newItem, - /* [retval][out] */ IXMLDOMNode **nameItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_setNamedItem_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeNamedItem_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMNode **namedItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_removeNamedItem_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get_item_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_get_item_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get_length_Proxy( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ long *listLength); - - -void __RPC_STUB IXMLDOMNamedNodeMap_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getQualifiedItem_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_getQualifiedItem_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeQualifiedItem_Proxy( - IXMLDOMNamedNodeMap * This, - /* [in] */ BSTR baseName, - /* [in] */ BSTR namespaceURI, - /* [retval][out] */ IXMLDOMNode **qualifiedItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_removeQualifiedItem_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_nextNode_Proxy( - IXMLDOMNamedNodeMap * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - -void __RPC_STUB IXMLDOMNamedNodeMap_nextNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_reset_Proxy( - IXMLDOMNamedNodeMap * This); - - -void __RPC_STUB IXMLDOMNamedNodeMap_reset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get__newEnum_Proxy( - IXMLDOMNamedNodeMap * This, - /* [out][retval] */ IUnknown **ppUnk); - - -void __RPC_STUB IXMLDOMNamedNodeMap_get__newEnum_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMCharacterData_INTERFACE_DEFINED__ -#define __IXMLDOMCharacterData_INTERFACE_DEFINED__ - -/* interface IXMLDOMCharacterData */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMCharacterData; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF84-7B36-11d2-B20E-00C04F983E60") - IXMLDOMCharacterData : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_data( - /* [retval][out] */ BSTR *data) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_data( - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ long *dataLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE substringData( - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE appendData( - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE insertData( - /* [in] */ long offset, - /* [in] */ BSTR data) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE deleteData( - /* [in] */ long offset, - /* [in] */ long count) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE replaceData( - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMCharacterDataVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMCharacterData * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMCharacterData * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMCharacterData * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMCharacterData * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMCharacterData * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMCharacterData * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMCharacterData * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMCharacterData * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMCharacterData * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMCharacterData * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMCharacterData * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMCharacterData * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMCharacterData * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMCharacterData * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMCharacterData * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMCharacterData * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMCharacterData * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMCharacterData * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - END_INTERFACE - } IXMLDOMCharacterDataVtbl; - - interface IXMLDOMCharacterData - { - CONST_VTBL struct IXMLDOMCharacterDataVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMCharacterData_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMCharacterData_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMCharacterData_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMCharacterData_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMCharacterData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMCharacterData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMCharacterData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMCharacterData_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMCharacterData_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMCharacterData_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMCharacterData_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMCharacterData_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMCharacterData_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMCharacterData_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMCharacterData_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMCharacterData_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMCharacterData_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMCharacterData_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMCharacterData_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMCharacterData_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMCharacterData_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMCharacterData_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMCharacterData_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMCharacterData_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMCharacterData_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMCharacterData_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMCharacterData_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMCharacterData_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMCharacterData_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMCharacterData_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMCharacterData_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMCharacterData_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMCharacterData_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMCharacterData_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMCharacterData_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMCharacterData_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMCharacterData_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMCharacterData_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMCharacterData_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMCharacterData_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMCharacterData_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMCharacterData_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMCharacterData_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMCharacterData_get_data(This,data) \ - (This)->lpVtbl -> get_data(This,data) - -#define IXMLDOMCharacterData_put_data(This,data) \ - (This)->lpVtbl -> put_data(This,data) - -#define IXMLDOMCharacterData_get_length(This,dataLength) \ - (This)->lpVtbl -> get_length(This,dataLength) - -#define IXMLDOMCharacterData_substringData(This,offset,count,data) \ - (This)->lpVtbl -> substringData(This,offset,count,data) - -#define IXMLDOMCharacterData_appendData(This,data) \ - (This)->lpVtbl -> appendData(This,data) - -#define IXMLDOMCharacterData_insertData(This,offset,data) \ - (This)->lpVtbl -> insertData(This,offset,data) - -#define IXMLDOMCharacterData_deleteData(This,offset,count) \ - (This)->lpVtbl -> deleteData(This,offset,count) - -#define IXMLDOMCharacterData_replaceData(This,offset,count,data) \ - (This)->lpVtbl -> replaceData(This,offset,count,data) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_get_data_Proxy( - IXMLDOMCharacterData * This, - /* [retval][out] */ BSTR *data); - - -void __RPC_STUB IXMLDOMCharacterData_get_data_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_put_data_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - -void __RPC_STUB IXMLDOMCharacterData_put_data_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_get_length_Proxy( - IXMLDOMCharacterData * This, - /* [retval][out] */ long *dataLength); - - -void __RPC_STUB IXMLDOMCharacterData_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_substringData_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - -void __RPC_STUB IXMLDOMCharacterData_substringData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_appendData_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ BSTR data); - - -void __RPC_STUB IXMLDOMCharacterData_appendData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_insertData_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - -void __RPC_STUB IXMLDOMCharacterData_insertData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_deleteData_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count); - - -void __RPC_STUB IXMLDOMCharacterData_deleteData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_replaceData_Proxy( - IXMLDOMCharacterData * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - -void __RPC_STUB IXMLDOMCharacterData_replaceData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMCharacterData_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMAttribute_INTERFACE_DEFINED__ -#define __IXMLDOMAttribute_INTERFACE_DEFINED__ - -/* interface IXMLDOMAttribute */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMAttribute; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF85-7B36-11d2-B20E-00C04F983E60") - IXMLDOMAttribute : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [retval][out] */ BSTR *attributeName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_value( - /* [retval][out] */ VARIANT *attributeValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_value( - /* [in] */ VARIANT attributeValue) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMAttributeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMAttribute * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMAttribute * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMAttribute * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMAttribute * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMAttribute * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMAttribute * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMAttribute * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMAttribute * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMAttribute * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMAttribute * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMAttribute * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMAttribute * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMAttribute * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMAttribute * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMAttribute * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMAttribute * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMAttribute * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMAttribute * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLDOMAttribute * This, - /* [retval][out] */ BSTR *attributeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT *attributeValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_value )( - IXMLDOMAttribute * This, - /* [in] */ VARIANT attributeValue); - - END_INTERFACE - } IXMLDOMAttributeVtbl; - - interface IXMLDOMAttribute - { - CONST_VTBL struct IXMLDOMAttributeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMAttribute_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMAttribute_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMAttribute_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMAttribute_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMAttribute_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMAttribute_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMAttribute_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMAttribute_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMAttribute_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMAttribute_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMAttribute_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMAttribute_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMAttribute_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMAttribute_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMAttribute_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMAttribute_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMAttribute_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMAttribute_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMAttribute_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMAttribute_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMAttribute_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMAttribute_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMAttribute_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMAttribute_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMAttribute_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMAttribute_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMAttribute_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMAttribute_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMAttribute_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMAttribute_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMAttribute_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMAttribute_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMAttribute_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMAttribute_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMAttribute_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMAttribute_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMAttribute_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMAttribute_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMAttribute_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMAttribute_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMAttribute_get_name(This,attributeName) \ - (This)->lpVtbl -> get_name(This,attributeName) - -#define IXMLDOMAttribute_get_value(This,attributeValue) \ - (This)->lpVtbl -> get_value(This,attributeValue) - -#define IXMLDOMAttribute_put_value(This,attributeValue) \ - (This)->lpVtbl -> put_value(This,attributeValue) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_get_name_Proxy( - IXMLDOMAttribute * This, - /* [retval][out] */ BSTR *attributeName); - - -void __RPC_STUB IXMLDOMAttribute_get_name_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_get_value_Proxy( - IXMLDOMAttribute * This, - /* [retval][out] */ VARIANT *attributeValue); - - -void __RPC_STUB IXMLDOMAttribute_get_value_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_put_value_Proxy( - IXMLDOMAttribute * This, - /* [in] */ VARIANT attributeValue); - - -void __RPC_STUB IXMLDOMAttribute_put_value_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMAttribute_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMElement_INTERFACE_DEFINED__ -#define __IXMLDOMElement_INTERFACE_DEFINED__ - -/* interface IXMLDOMElement */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMElement; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF86-7B36-11d2-B20E-00C04F983E60") - IXMLDOMElement : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [retval][out] */ BSTR *tagName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR name, - /* [in] */ VARIANT value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR name) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttributeNode( - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttributeNode( - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttributeNode( - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getElementsByTagName( - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE normalize( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMElementVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMElement * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMElement * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMElement * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMElement * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMElement * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMElement * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMElement * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMElement * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMElement * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMElement * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMElement * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMElement * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMElement * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMElement * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMElement * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMElement * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMElement * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMElement * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMElement * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMElement * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMElement * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLDOMElement * This, - /* [retval][out] */ BSTR *tagName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLDOMElement * This, - /* [in] */ BSTR name); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttributeNode )( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttributeNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttributeNode )( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getElementsByTagName )( - IXMLDOMElement * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *normalize )( - IXMLDOMElement * This); - - END_INTERFACE - } IXMLDOMElementVtbl; - - interface IXMLDOMElement - { - CONST_VTBL struct IXMLDOMElementVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMElement_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMElement_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMElement_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMElement_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMElement_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMElement_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMElement_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMElement_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMElement_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMElement_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMElement_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMElement_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMElement_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMElement_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMElement_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMElement_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMElement_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMElement_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMElement_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMElement_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMElement_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMElement_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMElement_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMElement_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMElement_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMElement_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMElement_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMElement_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMElement_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMElement_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMElement_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMElement_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMElement_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMElement_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMElement_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMElement_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMElement_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMElement_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMElement_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMElement_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMElement_get_tagName(This,tagName) \ - (This)->lpVtbl -> get_tagName(This,tagName) - -#define IXMLDOMElement_getAttribute(This,name,value) \ - (This)->lpVtbl -> getAttribute(This,name,value) - -#define IXMLDOMElement_setAttribute(This,name,value) \ - (This)->lpVtbl -> setAttribute(This,name,value) - -#define IXMLDOMElement_removeAttribute(This,name) \ - (This)->lpVtbl -> removeAttribute(This,name) - -#define IXMLDOMElement_getAttributeNode(This,name,attributeNode) \ - (This)->lpVtbl -> getAttributeNode(This,name,attributeNode) - -#define IXMLDOMElement_setAttributeNode(This,DOMAttribute,attributeNode) \ - (This)->lpVtbl -> setAttributeNode(This,DOMAttribute,attributeNode) - -#define IXMLDOMElement_removeAttributeNode(This,DOMAttribute,attributeNode) \ - (This)->lpVtbl -> removeAttributeNode(This,DOMAttribute,attributeNode) - -#define IXMLDOMElement_getElementsByTagName(This,tagName,resultList) \ - (This)->lpVtbl -> getElementsByTagName(This,tagName,resultList) - -#define IXMLDOMElement_normalize(This) \ - (This)->lpVtbl -> normalize(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_get_tagName_Proxy( - IXMLDOMElement * This, - /* [retval][out] */ BSTR *tagName); - - -void __RPC_STUB IXMLDOMElement_get_tagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttribute_Proxy( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - -void __RPC_STUB IXMLDOMElement_getAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_setAttribute_Proxy( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - -void __RPC_STUB IXMLDOMElement_setAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_removeAttribute_Proxy( - IXMLDOMElement * This, - /* [in] */ BSTR name); - - -void __RPC_STUB IXMLDOMElement_removeAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttributeNode_Proxy( - IXMLDOMElement * This, - /* [in] */ BSTR name, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - -void __RPC_STUB IXMLDOMElement_getAttributeNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_setAttributeNode_Proxy( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - -void __RPC_STUB IXMLDOMElement_setAttributeNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_removeAttributeNode_Proxy( - IXMLDOMElement * This, - /* [in] */ IXMLDOMAttribute *DOMAttribute, - /* [retval][out] */ IXMLDOMAttribute **attributeNode); - - -void __RPC_STUB IXMLDOMElement_removeAttributeNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_getElementsByTagName_Proxy( - IXMLDOMElement * This, - /* [in] */ BSTR tagName, - /* [retval][out] */ IXMLDOMNodeList **resultList); - - -void __RPC_STUB IXMLDOMElement_getElementsByTagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMElement_normalize_Proxy( - IXMLDOMElement * This); - - -void __RPC_STUB IXMLDOMElement_normalize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMElement_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMText_INTERFACE_DEFINED__ -#define __IXMLDOMText_INTERFACE_DEFINED__ - -/* interface IXMLDOMText */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMText; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF87-7B36-11d2-B20E-00C04F983E60") - IXMLDOMText : public IXMLDOMCharacterData - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE splitText( - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMTextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMText * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMText * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMText * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMText * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMText * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMText * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMText * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMText * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMText * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMText * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMText * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMText * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMText * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMText * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMText * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMText * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMText * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMText * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMText * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMText * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMText * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMText * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMText * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMText * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMText * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMText * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *splitText )( - IXMLDOMText * This, - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode); - - END_INTERFACE - } IXMLDOMTextVtbl; - - interface IXMLDOMText - { - CONST_VTBL struct IXMLDOMTextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMText_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMText_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMText_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMText_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMText_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMText_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMText_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMText_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMText_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMText_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMText_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMText_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMText_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMText_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMText_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMText_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMText_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMText_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMText_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMText_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMText_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMText_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMText_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMText_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMText_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMText_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMText_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMText_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMText_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMText_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMText_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMText_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMText_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMText_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMText_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMText_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMText_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMText_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMText_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMText_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMText_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMText_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMText_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMText_get_data(This,data) \ - (This)->lpVtbl -> get_data(This,data) - -#define IXMLDOMText_put_data(This,data) \ - (This)->lpVtbl -> put_data(This,data) - -#define IXMLDOMText_get_length(This,dataLength) \ - (This)->lpVtbl -> get_length(This,dataLength) - -#define IXMLDOMText_substringData(This,offset,count,data) \ - (This)->lpVtbl -> substringData(This,offset,count,data) - -#define IXMLDOMText_appendData(This,data) \ - (This)->lpVtbl -> appendData(This,data) - -#define IXMLDOMText_insertData(This,offset,data) \ - (This)->lpVtbl -> insertData(This,offset,data) - -#define IXMLDOMText_deleteData(This,offset,count) \ - (This)->lpVtbl -> deleteData(This,offset,count) - -#define IXMLDOMText_replaceData(This,offset,count,data) \ - (This)->lpVtbl -> replaceData(This,offset,count,data) - - -#define IXMLDOMText_splitText(This,offset,rightHandTextNode) \ - (This)->lpVtbl -> splitText(This,offset,rightHandTextNode) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMText_splitText_Proxy( - IXMLDOMText * This, - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode); - - -void __RPC_STUB IXMLDOMText_splitText_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMText_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMComment_INTERFACE_DEFINED__ -#define __IXMLDOMComment_INTERFACE_DEFINED__ - -/* interface IXMLDOMComment */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMComment; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF88-7B36-11d2-B20E-00C04F983E60") - IXMLDOMComment : public IXMLDOMCharacterData - { - public: - }; - -#else /* C style interface */ - - typedef struct IXMLDOMCommentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMComment * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMComment * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMComment * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMComment * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMComment * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMComment * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMComment * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMComment * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMComment * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMComment * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMComment * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMComment * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMComment * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMComment * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMComment * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMComment * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMComment * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMComment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMComment * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMComment * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMComment * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMComment * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMComment * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMComment * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMComment * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMComment * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMComment * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - END_INTERFACE - } IXMLDOMCommentVtbl; - - interface IXMLDOMComment - { - CONST_VTBL struct IXMLDOMCommentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMComment_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMComment_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMComment_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMComment_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMComment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMComment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMComment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMComment_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMComment_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMComment_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMComment_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMComment_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMComment_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMComment_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMComment_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMComment_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMComment_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMComment_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMComment_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMComment_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMComment_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMComment_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMComment_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMComment_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMComment_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMComment_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMComment_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMComment_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMComment_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMComment_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMComment_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMComment_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMComment_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMComment_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMComment_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMComment_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMComment_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMComment_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMComment_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMComment_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMComment_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMComment_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMComment_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMComment_get_data(This,data) \ - (This)->lpVtbl -> get_data(This,data) - -#define IXMLDOMComment_put_data(This,data) \ - (This)->lpVtbl -> put_data(This,data) - -#define IXMLDOMComment_get_length(This,dataLength) \ - (This)->lpVtbl -> get_length(This,dataLength) - -#define IXMLDOMComment_substringData(This,offset,count,data) \ - (This)->lpVtbl -> substringData(This,offset,count,data) - -#define IXMLDOMComment_appendData(This,data) \ - (This)->lpVtbl -> appendData(This,data) - -#define IXMLDOMComment_insertData(This,offset,data) \ - (This)->lpVtbl -> insertData(This,offset,data) - -#define IXMLDOMComment_deleteData(This,offset,count) \ - (This)->lpVtbl -> deleteData(This,offset,count) - -#define IXMLDOMComment_replaceData(This,offset,count,data) \ - (This)->lpVtbl -> replaceData(This,offset,count,data) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMComment_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ -#define __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ - -/* interface IXMLDOMProcessingInstruction */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMProcessingInstruction; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF89-7B36-11d2-B20E-00C04F983E60") - IXMLDOMProcessingInstruction : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_target( - /* [retval][out] */ BSTR *name) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_data( - /* [retval][out] */ BSTR *value) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_data( - /* [in] */ BSTR value) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMProcessingInstructionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMProcessingInstruction * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMProcessingInstruction * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMProcessingInstruction * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMProcessingInstruction * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMProcessingInstruction * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMProcessingInstruction * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMProcessingInstruction * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMProcessingInstruction * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMProcessingInstruction * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMProcessingInstruction * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR value); - - END_INTERFACE - } IXMLDOMProcessingInstructionVtbl; - - interface IXMLDOMProcessingInstruction - { - CONST_VTBL struct IXMLDOMProcessingInstructionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMProcessingInstruction_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMProcessingInstruction_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMProcessingInstruction_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMProcessingInstruction_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMProcessingInstruction_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMProcessingInstruction_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMProcessingInstruction_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMProcessingInstruction_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMProcessingInstruction_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMProcessingInstruction_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMProcessingInstruction_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMProcessingInstruction_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMProcessingInstruction_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMProcessingInstruction_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMProcessingInstruction_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMProcessingInstruction_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMProcessingInstruction_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMProcessingInstruction_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMProcessingInstruction_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMProcessingInstruction_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMProcessingInstruction_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMProcessingInstruction_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMProcessingInstruction_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMProcessingInstruction_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMProcessingInstruction_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMProcessingInstruction_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMProcessingInstruction_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMProcessingInstruction_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMProcessingInstruction_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMProcessingInstruction_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMProcessingInstruction_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMProcessingInstruction_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMProcessingInstruction_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMProcessingInstruction_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMProcessingInstruction_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMProcessingInstruction_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMProcessingInstruction_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMProcessingInstruction_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMProcessingInstruction_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMProcessingInstruction_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMProcessingInstruction_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMProcessingInstruction_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMProcessingInstruction_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMProcessingInstruction_get_target(This,name) \ - (This)->lpVtbl -> get_target(This,name) - -#define IXMLDOMProcessingInstruction_get_data(This,value) \ - (This)->lpVtbl -> get_data(This,value) - -#define IXMLDOMProcessingInstruction_put_data(This,value) \ - (This)->lpVtbl -> put_data(This,value) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_get_target_Proxy( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *name); - - -void __RPC_STUB IXMLDOMProcessingInstruction_get_target_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_get_data_Proxy( - IXMLDOMProcessingInstruction * This, - /* [retval][out] */ BSTR *value); - - -void __RPC_STUB IXMLDOMProcessingInstruction_get_data_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_put_data_Proxy( - IXMLDOMProcessingInstruction * This, - /* [in] */ BSTR value); - - -void __RPC_STUB IXMLDOMProcessingInstruction_put_data_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMCDATASection_INTERFACE_DEFINED__ -#define __IXMLDOMCDATASection_INTERFACE_DEFINED__ - -/* interface IXMLDOMCDATASection */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMCDATASection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8A-7B36-11d2-B20E-00C04F983E60") - IXMLDOMCDATASection : public IXMLDOMText - { - public: - }; - -#else /* C style interface */ - - typedef struct IXMLDOMCDATASectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMCDATASection * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMCDATASection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMCDATASection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMCDATASection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMCDATASection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMCDATASection * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMCDATASection * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMCDATASection * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMCDATASection * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMCDATASection * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMCDATASection * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMCDATASection * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMCDATASection * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMCDATASection * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMCDATASection * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMCDATASection * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_data )( - IXMLDOMCDATASection * This, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_data )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR data); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMCDATASection * This, - /* [retval][out] */ long *dataLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *substringData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [retval][out] */ BSTR *data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendData )( - IXMLDOMCDATASection * This, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *deleteData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceData )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [in] */ long count, - /* [in] */ BSTR data); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *splitText )( - IXMLDOMCDATASection * This, - /* [in] */ long offset, - /* [retval][out] */ IXMLDOMText **rightHandTextNode); - - END_INTERFACE - } IXMLDOMCDATASectionVtbl; - - interface IXMLDOMCDATASection - { - CONST_VTBL struct IXMLDOMCDATASectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMCDATASection_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMCDATASection_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMCDATASection_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMCDATASection_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMCDATASection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMCDATASection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMCDATASection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMCDATASection_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMCDATASection_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMCDATASection_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMCDATASection_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMCDATASection_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMCDATASection_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMCDATASection_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMCDATASection_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMCDATASection_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMCDATASection_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMCDATASection_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMCDATASection_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMCDATASection_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMCDATASection_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMCDATASection_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMCDATASection_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMCDATASection_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMCDATASection_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMCDATASection_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMCDATASection_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMCDATASection_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMCDATASection_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMCDATASection_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMCDATASection_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMCDATASection_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMCDATASection_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMCDATASection_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMCDATASection_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMCDATASection_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMCDATASection_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMCDATASection_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMCDATASection_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMCDATASection_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMCDATASection_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMCDATASection_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMCDATASection_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMCDATASection_get_data(This,data) \ - (This)->lpVtbl -> get_data(This,data) - -#define IXMLDOMCDATASection_put_data(This,data) \ - (This)->lpVtbl -> put_data(This,data) - -#define IXMLDOMCDATASection_get_length(This,dataLength) \ - (This)->lpVtbl -> get_length(This,dataLength) - -#define IXMLDOMCDATASection_substringData(This,offset,count,data) \ - (This)->lpVtbl -> substringData(This,offset,count,data) - -#define IXMLDOMCDATASection_appendData(This,data) \ - (This)->lpVtbl -> appendData(This,data) - -#define IXMLDOMCDATASection_insertData(This,offset,data) \ - (This)->lpVtbl -> insertData(This,offset,data) - -#define IXMLDOMCDATASection_deleteData(This,offset,count) \ - (This)->lpVtbl -> deleteData(This,offset,count) - -#define IXMLDOMCDATASection_replaceData(This,offset,count,data) \ - (This)->lpVtbl -> replaceData(This,offset,count,data) - - -#define IXMLDOMCDATASection_splitText(This,offset,rightHandTextNode) \ - (This)->lpVtbl -> splitText(This,offset,rightHandTextNode) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMCDATASection_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMDocumentType_INTERFACE_DEFINED__ -#define __IXMLDOMDocumentType_INTERFACE_DEFINED__ - -/* interface IXMLDOMDocumentType */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMDocumentType; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8B-7B36-11d2-B20E-00C04F983E60") - IXMLDOMDocumentType : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [retval][out] */ BSTR *rootName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_entities( - /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_notations( - /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMDocumentTypeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMDocumentType * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMDocumentType * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMDocumentType * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMDocumentType * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMDocumentType * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMDocumentType * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMDocumentType * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMDocumentType * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMDocumentType * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMDocumentType * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMDocumentType * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMDocumentType * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMDocumentType * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMDocumentType * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMDocumentType * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMDocumentType * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLDOMDocumentType * This, - /* [retval][out] */ BSTR *rootName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_entities )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notations )( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap); - - END_INTERFACE - } IXMLDOMDocumentTypeVtbl; - - interface IXMLDOMDocumentType - { - CONST_VTBL struct IXMLDOMDocumentTypeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMDocumentType_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMDocumentType_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMDocumentType_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMDocumentType_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMDocumentType_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMDocumentType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMDocumentType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMDocumentType_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMDocumentType_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMDocumentType_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMDocumentType_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMDocumentType_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMDocumentType_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMDocumentType_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMDocumentType_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMDocumentType_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMDocumentType_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMDocumentType_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMDocumentType_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMDocumentType_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMDocumentType_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMDocumentType_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMDocumentType_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMDocumentType_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMDocumentType_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMDocumentType_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMDocumentType_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMDocumentType_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMDocumentType_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMDocumentType_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMDocumentType_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocumentType_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMDocumentType_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMDocumentType_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMDocumentType_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMDocumentType_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMDocumentType_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMDocumentType_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMDocumentType_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMDocumentType_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMDocumentType_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMDocumentType_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMDocumentType_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMDocumentType_get_name(This,rootName) \ - (This)->lpVtbl -> get_name(This,rootName) - -#define IXMLDOMDocumentType_get_entities(This,entityMap) \ - (This)->lpVtbl -> get_entities(This,entityMap) - -#define IXMLDOMDocumentType_get_notations(This,notationMap) \ - (This)->lpVtbl -> get_notations(This,notationMap) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_name_Proxy( - IXMLDOMDocumentType * This, - /* [retval][out] */ BSTR *rootName); - - -void __RPC_STUB IXMLDOMDocumentType_get_name_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_entities_Proxy( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **entityMap); - - -void __RPC_STUB IXMLDOMDocumentType_get_entities_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_notations_Proxy( - IXMLDOMDocumentType * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **notationMap); - - -void __RPC_STUB IXMLDOMDocumentType_get_notations_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMDocumentType_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMNotation_INTERFACE_DEFINED__ -#define __IXMLDOMNotation_INTERFACE_DEFINED__ - -/* interface IXMLDOMNotation */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMNotation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8C-7B36-11d2-B20E-00C04F983E60") - IXMLDOMNotation : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_publicId( - /* [retval][out] */ VARIANT *publicID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_systemId( - /* [retval][out] */ VARIANT *systemID) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMNotationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMNotation * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMNotation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMNotation * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMNotation * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMNotation * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMNotation * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMNotation * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMNotation * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMNotation * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMNotation * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMNotation * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMNotation * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMNotation * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMNotation * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMNotation * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMNotation * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMNotation * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMNotation * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMNotation * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMNotation * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMNotation * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_publicId )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *publicID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemId )( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *systemID); - - END_INTERFACE - } IXMLDOMNotationVtbl; - - interface IXMLDOMNotation - { - CONST_VTBL struct IXMLDOMNotationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMNotation_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMNotation_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMNotation_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMNotation_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMNotation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMNotation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMNotation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMNotation_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMNotation_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMNotation_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMNotation_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMNotation_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMNotation_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMNotation_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMNotation_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMNotation_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMNotation_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMNotation_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMNotation_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMNotation_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMNotation_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMNotation_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMNotation_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMNotation_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMNotation_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMNotation_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMNotation_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMNotation_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMNotation_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMNotation_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMNotation_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMNotation_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMNotation_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMNotation_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMNotation_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMNotation_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMNotation_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMNotation_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMNotation_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMNotation_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMNotation_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMNotation_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMNotation_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMNotation_get_publicId(This,publicID) \ - (This)->lpVtbl -> get_publicId(This,publicID) - -#define IXMLDOMNotation_get_systemId(This,systemID) \ - (This)->lpVtbl -> get_systemId(This,systemID) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNotation_get_publicId_Proxy( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *publicID); - - -void __RPC_STUB IXMLDOMNotation_get_publicId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMNotation_get_systemId_Proxy( - IXMLDOMNotation * This, - /* [retval][out] */ VARIANT *systemID); - - -void __RPC_STUB IXMLDOMNotation_get_systemId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMNotation_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMEntity_INTERFACE_DEFINED__ -#define __IXMLDOMEntity_INTERFACE_DEFINED__ - -/* interface IXMLDOMEntity */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMEntity; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8D-7B36-11d2-B20E-00C04F983E60") - IXMLDOMEntity : public IXMLDOMNode - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_publicId( - /* [retval][out] */ VARIANT *publicID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_systemId( - /* [retval][out] */ VARIANT *systemID) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_notationName( - /* [retval][out] */ BSTR *name) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMEntityVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMEntity * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMEntity * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMEntity * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMEntity * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMEntity * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMEntity * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMEntity * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMEntity * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMEntity * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMEntity * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMEntity * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMEntity * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMEntity * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMEntity * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMEntity * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMEntity * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMEntity * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMEntity * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMEntity * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMEntity * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMEntity * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_publicId )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *publicID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemId )( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *systemID); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notationName )( - IXMLDOMEntity * This, - /* [retval][out] */ BSTR *name); - - END_INTERFACE - } IXMLDOMEntityVtbl; - - interface IXMLDOMEntity - { - CONST_VTBL struct IXMLDOMEntityVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMEntity_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMEntity_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMEntity_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMEntity_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMEntity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMEntity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMEntity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMEntity_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMEntity_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMEntity_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMEntity_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMEntity_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMEntity_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMEntity_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMEntity_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMEntity_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMEntity_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMEntity_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMEntity_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMEntity_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMEntity_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMEntity_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMEntity_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMEntity_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMEntity_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMEntity_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMEntity_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMEntity_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMEntity_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMEntity_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMEntity_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMEntity_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMEntity_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMEntity_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMEntity_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMEntity_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMEntity_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMEntity_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMEntity_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMEntity_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMEntity_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMEntity_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMEntity_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXMLDOMEntity_get_publicId(This,publicID) \ - (This)->lpVtbl -> get_publicId(This,publicID) - -#define IXMLDOMEntity_get_systemId(This,systemID) \ - (This)->lpVtbl -> get_systemId(This,systemID) - -#define IXMLDOMEntity_get_notationName(This,name) \ - (This)->lpVtbl -> get_notationName(This,name) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_publicId_Proxy( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *publicID); - - -void __RPC_STUB IXMLDOMEntity_get_publicId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_systemId_Proxy( - IXMLDOMEntity * This, - /* [retval][out] */ VARIANT *systemID); - - -void __RPC_STUB IXMLDOMEntity_get_systemId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_notationName_Proxy( - IXMLDOMEntity * This, - /* [retval][out] */ BSTR *name); - - -void __RPC_STUB IXMLDOMEntity_get_notationName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMEntity_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMEntityReference_INTERFACE_DEFINED__ -#define __IXMLDOMEntityReference_INTERFACE_DEFINED__ - -/* interface IXMLDOMEntityReference */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMEntityReference; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF8E-7B36-11d2-B20E-00C04F983E60") - IXMLDOMEntityReference : public IXMLDOMNode - { - public: - }; - -#else /* C style interface */ - - typedef struct IXMLDOMEntityReferenceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMEntityReference * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMEntityReference * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMEntityReference * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMEntityReference * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMEntityReference * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMEntityReference * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMEntityReference * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXMLDOMEntityReference * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXMLDOMEntityReference * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXMLDOMEntityReference * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXMLDOMEntityReference * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXMLDOMEntityReference * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXMLDOMEntityReference * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXMLDOMEntityReference * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXMLDOMEntityReference * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXMLDOMEntityReference * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXMLDOMEntityReference * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - END_INTERFACE - } IXMLDOMEntityReferenceVtbl; - - interface IXMLDOMEntityReference - { - CONST_VTBL struct IXMLDOMEntityReferenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMEntityReference_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMEntityReference_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMEntityReference_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMEntityReference_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMEntityReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMEntityReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMEntityReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMEntityReference_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXMLDOMEntityReference_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXMLDOMEntityReference_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXMLDOMEntityReference_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXMLDOMEntityReference_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXMLDOMEntityReference_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXMLDOMEntityReference_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXMLDOMEntityReference_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXMLDOMEntityReference_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXMLDOMEntityReference_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXMLDOMEntityReference_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXMLDOMEntityReference_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXMLDOMEntityReference_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXMLDOMEntityReference_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXMLDOMEntityReference_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXMLDOMEntityReference_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXMLDOMEntityReference_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXMLDOMEntityReference_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXMLDOMEntityReference_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXMLDOMEntityReference_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXMLDOMEntityReference_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXMLDOMEntityReference_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXMLDOMEntityReference_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXMLDOMEntityReference_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXMLDOMEntityReference_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXMLDOMEntityReference_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXMLDOMEntityReference_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXMLDOMEntityReference_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXMLDOMEntityReference_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXMLDOMEntityReference_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXMLDOMEntityReference_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXMLDOMEntityReference_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXMLDOMEntityReference_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXMLDOMEntityReference_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXMLDOMEntityReference_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXMLDOMEntityReference_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IXMLDOMEntityReference_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMParseError_INTERFACE_DEFINED__ -#define __IXMLDOMParseError_INTERFACE_DEFINED__ - -/* interface IXMLDOMParseError */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMParseError; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa426-272f-11d2-836f-0000f87a7782") - IXMLDOMParseError : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_errorCode( - /* [out][retval] */ long *errorCode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_url( - /* [out][retval] */ BSTR *urlString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_reason( - /* [out][retval] */ BSTR *reasonString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_srcText( - /* [out][retval] */ BSTR *sourceString) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_line( - /* [out][retval] */ long *lineNumber) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_linepos( - /* [out][retval] */ long *linePosition) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_filepos( - /* [out][retval] */ long *filePosition) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMParseErrorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMParseError * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMParseError * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMParseError * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMParseError * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMParseError * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMParseError * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMParseError * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( - IXMLDOMParseError * This, - /* [out][retval] */ long *errorCode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_url )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *urlString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reason )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *reasonString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_srcText )( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *sourceString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_line )( - IXMLDOMParseError * This, - /* [out][retval] */ long *lineNumber); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_linepos )( - IXMLDOMParseError * This, - /* [out][retval] */ long *linePosition); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filepos )( - IXMLDOMParseError * This, - /* [out][retval] */ long *filePosition); - - END_INTERFACE - } IXMLDOMParseErrorVtbl; - - interface IXMLDOMParseError - { - CONST_VTBL struct IXMLDOMParseErrorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMParseError_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMParseError_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMParseError_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMParseError_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMParseError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMParseError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMParseError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMParseError_get_errorCode(This,errorCode) \ - (This)->lpVtbl -> get_errorCode(This,errorCode) - -#define IXMLDOMParseError_get_url(This,urlString) \ - (This)->lpVtbl -> get_url(This,urlString) - -#define IXMLDOMParseError_get_reason(This,reasonString) \ - (This)->lpVtbl -> get_reason(This,reasonString) - -#define IXMLDOMParseError_get_srcText(This,sourceString) \ - (This)->lpVtbl -> get_srcText(This,sourceString) - -#define IXMLDOMParseError_get_line(This,lineNumber) \ - (This)->lpVtbl -> get_line(This,lineNumber) - -#define IXMLDOMParseError_get_linepos(This,linePosition) \ - (This)->lpVtbl -> get_linepos(This,linePosition) - -#define IXMLDOMParseError_get_filepos(This,filePosition) \ - (This)->lpVtbl -> get_filepos(This,filePosition) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_errorCode_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ long *errorCode); - - -void __RPC_STUB IXMLDOMParseError_get_errorCode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_url_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *urlString); - - -void __RPC_STUB IXMLDOMParseError_get_url_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_reason_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *reasonString); - - -void __RPC_STUB IXMLDOMParseError_get_reason_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_srcText_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ BSTR *sourceString); - - -void __RPC_STUB IXMLDOMParseError_get_srcText_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_line_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ long *lineNumber); - - -void __RPC_STUB IXMLDOMParseError_get_line_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_linepos_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ long *linePosition); - - -void __RPC_STUB IXMLDOMParseError_get_linepos_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_filepos_Proxy( - IXMLDOMParseError * This, - /* [out][retval] */ long *filePosition); - - -void __RPC_STUB IXMLDOMParseError_get_filepos_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMParseError_INTERFACE_DEFINED__ */ - - -#ifndef __IXTLRuntime_INTERFACE_DEFINED__ -#define __IXTLRuntime_INTERFACE_DEFINED__ - -/* interface IXTLRuntime */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXTLRuntime; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa425-272f-11d2-836f-0000f87a7782") - IXTLRuntime : public IXMLDOMNode - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE uniqueID( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pID) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE depth( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pDepth) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE childNumber( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ancestorChildNumber( - /* [in] */ BSTR bstrNodeName, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE absoluteChildNumber( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatIndex( - /* [in] */ long lIndex, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatNumber( - /* [in] */ double dblNumber, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatDate( - /* [in] */ VARIANT varDate, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE formatTime( - /* [in] */ VARIANT varTime, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXTLRuntimeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXTLRuntime * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXTLRuntime * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXTLRuntime * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXTLRuntime * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXTLRuntime * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXTLRuntime * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXTLRuntime * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeName )( - IXTLRuntime * This, - /* [retval][out] */ BSTR *name); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeValue )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeValue )( - IXTLRuntime * This, - /* [in] */ VARIANT value); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeType )( - IXTLRuntime * This, - /* [retval][out] */ DOMNodeType *type); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **parent); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_childNodes )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNodeList **childList); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **firstChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **lastChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **previousSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNode **nextSibling); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMNamedNodeMap **attributeMap); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *insertBefore )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ VARIANT refChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *replaceChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [in] */ IXMLDOMNode *oldChild, - /* [retval][out] */ IXMLDOMNode **outOldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *childNode, - /* [retval][out] */ IXMLDOMNode **oldChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *appendChild )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *newChild, - /* [retval][out] */ IXMLDOMNode **outNewChild); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *hasChildNodes )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT_BOOL *hasChild); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerDocument )( - IXTLRuntime * This, - /* [retval][out] */ IXMLDOMDocument **DOMDocument); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *cloneNode )( - IXTLRuntime * This, - /* [in] */ VARIANT_BOOL deep, - /* [retval][out] */ IXMLDOMNode **cloneRoot); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypeString )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *nodeType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *text); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXTLRuntime * This, - /* [in] */ BSTR text); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_specified )( - IXTLRuntime * This, - /* [retval][out] */ VARIANT_BOOL *isSpecified); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_definition )( - IXTLRuntime * This, - /* [out][retval] */ IXMLDOMNode **definitionNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeTypedValue )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT *typedValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_nodeTypedValue )( - IXTLRuntime * This, - /* [in] */ VARIANT typedValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataType )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT *dataTypeName); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_dataType )( - IXTLRuntime * This, - /* [in] */ BSTR dataTypeName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_xml )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNode )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [out][retval] */ BSTR *xmlString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectNodes )( - IXTLRuntime * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNodeList **resultList); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *selectSingleNode )( - IXTLRuntime * This, - /* [in] */ BSTR queryString, - /* [out][retval] */ IXMLDOMNode **resultNode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parsed )( - IXTLRuntime * This, - /* [out][retval] */ VARIANT_BOOL *isParsed); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_namespaceURI )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_prefix )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *prefixString); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseName )( - IXTLRuntime * This, - /* [out][retval] */ BSTR *nameString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transformNodeToObject )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *stylesheet, - /* [in] */ VARIANT outputObject); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *uniqueID )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pID); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *depth )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pDepth); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *childNumber )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ancestorChildNumber )( - IXTLRuntime * This, - /* [in] */ BSTR bstrNodeName, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *absoluteChildNumber )( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatIndex )( - IXTLRuntime * This, - /* [in] */ long lIndex, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatNumber )( - IXTLRuntime * This, - /* [in] */ double dblNumber, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatDate )( - IXTLRuntime * This, - /* [in] */ VARIANT varDate, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *formatTime )( - IXTLRuntime * This, - /* [in] */ VARIANT varTime, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - END_INTERFACE - } IXTLRuntimeVtbl; - - interface IXTLRuntime - { - CONST_VTBL struct IXTLRuntimeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXTLRuntime_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXTLRuntime_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXTLRuntime_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXTLRuntime_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXTLRuntime_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXTLRuntime_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXTLRuntime_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXTLRuntime_get_nodeName(This,name) \ - (This)->lpVtbl -> get_nodeName(This,name) - -#define IXTLRuntime_get_nodeValue(This,value) \ - (This)->lpVtbl -> get_nodeValue(This,value) - -#define IXTLRuntime_put_nodeValue(This,value) \ - (This)->lpVtbl -> put_nodeValue(This,value) - -#define IXTLRuntime_get_nodeType(This,type) \ - (This)->lpVtbl -> get_nodeType(This,type) - -#define IXTLRuntime_get_parentNode(This,parent) \ - (This)->lpVtbl -> get_parentNode(This,parent) - -#define IXTLRuntime_get_childNodes(This,childList) \ - (This)->lpVtbl -> get_childNodes(This,childList) - -#define IXTLRuntime_get_firstChild(This,firstChild) \ - (This)->lpVtbl -> get_firstChild(This,firstChild) - -#define IXTLRuntime_get_lastChild(This,lastChild) \ - (This)->lpVtbl -> get_lastChild(This,lastChild) - -#define IXTLRuntime_get_previousSibling(This,previousSibling) \ - (This)->lpVtbl -> get_previousSibling(This,previousSibling) - -#define IXTLRuntime_get_nextSibling(This,nextSibling) \ - (This)->lpVtbl -> get_nextSibling(This,nextSibling) - -#define IXTLRuntime_get_attributes(This,attributeMap) \ - (This)->lpVtbl -> get_attributes(This,attributeMap) - -#define IXTLRuntime_insertBefore(This,newChild,refChild,outNewChild) \ - (This)->lpVtbl -> insertBefore(This,newChild,refChild,outNewChild) - -#define IXTLRuntime_replaceChild(This,newChild,oldChild,outOldChild) \ - (This)->lpVtbl -> replaceChild(This,newChild,oldChild,outOldChild) - -#define IXTLRuntime_removeChild(This,childNode,oldChild) \ - (This)->lpVtbl -> removeChild(This,childNode,oldChild) - -#define IXTLRuntime_appendChild(This,newChild,outNewChild) \ - (This)->lpVtbl -> appendChild(This,newChild,outNewChild) - -#define IXTLRuntime_hasChildNodes(This,hasChild) \ - (This)->lpVtbl -> hasChildNodes(This,hasChild) - -#define IXTLRuntime_get_ownerDocument(This,DOMDocument) \ - (This)->lpVtbl -> get_ownerDocument(This,DOMDocument) - -#define IXTLRuntime_cloneNode(This,deep,cloneRoot) \ - (This)->lpVtbl -> cloneNode(This,deep,cloneRoot) - -#define IXTLRuntime_get_nodeTypeString(This,nodeType) \ - (This)->lpVtbl -> get_nodeTypeString(This,nodeType) - -#define IXTLRuntime_get_text(This,text) \ - (This)->lpVtbl -> get_text(This,text) - -#define IXTLRuntime_put_text(This,text) \ - (This)->lpVtbl -> put_text(This,text) - -#define IXTLRuntime_get_specified(This,isSpecified) \ - (This)->lpVtbl -> get_specified(This,isSpecified) - -#define IXTLRuntime_get_definition(This,definitionNode) \ - (This)->lpVtbl -> get_definition(This,definitionNode) - -#define IXTLRuntime_get_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> get_nodeTypedValue(This,typedValue) - -#define IXTLRuntime_put_nodeTypedValue(This,typedValue) \ - (This)->lpVtbl -> put_nodeTypedValue(This,typedValue) - -#define IXTLRuntime_get_dataType(This,dataTypeName) \ - (This)->lpVtbl -> get_dataType(This,dataTypeName) - -#define IXTLRuntime_put_dataType(This,dataTypeName) \ - (This)->lpVtbl -> put_dataType(This,dataTypeName) - -#define IXTLRuntime_get_xml(This,xmlString) \ - (This)->lpVtbl -> get_xml(This,xmlString) - -#define IXTLRuntime_transformNode(This,stylesheet,xmlString) \ - (This)->lpVtbl -> transformNode(This,stylesheet,xmlString) - -#define IXTLRuntime_selectNodes(This,queryString,resultList) \ - (This)->lpVtbl -> selectNodes(This,queryString,resultList) - -#define IXTLRuntime_selectSingleNode(This,queryString,resultNode) \ - (This)->lpVtbl -> selectSingleNode(This,queryString,resultNode) - -#define IXTLRuntime_get_parsed(This,isParsed) \ - (This)->lpVtbl -> get_parsed(This,isParsed) - -#define IXTLRuntime_get_namespaceURI(This,namespaceURI) \ - (This)->lpVtbl -> get_namespaceURI(This,namespaceURI) - -#define IXTLRuntime_get_prefix(This,prefixString) \ - (This)->lpVtbl -> get_prefix(This,prefixString) - -#define IXTLRuntime_get_baseName(This,nameString) \ - (This)->lpVtbl -> get_baseName(This,nameString) - -#define IXTLRuntime_transformNodeToObject(This,stylesheet,outputObject) \ - (This)->lpVtbl -> transformNodeToObject(This,stylesheet,outputObject) - - -#define IXTLRuntime_uniqueID(This,pNode,pID) \ - (This)->lpVtbl -> uniqueID(This,pNode,pID) - -#define IXTLRuntime_depth(This,pNode,pDepth) \ - (This)->lpVtbl -> depth(This,pNode,pDepth) - -#define IXTLRuntime_childNumber(This,pNode,pNumber) \ - (This)->lpVtbl -> childNumber(This,pNode,pNumber) - -#define IXTLRuntime_ancestorChildNumber(This,bstrNodeName,pNode,pNumber) \ - (This)->lpVtbl -> ancestorChildNumber(This,bstrNodeName,pNode,pNumber) - -#define IXTLRuntime_absoluteChildNumber(This,pNode,pNumber) \ - (This)->lpVtbl -> absoluteChildNumber(This,pNode,pNumber) - -#define IXTLRuntime_formatIndex(This,lIndex,bstrFormat,pbstrFormattedString) \ - (This)->lpVtbl -> formatIndex(This,lIndex,bstrFormat,pbstrFormattedString) - -#define IXTLRuntime_formatNumber(This,dblNumber,bstrFormat,pbstrFormattedString) \ - (This)->lpVtbl -> formatNumber(This,dblNumber,bstrFormat,pbstrFormattedString) - -#define IXTLRuntime_formatDate(This,varDate,bstrFormat,varDestLocale,pbstrFormattedString) \ - (This)->lpVtbl -> formatDate(This,varDate,bstrFormat,varDestLocale,pbstrFormattedString) - -#define IXTLRuntime_formatTime(This,varTime,bstrFormat,varDestLocale,pbstrFormattedString) \ - (This)->lpVtbl -> formatTime(This,varTime,bstrFormat,varDestLocale,pbstrFormattedString) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_uniqueID_Proxy( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pID); - - -void __RPC_STUB IXTLRuntime_uniqueID_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_depth_Proxy( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pDepth); - - -void __RPC_STUB IXTLRuntime_depth_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_childNumber_Proxy( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - -void __RPC_STUB IXTLRuntime_childNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_ancestorChildNumber_Proxy( - IXTLRuntime * This, - /* [in] */ BSTR bstrNodeName, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - -void __RPC_STUB IXTLRuntime_ancestorChildNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_absoluteChildNumber_Proxy( - IXTLRuntime * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ long *pNumber); - - -void __RPC_STUB IXTLRuntime_absoluteChildNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_formatIndex_Proxy( - IXTLRuntime * This, - /* [in] */ long lIndex, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - -void __RPC_STUB IXTLRuntime_formatIndex_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_formatNumber_Proxy( - IXTLRuntime * This, - /* [in] */ double dblNumber, - /* [in] */ BSTR bstrFormat, - /* [retval][out] */ BSTR *pbstrFormattedString); - - -void __RPC_STUB IXTLRuntime_formatNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_formatDate_Proxy( - IXTLRuntime * This, - /* [in] */ VARIANT varDate, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - -void __RPC_STUB IXTLRuntime_formatDate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXTLRuntime_formatTime_Proxy( - IXTLRuntime * This, - /* [in] */ VARIANT varTime, - /* [in] */ BSTR bstrFormat, - /* [optional][in] */ VARIANT varDestLocale, - /* [retval][out] */ BSTR *pbstrFormattedString); - - -void __RPC_STUB IXTLRuntime_formatTime_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXTLRuntime_INTERFACE_DEFINED__ */ - - -#ifndef __IXSLTemplate_INTERFACE_DEFINED__ -#define __IXSLTemplate_INTERFACE_DEFINED__ - -/* interface IXSLTemplate */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXSLTemplate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF93-7B36-11d2-B20E-00C04F983E60") - IXSLTemplate : public IDispatch - { - public: - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_stylesheet( - /* [in] */ IXMLDOMNode *stylesheet) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_stylesheet( - /* [retval][out] */ IXMLDOMNode **stylesheet) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createProcessor( - /* [retval][out] */ IXSLProcessor **ppProcessor) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXSLTemplateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXSLTemplate * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXSLTemplate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXSLTemplate * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXSLTemplate * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXSLTemplate * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXSLTemplate * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXSLTemplate * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_stylesheet )( - IXSLTemplate * This, - /* [in] */ IXMLDOMNode *stylesheet); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stylesheet )( - IXSLTemplate * This, - /* [retval][out] */ IXMLDOMNode **stylesheet); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createProcessor )( - IXSLTemplate * This, - /* [retval][out] */ IXSLProcessor **ppProcessor); - - END_INTERFACE - } IXSLTemplateVtbl; - - interface IXSLTemplate - { - CONST_VTBL struct IXSLTemplateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXSLTemplate_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXSLTemplate_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXSLTemplate_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXSLTemplate_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXSLTemplate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXSLTemplate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXSLTemplate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXSLTemplate_putref_stylesheet(This,stylesheet) \ - (This)->lpVtbl -> putref_stylesheet(This,stylesheet) - -#define IXSLTemplate_get_stylesheet(This,stylesheet) \ - (This)->lpVtbl -> get_stylesheet(This,stylesheet) - -#define IXSLTemplate_createProcessor(This,ppProcessor) \ - (This)->lpVtbl -> createProcessor(This,ppProcessor) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IXSLTemplate_putref_stylesheet_Proxy( - IXSLTemplate * This, - /* [in] */ IXMLDOMNode *stylesheet); - - -void __RPC_STUB IXSLTemplate_putref_stylesheet_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLTemplate_get_stylesheet_Proxy( - IXSLTemplate * This, - /* [retval][out] */ IXMLDOMNode **stylesheet); - - -void __RPC_STUB IXSLTemplate_get_stylesheet_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLTemplate_createProcessor_Proxy( - IXSLTemplate * This, - /* [retval][out] */ IXSLProcessor **ppProcessor); - - -void __RPC_STUB IXSLTemplate_createProcessor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXSLTemplate_INTERFACE_DEFINED__ */ - - -#ifndef __IXSLProcessor_INTERFACE_DEFINED__ -#define __IXSLProcessor_INTERFACE_DEFINED__ - -/* interface IXSLProcessor */ -/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXSLProcessor; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2933BF92-7B36-11d2-B20E-00C04F983E60") - IXSLProcessor : public IDispatch - { - public: - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_input( - /* [in] */ VARIANT var) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_input( - /* [retval][out] */ VARIANT *pVar) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ownerTemplate( - /* [retval][out] */ IXSLTemplate **ppTemplate) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setStartMode( - /* [in] */ BSTR mode, - /* [defaultvalue][in] */ BSTR namespaceURI = L"") = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_startMode( - /* [retval][out] */ BSTR *mode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_startModeURI( - /* [retval][out] */ BSTR *namespaceURI) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_output( - /* [in] */ VARIANT output) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_output( - /* [retval][out] */ VARIANT *pOutput) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE transform( - /* [retval][out] */ VARIANT_BOOL *pDone) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE reset( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [retval][out] */ long *pReadyState) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addParameter( - /* [in] */ BSTR baseName, - /* [in] */ VARIANT parameter, - /* [defaultvalue][in] */ BSTR namespaceURI = L"") = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addObject( - /* [in] */ IDispatch *obj, - /* [in] */ BSTR namespaceURI) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_stylesheet( - /* [retval][out] */ IXMLDOMNode **stylesheet) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXSLProcessorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXSLProcessor * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXSLProcessor * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXSLProcessor * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXSLProcessor * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXSLProcessor * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXSLProcessor * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXSLProcessor * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_input )( - IXSLProcessor * This, - /* [in] */ VARIANT var); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_input )( - IXSLProcessor * This, - /* [retval][out] */ VARIANT *pVar); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ownerTemplate )( - IXSLProcessor * This, - /* [retval][out] */ IXSLTemplate **ppTemplate); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setStartMode )( - IXSLProcessor * This, - /* [in] */ BSTR mode, - /* [defaultvalue][in] */ BSTR namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_startMode )( - IXSLProcessor * This, - /* [retval][out] */ BSTR *mode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_startModeURI )( - IXSLProcessor * This, - /* [retval][out] */ BSTR *namespaceURI); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_output )( - IXSLProcessor * This, - /* [in] */ VARIANT output); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( - IXSLProcessor * This, - /* [retval][out] */ VARIANT *pOutput); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *transform )( - IXSLProcessor * This, - /* [retval][out] */ VARIANT_BOOL *pDone); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXSLProcessor * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXSLProcessor * This, - /* [retval][out] */ long *pReadyState); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addParameter )( - IXSLProcessor * This, - /* [in] */ BSTR baseName, - /* [in] */ VARIANT parameter, - /* [defaultvalue][in] */ BSTR namespaceURI); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addObject )( - IXSLProcessor * This, - /* [in] */ IDispatch *obj, - /* [in] */ BSTR namespaceURI); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_stylesheet )( - IXSLProcessor * This, - /* [retval][out] */ IXMLDOMNode **stylesheet); - - END_INTERFACE - } IXSLProcessorVtbl; - - interface IXSLProcessor - { - CONST_VTBL struct IXSLProcessorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXSLProcessor_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXSLProcessor_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXSLProcessor_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXSLProcessor_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXSLProcessor_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXSLProcessor_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXSLProcessor_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXSLProcessor_put_input(This,var) \ - (This)->lpVtbl -> put_input(This,var) - -#define IXSLProcessor_get_input(This,pVar) \ - (This)->lpVtbl -> get_input(This,pVar) - -#define IXSLProcessor_get_ownerTemplate(This,ppTemplate) \ - (This)->lpVtbl -> get_ownerTemplate(This,ppTemplate) - -#define IXSLProcessor_setStartMode(This,mode,namespaceURI) \ - (This)->lpVtbl -> setStartMode(This,mode,namespaceURI) - -#define IXSLProcessor_get_startMode(This,mode) \ - (This)->lpVtbl -> get_startMode(This,mode) - -#define IXSLProcessor_get_startModeURI(This,namespaceURI) \ - (This)->lpVtbl -> get_startModeURI(This,namespaceURI) - -#define IXSLProcessor_put_output(This,output) \ - (This)->lpVtbl -> put_output(This,output) - -#define IXSLProcessor_get_output(This,pOutput) \ - (This)->lpVtbl -> get_output(This,pOutput) - -#define IXSLProcessor_transform(This,pDone) \ - (This)->lpVtbl -> transform(This,pDone) - -#define IXSLProcessor_reset(This) \ - (This)->lpVtbl -> reset(This) - -#define IXSLProcessor_get_readyState(This,pReadyState) \ - (This)->lpVtbl -> get_readyState(This,pReadyState) - -#define IXSLProcessor_addParameter(This,baseName,parameter,namespaceURI) \ - (This)->lpVtbl -> addParameter(This,baseName,parameter,namespaceURI) - -#define IXSLProcessor_addObject(This,obj,namespaceURI) \ - (This)->lpVtbl -> addObject(This,obj,namespaceURI) - -#define IXSLProcessor_get_stylesheet(This,stylesheet) \ - (This)->lpVtbl -> get_stylesheet(This,stylesheet) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_put_input_Proxy( - IXSLProcessor * This, - /* [in] */ VARIANT var); - - -void __RPC_STUB IXSLProcessor_put_input_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_input_Proxy( - IXSLProcessor * This, - /* [retval][out] */ VARIANT *pVar); - - -void __RPC_STUB IXSLProcessor_get_input_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_ownerTemplate_Proxy( - IXSLProcessor * This, - /* [retval][out] */ IXSLTemplate **ppTemplate); - - -void __RPC_STUB IXSLProcessor_get_ownerTemplate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_setStartMode_Proxy( - IXSLProcessor * This, - /* [in] */ BSTR mode, - /* [defaultvalue][in] */ BSTR namespaceURI); - - -void __RPC_STUB IXSLProcessor_setStartMode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_startMode_Proxy( - IXSLProcessor * This, - /* [retval][out] */ BSTR *mode); - - -void __RPC_STUB IXSLProcessor_get_startMode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_startModeURI_Proxy( - IXSLProcessor * This, - /* [retval][out] */ BSTR *namespaceURI); - - -void __RPC_STUB IXSLProcessor_get_startModeURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_put_output_Proxy( - IXSLProcessor * This, - /* [in] */ VARIANT output); - - -void __RPC_STUB IXSLProcessor_put_output_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_output_Proxy( - IXSLProcessor * This, - /* [retval][out] */ VARIANT *pOutput); - - -void __RPC_STUB IXSLProcessor_get_output_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_transform_Proxy( - IXSLProcessor * This, - /* [retval][out] */ VARIANT_BOOL *pDone); - - -void __RPC_STUB IXSLProcessor_transform_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_reset_Proxy( - IXSLProcessor * This); - - -void __RPC_STUB IXSLProcessor_reset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_readyState_Proxy( - IXSLProcessor * This, - /* [retval][out] */ long *pReadyState); - - -void __RPC_STUB IXSLProcessor_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_addParameter_Proxy( - IXSLProcessor * This, - /* [in] */ BSTR baseName, - /* [in] */ VARIANT parameter, - /* [defaultvalue][in] */ BSTR namespaceURI); - - -void __RPC_STUB IXSLProcessor_addParameter_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_addObject_Proxy( - IXSLProcessor * This, - /* [in] */ IDispatch *obj, - /* [in] */ BSTR namespaceURI); - - -void __RPC_STUB IXSLProcessor_addObject_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXSLProcessor_get_stylesheet_Proxy( - IXSLProcessor * This, - /* [retval][out] */ IXMLDOMNode **stylesheet); - - -void __RPC_STUB IXSLProcessor_get_stylesheet_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXSLProcessor_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXXMLReader_INTERFACE_DEFINED__ -#define __ISAXXMLReader_INTERFACE_DEFINED__ - -/* interface ISAXXMLReader */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXXMLReader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a4f96ed0-f829-476e-81c0-cdc7bd2a0802") - ISAXXMLReader : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE getFeature( - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT_BOOL *pvfValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE putFeature( - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT_BOOL vfValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE getProperty( - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT *pvarValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE putProperty( - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT varValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE getEntityResolver( - /* [retval][out] */ ISAXEntityResolver **ppResolver) = 0; - - virtual HRESULT STDMETHODCALLTYPE putEntityResolver( - /* [in] */ ISAXEntityResolver *pResolver) = 0; - - virtual HRESULT STDMETHODCALLTYPE getContentHandler( - /* [retval][out] */ ISAXContentHandler **ppHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE putContentHandler( - /* [in] */ ISAXContentHandler *pHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE getDTDHandler( - /* [retval][out] */ ISAXDTDHandler **ppHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE putDTDHandler( - /* [in] */ ISAXDTDHandler *pHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE getErrorHandler( - /* [retval][out] */ ISAXErrorHandler **ppHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE putErrorHandler( - /* [in] */ ISAXErrorHandler *pHandler) = 0; - - virtual HRESULT STDMETHODCALLTYPE getBaseURL( - /* [retval][out] */ const wchar_t **ppwchBaseUrl) = 0; - - virtual HRESULT STDMETHODCALLTYPE putBaseURL( - /* [in] */ const wchar_t *pwchBaseUrl) = 0; - - virtual HRESULT STDMETHODCALLTYPE getSecureBaseURL( - /* [retval][out] */ const wchar_t **ppwchSecureBaseUrl) = 0; - - virtual HRESULT STDMETHODCALLTYPE putSecureBaseURL( - /* [in] */ const wchar_t *pwchSecureBaseUrl) = 0; - - virtual HRESULT STDMETHODCALLTYPE parse( - /* [in] */ VARIANT varInput) = 0; - - virtual HRESULT STDMETHODCALLTYPE parseURL( - /* [in] */ const wchar_t *pwchUrl) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXXMLReaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXXMLReader * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXXMLReader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXXMLReader * This); - - HRESULT ( STDMETHODCALLTYPE *getFeature )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT_BOOL *pvfValue); - - HRESULT ( STDMETHODCALLTYPE *putFeature )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT_BOOL vfValue); - - HRESULT ( STDMETHODCALLTYPE *getProperty )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT *pvarValue); - - HRESULT ( STDMETHODCALLTYPE *putProperty )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT varValue); - - HRESULT ( STDMETHODCALLTYPE *getEntityResolver )( - ISAXXMLReader * This, - /* [retval][out] */ ISAXEntityResolver **ppResolver); - - HRESULT ( STDMETHODCALLTYPE *putEntityResolver )( - ISAXXMLReader * This, - /* [in] */ ISAXEntityResolver *pResolver); - - HRESULT ( STDMETHODCALLTYPE *getContentHandler )( - ISAXXMLReader * This, - /* [retval][out] */ ISAXContentHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putContentHandler )( - ISAXXMLReader * This, - /* [in] */ ISAXContentHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getDTDHandler )( - ISAXXMLReader * This, - /* [retval][out] */ ISAXDTDHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putDTDHandler )( - ISAXXMLReader * This, - /* [in] */ ISAXDTDHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getErrorHandler )( - ISAXXMLReader * This, - /* [retval][out] */ ISAXErrorHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putErrorHandler )( - ISAXXMLReader * This, - /* [in] */ ISAXErrorHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getBaseURL )( - ISAXXMLReader * This, - /* [retval][out] */ const wchar_t **ppwchBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *putBaseURL )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *getSecureBaseURL )( - ISAXXMLReader * This, - /* [retval][out] */ const wchar_t **ppwchSecureBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *putSecureBaseURL )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchSecureBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *parse )( - ISAXXMLReader * This, - /* [in] */ VARIANT varInput); - - HRESULT ( STDMETHODCALLTYPE *parseURL )( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchUrl); - - END_INTERFACE - } ISAXXMLReaderVtbl; - - interface ISAXXMLReader - { - CONST_VTBL struct ISAXXMLReaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXXMLReader_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXXMLReader_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXXMLReader_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXXMLReader_getFeature(This,pwchName,pvfValue) \ - (This)->lpVtbl -> getFeature(This,pwchName,pvfValue) - -#define ISAXXMLReader_putFeature(This,pwchName,vfValue) \ - (This)->lpVtbl -> putFeature(This,pwchName,vfValue) - -#define ISAXXMLReader_getProperty(This,pwchName,pvarValue) \ - (This)->lpVtbl -> getProperty(This,pwchName,pvarValue) - -#define ISAXXMLReader_putProperty(This,pwchName,varValue) \ - (This)->lpVtbl -> putProperty(This,pwchName,varValue) - -#define ISAXXMLReader_getEntityResolver(This,ppResolver) \ - (This)->lpVtbl -> getEntityResolver(This,ppResolver) - -#define ISAXXMLReader_putEntityResolver(This,pResolver) \ - (This)->lpVtbl -> putEntityResolver(This,pResolver) - -#define ISAXXMLReader_getContentHandler(This,ppHandler) \ - (This)->lpVtbl -> getContentHandler(This,ppHandler) - -#define ISAXXMLReader_putContentHandler(This,pHandler) \ - (This)->lpVtbl -> putContentHandler(This,pHandler) - -#define ISAXXMLReader_getDTDHandler(This,ppHandler) \ - (This)->lpVtbl -> getDTDHandler(This,ppHandler) - -#define ISAXXMLReader_putDTDHandler(This,pHandler) \ - (This)->lpVtbl -> putDTDHandler(This,pHandler) - -#define ISAXXMLReader_getErrorHandler(This,ppHandler) \ - (This)->lpVtbl -> getErrorHandler(This,ppHandler) - -#define ISAXXMLReader_putErrorHandler(This,pHandler) \ - (This)->lpVtbl -> putErrorHandler(This,pHandler) - -#define ISAXXMLReader_getBaseURL(This,ppwchBaseUrl) \ - (This)->lpVtbl -> getBaseURL(This,ppwchBaseUrl) - -#define ISAXXMLReader_putBaseURL(This,pwchBaseUrl) \ - (This)->lpVtbl -> putBaseURL(This,pwchBaseUrl) - -#define ISAXXMLReader_getSecureBaseURL(This,ppwchSecureBaseUrl) \ - (This)->lpVtbl -> getSecureBaseURL(This,ppwchSecureBaseUrl) - -#define ISAXXMLReader_putSecureBaseURL(This,pwchSecureBaseUrl) \ - (This)->lpVtbl -> putSecureBaseURL(This,pwchSecureBaseUrl) - -#define ISAXXMLReader_parse(This,varInput) \ - (This)->lpVtbl -> parse(This,varInput) - -#define ISAXXMLReader_parseURL(This,pwchUrl) \ - (This)->lpVtbl -> parseURL(This,pwchUrl) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getFeature_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT_BOOL *pvfValue); - - -void __RPC_STUB ISAXXMLReader_getFeature_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putFeature_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT_BOOL vfValue); - - -void __RPC_STUB ISAXXMLReader_putFeature_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getProperty_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT *pvarValue); - - -void __RPC_STUB ISAXXMLReader_getProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putProperty_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT varValue); - - -void __RPC_STUB ISAXXMLReader_putProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getEntityResolver_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ ISAXEntityResolver **ppResolver); - - -void __RPC_STUB ISAXXMLReader_getEntityResolver_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putEntityResolver_Proxy( - ISAXXMLReader * This, - /* [in] */ ISAXEntityResolver *pResolver); - - -void __RPC_STUB ISAXXMLReader_putEntityResolver_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getContentHandler_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ ISAXContentHandler **ppHandler); - - -void __RPC_STUB ISAXXMLReader_getContentHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putContentHandler_Proxy( - ISAXXMLReader * This, - /* [in] */ ISAXContentHandler *pHandler); - - -void __RPC_STUB ISAXXMLReader_putContentHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getDTDHandler_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ ISAXDTDHandler **ppHandler); - - -void __RPC_STUB ISAXXMLReader_getDTDHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putDTDHandler_Proxy( - ISAXXMLReader * This, - /* [in] */ ISAXDTDHandler *pHandler); - - -void __RPC_STUB ISAXXMLReader_putDTDHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getErrorHandler_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ ISAXErrorHandler **ppHandler); - - -void __RPC_STUB ISAXXMLReader_getErrorHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putErrorHandler_Proxy( - ISAXXMLReader * This, - /* [in] */ ISAXErrorHandler *pHandler); - - -void __RPC_STUB ISAXXMLReader_putErrorHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getBaseURL_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ const wchar_t **ppwchBaseUrl); - - -void __RPC_STUB ISAXXMLReader_getBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putBaseURL_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchBaseUrl); - - -void __RPC_STUB ISAXXMLReader_putBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_getSecureBaseURL_Proxy( - ISAXXMLReader * This, - /* [retval][out] */ const wchar_t **ppwchSecureBaseUrl); - - -void __RPC_STUB ISAXXMLReader_getSecureBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_putSecureBaseURL_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchSecureBaseUrl); - - -void __RPC_STUB ISAXXMLReader_putSecureBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_parse_Proxy( - ISAXXMLReader * This, - /* [in] */ VARIANT varInput); - - -void __RPC_STUB ISAXXMLReader_parse_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLReader_parseURL_Proxy( - ISAXXMLReader * This, - /* [in] */ const wchar_t *pwchUrl); - - -void __RPC_STUB ISAXXMLReader_parseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXXMLReader_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXXMLFilter_INTERFACE_DEFINED__ -#define __ISAXXMLFilter_INTERFACE_DEFINED__ - -/* interface ISAXXMLFilter */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXXMLFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("70409222-ca09-4475-acb8-40312fe8d145") - ISAXXMLFilter : public ISAXXMLReader - { - public: - virtual HRESULT STDMETHODCALLTYPE getParent( - /* [retval][out] */ ISAXXMLReader **ppReader) = 0; - - virtual HRESULT STDMETHODCALLTYPE putParent( - /* [in] */ ISAXXMLReader *pReader) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXXMLFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXXMLFilter * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXXMLFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXXMLFilter * This); - - HRESULT ( STDMETHODCALLTYPE *getFeature )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT_BOOL *pvfValue); - - HRESULT ( STDMETHODCALLTYPE *putFeature )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT_BOOL vfValue); - - HRESULT ( STDMETHODCALLTYPE *getProperty )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchName, - /* [retval][out] */ VARIANT *pvarValue); - - HRESULT ( STDMETHODCALLTYPE *putProperty )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ VARIANT varValue); - - HRESULT ( STDMETHODCALLTYPE *getEntityResolver )( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXEntityResolver **ppResolver); - - HRESULT ( STDMETHODCALLTYPE *putEntityResolver )( - ISAXXMLFilter * This, - /* [in] */ ISAXEntityResolver *pResolver); - - HRESULT ( STDMETHODCALLTYPE *getContentHandler )( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXContentHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putContentHandler )( - ISAXXMLFilter * This, - /* [in] */ ISAXContentHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getDTDHandler )( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXDTDHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putDTDHandler )( - ISAXXMLFilter * This, - /* [in] */ ISAXDTDHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getErrorHandler )( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXErrorHandler **ppHandler); - - HRESULT ( STDMETHODCALLTYPE *putErrorHandler )( - ISAXXMLFilter * This, - /* [in] */ ISAXErrorHandler *pHandler); - - HRESULT ( STDMETHODCALLTYPE *getBaseURL )( - ISAXXMLFilter * This, - /* [retval][out] */ const wchar_t **ppwchBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *putBaseURL )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *getSecureBaseURL )( - ISAXXMLFilter * This, - /* [retval][out] */ const wchar_t **ppwchSecureBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *putSecureBaseURL )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchSecureBaseUrl); - - HRESULT ( STDMETHODCALLTYPE *parse )( - ISAXXMLFilter * This, - /* [in] */ VARIANT varInput); - - HRESULT ( STDMETHODCALLTYPE *parseURL )( - ISAXXMLFilter * This, - /* [in] */ const wchar_t *pwchUrl); - - HRESULT ( STDMETHODCALLTYPE *getParent )( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXXMLReader **ppReader); - - HRESULT ( STDMETHODCALLTYPE *putParent )( - ISAXXMLFilter * This, - /* [in] */ ISAXXMLReader *pReader); - - END_INTERFACE - } ISAXXMLFilterVtbl; - - interface ISAXXMLFilter - { - CONST_VTBL struct ISAXXMLFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXXMLFilter_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXXMLFilter_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXXMLFilter_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXXMLFilter_getFeature(This,pwchName,pvfValue) \ - (This)->lpVtbl -> getFeature(This,pwchName,pvfValue) - -#define ISAXXMLFilter_putFeature(This,pwchName,vfValue) \ - (This)->lpVtbl -> putFeature(This,pwchName,vfValue) - -#define ISAXXMLFilter_getProperty(This,pwchName,pvarValue) \ - (This)->lpVtbl -> getProperty(This,pwchName,pvarValue) - -#define ISAXXMLFilter_putProperty(This,pwchName,varValue) \ - (This)->lpVtbl -> putProperty(This,pwchName,varValue) - -#define ISAXXMLFilter_getEntityResolver(This,ppResolver) \ - (This)->lpVtbl -> getEntityResolver(This,ppResolver) - -#define ISAXXMLFilter_putEntityResolver(This,pResolver) \ - (This)->lpVtbl -> putEntityResolver(This,pResolver) - -#define ISAXXMLFilter_getContentHandler(This,ppHandler) \ - (This)->lpVtbl -> getContentHandler(This,ppHandler) - -#define ISAXXMLFilter_putContentHandler(This,pHandler) \ - (This)->lpVtbl -> putContentHandler(This,pHandler) - -#define ISAXXMLFilter_getDTDHandler(This,ppHandler) \ - (This)->lpVtbl -> getDTDHandler(This,ppHandler) - -#define ISAXXMLFilter_putDTDHandler(This,pHandler) \ - (This)->lpVtbl -> putDTDHandler(This,pHandler) - -#define ISAXXMLFilter_getErrorHandler(This,ppHandler) \ - (This)->lpVtbl -> getErrorHandler(This,ppHandler) - -#define ISAXXMLFilter_putErrorHandler(This,pHandler) \ - (This)->lpVtbl -> putErrorHandler(This,pHandler) - -#define ISAXXMLFilter_getBaseURL(This,ppwchBaseUrl) \ - (This)->lpVtbl -> getBaseURL(This,ppwchBaseUrl) - -#define ISAXXMLFilter_putBaseURL(This,pwchBaseUrl) \ - (This)->lpVtbl -> putBaseURL(This,pwchBaseUrl) - -#define ISAXXMLFilter_getSecureBaseURL(This,ppwchSecureBaseUrl) \ - (This)->lpVtbl -> getSecureBaseURL(This,ppwchSecureBaseUrl) - -#define ISAXXMLFilter_putSecureBaseURL(This,pwchSecureBaseUrl) \ - (This)->lpVtbl -> putSecureBaseURL(This,pwchSecureBaseUrl) - -#define ISAXXMLFilter_parse(This,varInput) \ - (This)->lpVtbl -> parse(This,varInput) - -#define ISAXXMLFilter_parseURL(This,pwchUrl) \ - (This)->lpVtbl -> parseURL(This,pwchUrl) - - -#define ISAXXMLFilter_getParent(This,ppReader) \ - (This)->lpVtbl -> getParent(This,ppReader) - -#define ISAXXMLFilter_putParent(This,pReader) \ - (This)->lpVtbl -> putParent(This,pReader) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXXMLFilter_getParent_Proxy( - ISAXXMLFilter * This, - /* [retval][out] */ ISAXXMLReader **ppReader); - - -void __RPC_STUB ISAXXMLFilter_getParent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXXMLFilter_putParent_Proxy( - ISAXXMLFilter * This, - /* [in] */ ISAXXMLReader *pReader); - - -void __RPC_STUB ISAXXMLFilter_putParent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXXMLFilter_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXLocator_INTERFACE_DEFINED__ -#define __ISAXLocator_INTERFACE_DEFINED__ - -/* interface ISAXLocator */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXLocator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9b7e472a-0de4-4640-bff3-84d38a051c31") - ISAXLocator : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE getColumnNumber( - /* [retval][out] */ int *pnColumn) = 0; - - virtual HRESULT STDMETHODCALLTYPE getLineNumber( - /* [retval][out] */ int *pnLine) = 0; - - virtual HRESULT STDMETHODCALLTYPE getPublicId( - /* [retval][out] */ const wchar_t **ppwchPublicId) = 0; - - virtual HRESULT STDMETHODCALLTYPE getSystemId( - /* [retval][out] */ const wchar_t **ppwchSystemId) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXLocatorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXLocator * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXLocator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXLocator * This); - - HRESULT ( STDMETHODCALLTYPE *getColumnNumber )( - ISAXLocator * This, - /* [retval][out] */ int *pnColumn); - - HRESULT ( STDMETHODCALLTYPE *getLineNumber )( - ISAXLocator * This, - /* [retval][out] */ int *pnLine); - - HRESULT ( STDMETHODCALLTYPE *getPublicId )( - ISAXLocator * This, - /* [retval][out] */ const wchar_t **ppwchPublicId); - - HRESULT ( STDMETHODCALLTYPE *getSystemId )( - ISAXLocator * This, - /* [retval][out] */ const wchar_t **ppwchSystemId); - - END_INTERFACE - } ISAXLocatorVtbl; - - interface ISAXLocator - { - CONST_VTBL struct ISAXLocatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXLocator_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXLocator_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXLocator_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXLocator_getColumnNumber(This,pnColumn) \ - (This)->lpVtbl -> getColumnNumber(This,pnColumn) - -#define ISAXLocator_getLineNumber(This,pnLine) \ - (This)->lpVtbl -> getLineNumber(This,pnLine) - -#define ISAXLocator_getPublicId(This,ppwchPublicId) \ - (This)->lpVtbl -> getPublicId(This,ppwchPublicId) - -#define ISAXLocator_getSystemId(This,ppwchSystemId) \ - (This)->lpVtbl -> getSystemId(This,ppwchSystemId) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXLocator_getColumnNumber_Proxy( - ISAXLocator * This, - /* [retval][out] */ int *pnColumn); - - -void __RPC_STUB ISAXLocator_getColumnNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLocator_getLineNumber_Proxy( - ISAXLocator * This, - /* [retval][out] */ int *pnLine); - - -void __RPC_STUB ISAXLocator_getLineNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLocator_getPublicId_Proxy( - ISAXLocator * This, - /* [retval][out] */ const wchar_t **ppwchPublicId); - - -void __RPC_STUB ISAXLocator_getPublicId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLocator_getSystemId_Proxy( - ISAXLocator * This, - /* [retval][out] */ const wchar_t **ppwchSystemId); - - -void __RPC_STUB ISAXLocator_getSystemId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXLocator_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXEntityResolver_INTERFACE_DEFINED__ -#define __ISAXEntityResolver_INTERFACE_DEFINED__ - -/* interface ISAXEntityResolver */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXEntityResolver; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("99bca7bd-e8c4-4d5f-a0cf-6d907901ff07") - ISAXEntityResolver : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE resolveEntity( - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [retval][out] */ VARIANT *pvarInput) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXEntityResolverVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXEntityResolver * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXEntityResolver * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXEntityResolver * This); - - HRESULT ( STDMETHODCALLTYPE *resolveEntity )( - ISAXEntityResolver * This, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [retval][out] */ VARIANT *pvarInput); - - END_INTERFACE - } ISAXEntityResolverVtbl; - - interface ISAXEntityResolver - { - CONST_VTBL struct ISAXEntityResolverVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXEntityResolver_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXEntityResolver_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXEntityResolver_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXEntityResolver_resolveEntity(This,pwchPublicId,pwchSystemId,pvarInput) \ - (This)->lpVtbl -> resolveEntity(This,pwchPublicId,pwchSystemId,pvarInput) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXEntityResolver_resolveEntity_Proxy( - ISAXEntityResolver * This, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [retval][out] */ VARIANT *pvarInput); - - -void __RPC_STUB ISAXEntityResolver_resolveEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXEntityResolver_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXContentHandler_INTERFACE_DEFINED__ -#define __ISAXContentHandler_INTERFACE_DEFINED__ - -/* interface ISAXContentHandler */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXContentHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1545cdfa-9e4e-4497-a8a4-2bf7d0112c44") - ISAXContentHandler : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE putDocumentLocator( - /* [in] */ ISAXLocator *pLocator) = 0; - - virtual HRESULT STDMETHODCALLTYPE startDocument( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE endDocument( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE startPrefixMapping( - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri) = 0; - - virtual HRESULT STDMETHODCALLTYPE endPrefixMapping( - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix) = 0; - - virtual HRESULT STDMETHODCALLTYPE startElement( - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [in] */ ISAXAttributes *pAttributes) = 0; - - virtual HRESULT STDMETHODCALLTYPE endElement( - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName) = 0; - - virtual HRESULT STDMETHODCALLTYPE characters( - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars) = 0; - - virtual HRESULT STDMETHODCALLTYPE ignorableWhitespace( - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars) = 0; - - virtual HRESULT STDMETHODCALLTYPE processingInstruction( - /* [in] */ const wchar_t *pwchTarget, - /* [in] */ int cchTarget, - /* [in] */ const wchar_t *pwchData, - /* [in] */ int cchData) = 0; - - virtual HRESULT STDMETHODCALLTYPE skippedEntity( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXContentHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXContentHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXContentHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXContentHandler * This); - - HRESULT ( STDMETHODCALLTYPE *putDocumentLocator )( - ISAXContentHandler * This, - /* [in] */ ISAXLocator *pLocator); - - HRESULT ( STDMETHODCALLTYPE *startDocument )( - ISAXContentHandler * This); - - HRESULT ( STDMETHODCALLTYPE *endDocument )( - ISAXContentHandler * This); - - HRESULT ( STDMETHODCALLTYPE *startPrefixMapping )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri); - - HRESULT ( STDMETHODCALLTYPE *endPrefixMapping )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix); - - HRESULT ( STDMETHODCALLTYPE *startElement )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [in] */ ISAXAttributes *pAttributes); - - HRESULT ( STDMETHODCALLTYPE *endElement )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName); - - HRESULT ( STDMETHODCALLTYPE *characters )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - HRESULT ( STDMETHODCALLTYPE *ignorableWhitespace )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - HRESULT ( STDMETHODCALLTYPE *processingInstruction )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchTarget, - /* [in] */ int cchTarget, - /* [in] */ const wchar_t *pwchData, - /* [in] */ int cchData); - - HRESULT ( STDMETHODCALLTYPE *skippedEntity )( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - END_INTERFACE - } ISAXContentHandlerVtbl; - - interface ISAXContentHandler - { - CONST_VTBL struct ISAXContentHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXContentHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXContentHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXContentHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXContentHandler_putDocumentLocator(This,pLocator) \ - (This)->lpVtbl -> putDocumentLocator(This,pLocator) - -#define ISAXContentHandler_startDocument(This) \ - (This)->lpVtbl -> startDocument(This) - -#define ISAXContentHandler_endDocument(This) \ - (This)->lpVtbl -> endDocument(This) - -#define ISAXContentHandler_startPrefixMapping(This,pwchPrefix,cchPrefix,pwchUri,cchUri) \ - (This)->lpVtbl -> startPrefixMapping(This,pwchPrefix,cchPrefix,pwchUri,cchUri) - -#define ISAXContentHandler_endPrefixMapping(This,pwchPrefix,cchPrefix) \ - (This)->lpVtbl -> endPrefixMapping(This,pwchPrefix,cchPrefix) - -#define ISAXContentHandler_startElement(This,pwchNamespaceUri,cchNamespaceUri,pwchLocalName,cchLocalName,pwchQName,cchQName,pAttributes) \ - (This)->lpVtbl -> startElement(This,pwchNamespaceUri,cchNamespaceUri,pwchLocalName,cchLocalName,pwchQName,cchQName,pAttributes) - -#define ISAXContentHandler_endElement(This,pwchNamespaceUri,cchNamespaceUri,pwchLocalName,cchLocalName,pwchQName,cchQName) \ - (This)->lpVtbl -> endElement(This,pwchNamespaceUri,cchNamespaceUri,pwchLocalName,cchLocalName,pwchQName,cchQName) - -#define ISAXContentHandler_characters(This,pwchChars,cchChars) \ - (This)->lpVtbl -> characters(This,pwchChars,cchChars) - -#define ISAXContentHandler_ignorableWhitespace(This,pwchChars,cchChars) \ - (This)->lpVtbl -> ignorableWhitespace(This,pwchChars,cchChars) - -#define ISAXContentHandler_processingInstruction(This,pwchTarget,cchTarget,pwchData,cchData) \ - (This)->lpVtbl -> processingInstruction(This,pwchTarget,cchTarget,pwchData,cchData) - -#define ISAXContentHandler_skippedEntity(This,pwchName,cchName) \ - (This)->lpVtbl -> skippedEntity(This,pwchName,cchName) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_putDocumentLocator_Proxy( - ISAXContentHandler * This, - /* [in] */ ISAXLocator *pLocator); - - -void __RPC_STUB ISAXContentHandler_putDocumentLocator_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_startDocument_Proxy( - ISAXContentHandler * This); - - -void __RPC_STUB ISAXContentHandler_startDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_endDocument_Proxy( - ISAXContentHandler * This); - - -void __RPC_STUB ISAXContentHandler_endDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_startPrefixMapping_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri); - - -void __RPC_STUB ISAXContentHandler_startPrefixMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_endPrefixMapping_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchPrefix, - /* [in] */ int cchPrefix); - - -void __RPC_STUB ISAXContentHandler_endPrefixMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_startElement_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [in] */ ISAXAttributes *pAttributes); - - -void __RPC_STUB ISAXContentHandler_startElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_endElement_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchNamespaceUri, - /* [in] */ int cchNamespaceUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName); - - -void __RPC_STUB ISAXContentHandler_endElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_characters_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - -void __RPC_STUB ISAXContentHandler_characters_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_ignorableWhitespace_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - -void __RPC_STUB ISAXContentHandler_ignorableWhitespace_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_processingInstruction_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchTarget, - /* [in] */ int cchTarget, - /* [in] */ const wchar_t *pwchData, - /* [in] */ int cchData); - - -void __RPC_STUB ISAXContentHandler_processingInstruction_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXContentHandler_skippedEntity_Proxy( - ISAXContentHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - -void __RPC_STUB ISAXContentHandler_skippedEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXContentHandler_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXDTDHandler_INTERFACE_DEFINED__ -#define __ISAXDTDHandler_INTERFACE_DEFINED__ - -/* interface ISAXDTDHandler */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXDTDHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e15c1baf-afb3-4d60-8c36-19a8c45defed") - ISAXDTDHandler : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE notationDecl( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId) = 0; - - virtual HRESULT STDMETHODCALLTYPE unparsedEntityDecl( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId, - /* [in] */ const wchar_t *pwchNotationName, - /* [in] */ int cchNotationName) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXDTDHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXDTDHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXDTDHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXDTDHandler * This); - - HRESULT ( STDMETHODCALLTYPE *notationDecl )( - ISAXDTDHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - HRESULT ( STDMETHODCALLTYPE *unparsedEntityDecl )( - ISAXDTDHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId, - /* [in] */ const wchar_t *pwchNotationName, - /* [in] */ int cchNotationName); - - END_INTERFACE - } ISAXDTDHandlerVtbl; - - interface ISAXDTDHandler - { - CONST_VTBL struct ISAXDTDHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXDTDHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXDTDHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXDTDHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXDTDHandler_notationDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) \ - (This)->lpVtbl -> notationDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) - -#define ISAXDTDHandler_unparsedEntityDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId,pwchNotationName,cchNotationName) \ - (This)->lpVtbl -> unparsedEntityDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId,pwchNotationName,cchNotationName) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXDTDHandler_notationDecl_Proxy( - ISAXDTDHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - -void __RPC_STUB ISAXDTDHandler_notationDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXDTDHandler_unparsedEntityDecl_Proxy( - ISAXDTDHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId, - /* [in] */ const wchar_t *pwchNotationName, - /* [in] */ int cchNotationName); - - -void __RPC_STUB ISAXDTDHandler_unparsedEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXDTDHandler_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXErrorHandler_INTERFACE_DEFINED__ -#define __ISAXErrorHandler_INTERFACE_DEFINED__ - -/* interface ISAXErrorHandler */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXErrorHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a60511c4-ccf5-479e-98a3-dc8dc545b7d0") - ISAXErrorHandler : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE error( - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE fatalError( - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE ignorableWarning( - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXErrorHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXErrorHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXErrorHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXErrorHandler * This); - - HRESULT ( STDMETHODCALLTYPE *error )( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - HRESULT ( STDMETHODCALLTYPE *fatalError )( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - HRESULT ( STDMETHODCALLTYPE *ignorableWarning )( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - END_INTERFACE - } ISAXErrorHandlerVtbl; - - interface ISAXErrorHandler - { - CONST_VTBL struct ISAXErrorHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXErrorHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXErrorHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXErrorHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXErrorHandler_error(This,pLocator,pwchErrorMessage,hrErrorCode) \ - (This)->lpVtbl -> error(This,pLocator,pwchErrorMessage,hrErrorCode) - -#define ISAXErrorHandler_fatalError(This,pLocator,pwchErrorMessage,hrErrorCode) \ - (This)->lpVtbl -> fatalError(This,pLocator,pwchErrorMessage,hrErrorCode) - -#define ISAXErrorHandler_ignorableWarning(This,pLocator,pwchErrorMessage,hrErrorCode) \ - (This)->lpVtbl -> ignorableWarning(This,pLocator,pwchErrorMessage,hrErrorCode) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXErrorHandler_error_Proxy( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - -void __RPC_STUB ISAXErrorHandler_error_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXErrorHandler_fatalError_Proxy( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - -void __RPC_STUB ISAXErrorHandler_fatalError_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXErrorHandler_ignorableWarning_Proxy( - ISAXErrorHandler * This, - /* [in] */ ISAXLocator *pLocator, - /* [in] */ const wchar_t *pwchErrorMessage, - /* [in] */ HRESULT hrErrorCode); - - -void __RPC_STUB ISAXErrorHandler_ignorableWarning_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXErrorHandler_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXLexicalHandler_INTERFACE_DEFINED__ -#define __ISAXLexicalHandler_INTERFACE_DEFINED__ - -/* interface ISAXLexicalHandler */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXLexicalHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7f85d5f5-47a8-4497-bda5-84ba04819ea6") - ISAXLexicalHandler : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE startDTD( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId) = 0; - - virtual HRESULT STDMETHODCALLTYPE endDTD( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE startEntity( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName) = 0; - - virtual HRESULT STDMETHODCALLTYPE endEntity( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName) = 0; - - virtual HRESULT STDMETHODCALLTYPE startCDATA( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE endCDATA( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE comment( - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXLexicalHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXLexicalHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXLexicalHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXLexicalHandler * This); - - HRESULT ( STDMETHODCALLTYPE *startDTD )( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - HRESULT ( STDMETHODCALLTYPE *endDTD )( - ISAXLexicalHandler * This); - - HRESULT ( STDMETHODCALLTYPE *startEntity )( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - HRESULT ( STDMETHODCALLTYPE *endEntity )( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - HRESULT ( STDMETHODCALLTYPE *startCDATA )( - ISAXLexicalHandler * This); - - HRESULT ( STDMETHODCALLTYPE *endCDATA )( - ISAXLexicalHandler * This); - - HRESULT ( STDMETHODCALLTYPE *comment )( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - END_INTERFACE - } ISAXLexicalHandlerVtbl; - - interface ISAXLexicalHandler - { - CONST_VTBL struct ISAXLexicalHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXLexicalHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXLexicalHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXLexicalHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXLexicalHandler_startDTD(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) \ - (This)->lpVtbl -> startDTD(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) - -#define ISAXLexicalHandler_endDTD(This) \ - (This)->lpVtbl -> endDTD(This) - -#define ISAXLexicalHandler_startEntity(This,pwchName,cchName) \ - (This)->lpVtbl -> startEntity(This,pwchName,cchName) - -#define ISAXLexicalHandler_endEntity(This,pwchName,cchName) \ - (This)->lpVtbl -> endEntity(This,pwchName,cchName) - -#define ISAXLexicalHandler_startCDATA(This) \ - (This)->lpVtbl -> startCDATA(This) - -#define ISAXLexicalHandler_endCDATA(This) \ - (This)->lpVtbl -> endCDATA(This) - -#define ISAXLexicalHandler_comment(This,pwchChars,cchChars) \ - (This)->lpVtbl -> comment(This,pwchChars,cchChars) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startDTD_Proxy( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - -void __RPC_STUB ISAXLexicalHandler_startDTD_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endDTD_Proxy( - ISAXLexicalHandler * This); - - -void __RPC_STUB ISAXLexicalHandler_endDTD_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startEntity_Proxy( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - -void __RPC_STUB ISAXLexicalHandler_startEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endEntity_Proxy( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName); - - -void __RPC_STUB ISAXLexicalHandler_endEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startCDATA_Proxy( - ISAXLexicalHandler * This); - - -void __RPC_STUB ISAXLexicalHandler_startCDATA_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endCDATA_Proxy( - ISAXLexicalHandler * This); - - -void __RPC_STUB ISAXLexicalHandler_endCDATA_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_comment_Proxy( - ISAXLexicalHandler * This, - /* [in] */ const wchar_t *pwchChars, - /* [in] */ int cchChars); - - -void __RPC_STUB ISAXLexicalHandler_comment_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXLexicalHandler_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXDeclHandler_INTERFACE_DEFINED__ -#define __ISAXDeclHandler_INTERFACE_DEFINED__ - -/* interface ISAXDeclHandler */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXDeclHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("862629ac-771a-47b2-8337-4e6843c1be90") - ISAXDeclHandler : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE elementDecl( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchModel, - /* [in] */ int cchModel) = 0; - - virtual HRESULT STDMETHODCALLTYPE attributeDecl( - /* [in] */ const wchar_t *pwchElementName, - /* [in] */ int cchElementName, - /* [in] */ const wchar_t *pwchAttributeName, - /* [in] */ int cchAttributeName, - /* [in] */ const wchar_t *pwchType, - /* [in] */ int cchType, - /* [in] */ const wchar_t *pwchValueDefault, - /* [in] */ int cchValueDefault, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE internalEntityDecl( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE externalEntityDecl( - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXDeclHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXDeclHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXDeclHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXDeclHandler * This); - - HRESULT ( STDMETHODCALLTYPE *elementDecl )( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchModel, - /* [in] */ int cchModel); - - HRESULT ( STDMETHODCALLTYPE *attributeDecl )( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchElementName, - /* [in] */ int cchElementName, - /* [in] */ const wchar_t *pwchAttributeName, - /* [in] */ int cchAttributeName, - /* [in] */ const wchar_t *pwchType, - /* [in] */ int cchType, - /* [in] */ const wchar_t *pwchValueDefault, - /* [in] */ int cchValueDefault, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue); - - HRESULT ( STDMETHODCALLTYPE *internalEntityDecl )( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue); - - HRESULT ( STDMETHODCALLTYPE *externalEntityDecl )( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - END_INTERFACE - } ISAXDeclHandlerVtbl; - - interface ISAXDeclHandler - { - CONST_VTBL struct ISAXDeclHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXDeclHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXDeclHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXDeclHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXDeclHandler_elementDecl(This,pwchName,cchName,pwchModel,cchModel) \ - (This)->lpVtbl -> elementDecl(This,pwchName,cchName,pwchModel,cchModel) - -#define ISAXDeclHandler_attributeDecl(This,pwchElementName,cchElementName,pwchAttributeName,cchAttributeName,pwchType,cchType,pwchValueDefault,cchValueDefault,pwchValue,cchValue) \ - (This)->lpVtbl -> attributeDecl(This,pwchElementName,cchElementName,pwchAttributeName,cchAttributeName,pwchType,cchType,pwchValueDefault,cchValueDefault,pwchValue,cchValue) - -#define ISAXDeclHandler_internalEntityDecl(This,pwchName,cchName,pwchValue,cchValue) \ - (This)->lpVtbl -> internalEntityDecl(This,pwchName,cchName,pwchValue,cchValue) - -#define ISAXDeclHandler_externalEntityDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) \ - (This)->lpVtbl -> externalEntityDecl(This,pwchName,cchName,pwchPublicId,cchPublicId,pwchSystemId,cchSystemId) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXDeclHandler_elementDecl_Proxy( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchModel, - /* [in] */ int cchModel); - - -void __RPC_STUB ISAXDeclHandler_elementDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXDeclHandler_attributeDecl_Proxy( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchElementName, - /* [in] */ int cchElementName, - /* [in] */ const wchar_t *pwchAttributeName, - /* [in] */ int cchAttributeName, - /* [in] */ const wchar_t *pwchType, - /* [in] */ int cchType, - /* [in] */ const wchar_t *pwchValueDefault, - /* [in] */ int cchValueDefault, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue); - - -void __RPC_STUB ISAXDeclHandler_attributeDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXDeclHandler_internalEntityDecl_Proxy( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchValue, - /* [in] */ int cchValue); - - -void __RPC_STUB ISAXDeclHandler_internalEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXDeclHandler_externalEntityDecl_Proxy( - ISAXDeclHandler * This, - /* [in] */ const wchar_t *pwchName, - /* [in] */ int cchName, - /* [in] */ const wchar_t *pwchPublicId, - /* [in] */ int cchPublicId, - /* [in] */ const wchar_t *pwchSystemId, - /* [in] */ int cchSystemId); - - -void __RPC_STUB ISAXDeclHandler_externalEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXDeclHandler_INTERFACE_DEFINED__ */ - - -#ifndef __ISAXAttributes_INTERFACE_DEFINED__ -#define __ISAXAttributes_INTERFACE_DEFINED__ - -/* interface ISAXAttributes */ -/* [unique][helpstring][uuid][local][object][hidden] */ - - -EXTERN_C const IID IID_ISAXAttributes; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f078abe1-45d2-4832-91ea-4466ce2f25c9") - ISAXAttributes : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE getLength( - /* [retval][out] */ int *pnLength) = 0; - - virtual HRESULT STDMETHODCALLTYPE getURI( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri) = 0; - - virtual HRESULT STDMETHODCALLTYPE getLocalName( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName) = 0; - - virtual HRESULT STDMETHODCALLTYPE getQName( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName) = 0; - - virtual HRESULT STDMETHODCALLTYPE getName( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName) = 0; - - virtual HRESULT STDMETHODCALLTYPE getIndexFromName( - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [retval][out] */ int *pnIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE getIndexFromQName( - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [retval][out] */ int *pnIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE getType( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType) = 0; - - virtual HRESULT STDMETHODCALLTYPE getTypeFromName( - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType) = 0; - - virtual HRESULT STDMETHODCALLTYPE getTypeFromQName( - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType) = 0; - - virtual HRESULT STDMETHODCALLTYPE getValue( - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE getValueFromName( - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE getValueFromQName( - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue) = 0; - - }; - -#else /* C style interface */ - - typedef struct ISAXAttributesVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ISAXAttributes * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ISAXAttributes * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ISAXAttributes * This); - - HRESULT ( STDMETHODCALLTYPE *getLength )( - ISAXAttributes * This, - /* [retval][out] */ int *pnLength); - - HRESULT ( STDMETHODCALLTYPE *getURI )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri); - - HRESULT ( STDMETHODCALLTYPE *getLocalName )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName); - - HRESULT ( STDMETHODCALLTYPE *getQName )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName); - - HRESULT ( STDMETHODCALLTYPE *getName )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName); - - HRESULT ( STDMETHODCALLTYPE *getIndexFromName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [retval][out] */ int *pnIndex); - - HRESULT ( STDMETHODCALLTYPE *getIndexFromQName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [retval][out] */ int *pnIndex); - - HRESULT ( STDMETHODCALLTYPE *getType )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - HRESULT ( STDMETHODCALLTYPE *getTypeFromName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - HRESULT ( STDMETHODCALLTYPE *getTypeFromQName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - HRESULT ( STDMETHODCALLTYPE *getValue )( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - HRESULT ( STDMETHODCALLTYPE *getValueFromName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - HRESULT ( STDMETHODCALLTYPE *getValueFromQName )( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - END_INTERFACE - } ISAXAttributesVtbl; - - interface ISAXAttributes - { - CONST_VTBL struct ISAXAttributesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ISAXAttributes_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define ISAXAttributes_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define ISAXAttributes_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define ISAXAttributes_getLength(This,pnLength) \ - (This)->lpVtbl -> getLength(This,pnLength) - -#define ISAXAttributes_getURI(This,nIndex,ppwchUri,pcchUri) \ - (This)->lpVtbl -> getURI(This,nIndex,ppwchUri,pcchUri) - -#define ISAXAttributes_getLocalName(This,nIndex,ppwchLocalName,pcchLocalName) \ - (This)->lpVtbl -> getLocalName(This,nIndex,ppwchLocalName,pcchLocalName) - -#define ISAXAttributes_getQName(This,nIndex,ppwchQName,pcchQName) \ - (This)->lpVtbl -> getQName(This,nIndex,ppwchQName,pcchQName) - -#define ISAXAttributes_getName(This,nIndex,ppwchUri,pcchUri,ppwchLocalName,pcchLocalName,ppwchQName,pcchQName) \ - (This)->lpVtbl -> getName(This,nIndex,ppwchUri,pcchUri,ppwchLocalName,pcchLocalName,ppwchQName,pcchQName) - -#define ISAXAttributes_getIndexFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,pnIndex) \ - (This)->lpVtbl -> getIndexFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,pnIndex) - -#define ISAXAttributes_getIndexFromQName(This,pwchQName,cchQName,pnIndex) \ - (This)->lpVtbl -> getIndexFromQName(This,pwchQName,cchQName,pnIndex) - -#define ISAXAttributes_getType(This,nIndex,ppwchType,pcchType) \ - (This)->lpVtbl -> getType(This,nIndex,ppwchType,pcchType) - -#define ISAXAttributes_getTypeFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,ppwchType,pcchType) \ - (This)->lpVtbl -> getTypeFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,ppwchType,pcchType) - -#define ISAXAttributes_getTypeFromQName(This,pwchQName,cchQName,ppwchType,pcchType) \ - (This)->lpVtbl -> getTypeFromQName(This,pwchQName,cchQName,ppwchType,pcchType) - -#define ISAXAttributes_getValue(This,nIndex,ppwchValue,pcchValue) \ - (This)->lpVtbl -> getValue(This,nIndex,ppwchValue,pcchValue) - -#define ISAXAttributes_getValueFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,ppwchValue,pcchValue) \ - (This)->lpVtbl -> getValueFromName(This,pwchUri,cchUri,pwchLocalName,cchLocalName,ppwchValue,pcchValue) - -#define ISAXAttributes_getValueFromQName(This,pwchQName,cchQName,ppwchValue,pcchValue) \ - (This)->lpVtbl -> getValueFromQName(This,pwchQName,cchQName,ppwchValue,pcchValue) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getLength_Proxy( - ISAXAttributes * This, - /* [retval][out] */ int *pnLength); - - -void __RPC_STUB ISAXAttributes_getLength_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getURI_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri); - - -void __RPC_STUB ISAXAttributes_getURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getLocalName_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName); - - -void __RPC_STUB ISAXAttributes_getLocalName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getQName_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName); - - -void __RPC_STUB ISAXAttributes_getQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getName_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchUri, - /* [out] */ int *pcchUri, - /* [out] */ const wchar_t **ppwchLocalName, - /* [out] */ int *pcchLocalName, - /* [out] */ const wchar_t **ppwchQName, - /* [out] */ int *pcchQName); - - -void __RPC_STUB ISAXAttributes_getName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getIndexFromName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [retval][out] */ int *pnIndex); - - -void __RPC_STUB ISAXAttributes_getIndexFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getIndexFromQName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [retval][out] */ int *pnIndex); - - -void __RPC_STUB ISAXAttributes_getIndexFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getType_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - -void __RPC_STUB ISAXAttributes_getType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getTypeFromName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - -void __RPC_STUB ISAXAttributes_getTypeFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getTypeFromQName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchType, - /* [out] */ int *pcchType); - - -void __RPC_STUB ISAXAttributes_getTypeFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getValue_Proxy( - ISAXAttributes * This, - /* [in] */ int nIndex, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - -void __RPC_STUB ISAXAttributes_getValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getValueFromName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchUri, - /* [in] */ int cchUri, - /* [in] */ const wchar_t *pwchLocalName, - /* [in] */ int cchLocalName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - -void __RPC_STUB ISAXAttributes_getValueFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -HRESULT STDMETHODCALLTYPE ISAXAttributes_getValueFromQName_Proxy( - ISAXAttributes * This, - /* [in] */ const wchar_t *pwchQName, - /* [in] */ int cchQName, - /* [out] */ const wchar_t **ppwchValue, - /* [out] */ int *pcchValue); - - -void __RPC_STUB ISAXAttributes_getValueFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __ISAXAttributes_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXXMLReader_INTERFACE_DEFINED__ -#define __IVBSAXXMLReader_INTERFACE_DEFINED__ - -/* interface IVBSAXXMLReader */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXXMLReader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8c033caa-6cd6-4f73-b728-4531af74945f") - IVBSAXXMLReader : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getFeature( - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT_BOOL *fValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE putFeature( - /* [in] */ BSTR strName, - /* [in] */ VARIANT_BOOL fValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getProperty( - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT *varValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE putProperty( - /* [in] */ BSTR strName, - /* [in] */ VARIANT varValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_entityResolver( - /* [retval][out] */ IVBSAXEntityResolver **oResolver) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_entityResolver( - /* [in] */ IVBSAXEntityResolver *oResolver) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_contentHandler( - /* [retval][out] */ IVBSAXContentHandler **oHandler) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_contentHandler( - /* [in] */ IVBSAXContentHandler *oHandler) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_dtdHandler( - /* [retval][out] */ IVBSAXDTDHandler **oHandler) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_dtdHandler( - /* [in] */ IVBSAXDTDHandler *oHandler) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_errorHandler( - /* [retval][out] */ IVBSAXErrorHandler **oHandler) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_errorHandler( - /* [in] */ IVBSAXErrorHandler *oHandler) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_baseURL( - /* [retval][out] */ BSTR *strBaseURL) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_baseURL( - /* [in] */ BSTR strBaseURL) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_secureBaseURL( - /* [retval][out] */ BSTR *strSecureBaseURL) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_secureBaseURL( - /* [in] */ BSTR strSecureBaseURL) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE parse( - /* [in] */ VARIANT varInput) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE parseURL( - /* [in] */ BSTR strURL) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXXMLReaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXXMLReader * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXXMLReader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXXMLReader * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXXMLReader * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXXMLReader * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXXMLReader * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXXMLReader * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getFeature )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT_BOOL *fValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *putFeature )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [in] */ VARIANT_BOOL fValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getProperty )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT *varValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *putProperty )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [in] */ VARIANT varValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_entityResolver )( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXEntityResolver **oResolver); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_entityResolver )( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXEntityResolver *oResolver); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_contentHandler )( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXContentHandler **oHandler); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_contentHandler )( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXContentHandler *oHandler); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dtdHandler )( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXDTDHandler **oHandler); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_dtdHandler )( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXDTDHandler *oHandler); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorHandler )( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXErrorHandler **oHandler); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_errorHandler )( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXErrorHandler *oHandler); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseURL )( - IVBSAXXMLReader * This, - /* [retval][out] */ BSTR *strBaseURL); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_baseURL )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strBaseURL); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_secureBaseURL )( - IVBSAXXMLReader * This, - /* [retval][out] */ BSTR *strSecureBaseURL); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_secureBaseURL )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strSecureBaseURL); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *parse )( - IVBSAXXMLReader * This, - /* [in] */ VARIANT varInput); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *parseURL )( - IVBSAXXMLReader * This, - /* [in] */ BSTR strURL); - - END_INTERFACE - } IVBSAXXMLReaderVtbl; - - interface IVBSAXXMLReader - { - CONST_VTBL struct IVBSAXXMLReaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXXMLReader_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXXMLReader_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXXMLReader_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXXMLReader_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXXMLReader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXXMLReader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXXMLReader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXXMLReader_getFeature(This,strName,fValue) \ - (This)->lpVtbl -> getFeature(This,strName,fValue) - -#define IVBSAXXMLReader_putFeature(This,strName,fValue) \ - (This)->lpVtbl -> putFeature(This,strName,fValue) - -#define IVBSAXXMLReader_getProperty(This,strName,varValue) \ - (This)->lpVtbl -> getProperty(This,strName,varValue) - -#define IVBSAXXMLReader_putProperty(This,strName,varValue) \ - (This)->lpVtbl -> putProperty(This,strName,varValue) - -#define IVBSAXXMLReader_get_entityResolver(This,oResolver) \ - (This)->lpVtbl -> get_entityResolver(This,oResolver) - -#define IVBSAXXMLReader_putref_entityResolver(This,oResolver) \ - (This)->lpVtbl -> putref_entityResolver(This,oResolver) - -#define IVBSAXXMLReader_get_contentHandler(This,oHandler) \ - (This)->lpVtbl -> get_contentHandler(This,oHandler) - -#define IVBSAXXMLReader_putref_contentHandler(This,oHandler) \ - (This)->lpVtbl -> putref_contentHandler(This,oHandler) - -#define IVBSAXXMLReader_get_dtdHandler(This,oHandler) \ - (This)->lpVtbl -> get_dtdHandler(This,oHandler) - -#define IVBSAXXMLReader_putref_dtdHandler(This,oHandler) \ - (This)->lpVtbl -> putref_dtdHandler(This,oHandler) - -#define IVBSAXXMLReader_get_errorHandler(This,oHandler) \ - (This)->lpVtbl -> get_errorHandler(This,oHandler) - -#define IVBSAXXMLReader_putref_errorHandler(This,oHandler) \ - (This)->lpVtbl -> putref_errorHandler(This,oHandler) - -#define IVBSAXXMLReader_get_baseURL(This,strBaseURL) \ - (This)->lpVtbl -> get_baseURL(This,strBaseURL) - -#define IVBSAXXMLReader_put_baseURL(This,strBaseURL) \ - (This)->lpVtbl -> put_baseURL(This,strBaseURL) - -#define IVBSAXXMLReader_get_secureBaseURL(This,strSecureBaseURL) \ - (This)->lpVtbl -> get_secureBaseURL(This,strSecureBaseURL) - -#define IVBSAXXMLReader_put_secureBaseURL(This,strSecureBaseURL) \ - (This)->lpVtbl -> put_secureBaseURL(This,strSecureBaseURL) - -#define IVBSAXXMLReader_parse(This,varInput) \ - (This)->lpVtbl -> parse(This,varInput) - -#define IVBSAXXMLReader_parseURL(This,strURL) \ - (This)->lpVtbl -> parseURL(This,strURL) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_getFeature_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT_BOOL *fValue); - - -void __RPC_STUB IVBSAXXMLReader_getFeature_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putFeature_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [in] */ VARIANT_BOOL fValue); - - -void __RPC_STUB IVBSAXXMLReader_putFeature_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_getProperty_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [retval][out] */ VARIANT *varValue); - - -void __RPC_STUB IVBSAXXMLReader_getProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putProperty_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strName, - /* [in] */ VARIANT varValue); - - -void __RPC_STUB IVBSAXXMLReader_putProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_entityResolver_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXEntityResolver **oResolver); - - -void __RPC_STUB IVBSAXXMLReader_get_entityResolver_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_entityResolver_Proxy( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXEntityResolver *oResolver); - - -void __RPC_STUB IVBSAXXMLReader_putref_entityResolver_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_contentHandler_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXContentHandler **oHandler); - - -void __RPC_STUB IVBSAXXMLReader_get_contentHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_contentHandler_Proxy( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXContentHandler *oHandler); - - -void __RPC_STUB IVBSAXXMLReader_putref_contentHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_dtdHandler_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXDTDHandler **oHandler); - - -void __RPC_STUB IVBSAXXMLReader_get_dtdHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_dtdHandler_Proxy( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXDTDHandler *oHandler); - - -void __RPC_STUB IVBSAXXMLReader_putref_dtdHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_errorHandler_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ IVBSAXErrorHandler **oHandler); - - -void __RPC_STUB IVBSAXXMLReader_get_errorHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_errorHandler_Proxy( - IVBSAXXMLReader * This, - /* [in] */ IVBSAXErrorHandler *oHandler); - - -void __RPC_STUB IVBSAXXMLReader_putref_errorHandler_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_baseURL_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ BSTR *strBaseURL); - - -void __RPC_STUB IVBSAXXMLReader_get_baseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_put_baseURL_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strBaseURL); - - -void __RPC_STUB IVBSAXXMLReader_put_baseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_secureBaseURL_Proxy( - IVBSAXXMLReader * This, - /* [retval][out] */ BSTR *strSecureBaseURL); - - -void __RPC_STUB IVBSAXXMLReader_get_secureBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_put_secureBaseURL_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strSecureBaseURL); - - -void __RPC_STUB IVBSAXXMLReader_put_secureBaseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_parse_Proxy( - IVBSAXXMLReader * This, - /* [in] */ VARIANT varInput); - - -void __RPC_STUB IVBSAXXMLReader_parse_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_parseURL_Proxy( - IVBSAXXMLReader * This, - /* [in] */ BSTR strURL); - - -void __RPC_STUB IVBSAXXMLReader_parseURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXXMLReader_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXXMLFilter_INTERFACE_DEFINED__ -#define __IVBSAXXMLFilter_INTERFACE_DEFINED__ - -/* interface IVBSAXXMLFilter */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXXMLFilter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1299eb1b-5b88-433e-82de-82ca75ad4e04") - IVBSAXXMLFilter : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parent( - /* [retval][out] */ IVBSAXXMLReader **oReader) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_parent( - /* [in] */ IVBSAXXMLReader *oReader) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXXMLFilterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXXMLFilter * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXXMLFilter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXXMLFilter * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXXMLFilter * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXXMLFilter * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXXMLFilter * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXXMLFilter * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parent )( - IVBSAXXMLFilter * This, - /* [retval][out] */ IVBSAXXMLReader **oReader); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_parent )( - IVBSAXXMLFilter * This, - /* [in] */ IVBSAXXMLReader *oReader); - - END_INTERFACE - } IVBSAXXMLFilterVtbl; - - interface IVBSAXXMLFilter - { - CONST_VTBL struct IVBSAXXMLFilterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXXMLFilter_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXXMLFilter_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXXMLFilter_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXXMLFilter_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXXMLFilter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXXMLFilter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXXMLFilter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXXMLFilter_get_parent(This,oReader) \ - (This)->lpVtbl -> get_parent(This,oReader) - -#define IVBSAXXMLFilter_putref_parent(This,oReader) \ - (This)->lpVtbl -> putref_parent(This,oReader) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLFilter_get_parent_Proxy( - IVBSAXXMLFilter * This, - /* [retval][out] */ IVBSAXXMLReader **oReader); - - -void __RPC_STUB IVBSAXXMLFilter_get_parent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXXMLFilter_putref_parent_Proxy( - IVBSAXXMLFilter * This, - /* [in] */ IVBSAXXMLReader *oReader); - - -void __RPC_STUB IVBSAXXMLFilter_putref_parent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXXMLFilter_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXLocator_INTERFACE_DEFINED__ -#define __IVBSAXLocator_INTERFACE_DEFINED__ - -/* interface IVBSAXLocator */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXLocator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("796e7ac5-5aa2-4eff-acad-3faaf01a3288") - IVBSAXLocator : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumber( - /* [retval][out] */ int *nColumn) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumber( - /* [retval][out] */ int *nLine) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_publicId( - /* [retval][out] */ BSTR *strPublicId) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_systemId( - /* [retval][out] */ BSTR *strSystemId) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXLocatorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXLocator * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXLocator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXLocator * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXLocator * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXLocator * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXLocator * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXLocator * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumber )( - IVBSAXLocator * This, - /* [retval][out] */ int *nColumn); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumber )( - IVBSAXLocator * This, - /* [retval][out] */ int *nLine); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_publicId )( - IVBSAXLocator * This, - /* [retval][out] */ BSTR *strPublicId); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemId )( - IVBSAXLocator * This, - /* [retval][out] */ BSTR *strSystemId); - - END_INTERFACE - } IVBSAXLocatorVtbl; - - interface IVBSAXLocator - { - CONST_VTBL struct IVBSAXLocatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXLocator_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXLocator_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXLocator_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXLocator_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXLocator_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXLocator_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXLocator_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXLocator_get_columnNumber(This,nColumn) \ - (This)->lpVtbl -> get_columnNumber(This,nColumn) - -#define IVBSAXLocator_get_lineNumber(This,nLine) \ - (This)->lpVtbl -> get_lineNumber(This,nLine) - -#define IVBSAXLocator_get_publicId(This,strPublicId) \ - (This)->lpVtbl -> get_publicId(This,strPublicId) - -#define IVBSAXLocator_get_systemId(This,strSystemId) \ - (This)->lpVtbl -> get_systemId(This,strSystemId) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_columnNumber_Proxy( - IVBSAXLocator * This, - /* [retval][out] */ int *nColumn); - - -void __RPC_STUB IVBSAXLocator_get_columnNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_lineNumber_Proxy( - IVBSAXLocator * This, - /* [retval][out] */ int *nLine); - - -void __RPC_STUB IVBSAXLocator_get_lineNumber_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_publicId_Proxy( - IVBSAXLocator * This, - /* [retval][out] */ BSTR *strPublicId); - - -void __RPC_STUB IVBSAXLocator_get_publicId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_systemId_Proxy( - IVBSAXLocator * This, - /* [retval][out] */ BSTR *strSystemId); - - -void __RPC_STUB IVBSAXLocator_get_systemId_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXLocator_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXEntityResolver_INTERFACE_DEFINED__ -#define __IVBSAXEntityResolver_INTERFACE_DEFINED__ - -/* interface IVBSAXEntityResolver */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXEntityResolver; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0c05d096-f45b-4aca-ad1a-aa0bc25518dc") - IVBSAXEntityResolver : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE resolveEntity( - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [retval][out] */ VARIANT *varInput) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXEntityResolverVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXEntityResolver * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXEntityResolver * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXEntityResolver * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXEntityResolver * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXEntityResolver * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXEntityResolver * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXEntityResolver * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *resolveEntity )( - IVBSAXEntityResolver * This, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [retval][out] */ VARIANT *varInput); - - END_INTERFACE - } IVBSAXEntityResolverVtbl; - - interface IVBSAXEntityResolver - { - CONST_VTBL struct IVBSAXEntityResolverVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXEntityResolver_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXEntityResolver_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXEntityResolver_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXEntityResolver_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXEntityResolver_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXEntityResolver_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXEntityResolver_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXEntityResolver_resolveEntity(This,strPublicId,strSystemId,varInput) \ - (This)->lpVtbl -> resolveEntity(This,strPublicId,strSystemId,varInput) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXEntityResolver_resolveEntity_Proxy( - IVBSAXEntityResolver * This, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [retval][out] */ VARIANT *varInput); - - -void __RPC_STUB IVBSAXEntityResolver_resolveEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXEntityResolver_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXContentHandler_INTERFACE_DEFINED__ -#define __IVBSAXContentHandler_INTERFACE_DEFINED__ - -/* interface IVBSAXContentHandler */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXContentHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2ed7290a-4dd5-4b46-bb26-4e4155e77faa") - IVBSAXContentHandler : public IDispatch - { - public: - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_documentLocator( - /* [in] */ IVBSAXLocator *oLocator) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startDocument( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endDocument( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startPrefixMapping( - /* [out][in] */ BSTR *strPrefix, - /* [out][in] */ BSTR *strURI) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endPrefixMapping( - /* [out][in] */ BSTR *strPrefix) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startElement( - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName, - /* [in] */ IVBSAXAttributes *oAttributes) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endElement( - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE characters( - /* [out][in] */ BSTR *strChars) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ignorableWhitespace( - /* [out][in] */ BSTR *strChars) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE processingInstruction( - /* [out][in] */ BSTR *strTarget, - /* [out][in] */ BSTR *strData) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE skippedEntity( - /* [out][in] */ BSTR *strName) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXContentHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXContentHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXContentHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXContentHandler * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXContentHandler * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXContentHandler * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXContentHandler * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXContentHandler * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_documentLocator )( - IVBSAXContentHandler * This, - /* [in] */ IVBSAXLocator *oLocator); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startDocument )( - IVBSAXContentHandler * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endDocument )( - IVBSAXContentHandler * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startPrefixMapping )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strPrefix, - /* [out][in] */ BSTR *strURI); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endPrefixMapping )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strPrefix); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startElement )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName, - /* [in] */ IVBSAXAttributes *oAttributes); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endElement )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *characters )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strChars); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ignorableWhitespace )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strChars); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *processingInstruction )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strTarget, - /* [out][in] */ BSTR *strData); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *skippedEntity )( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strName); - - END_INTERFACE - } IVBSAXContentHandlerVtbl; - - interface IVBSAXContentHandler - { - CONST_VTBL struct IVBSAXContentHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXContentHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXContentHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXContentHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXContentHandler_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXContentHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXContentHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXContentHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXContentHandler_putref_documentLocator(This,oLocator) \ - (This)->lpVtbl -> putref_documentLocator(This,oLocator) - -#define IVBSAXContentHandler_startDocument(This) \ - (This)->lpVtbl -> startDocument(This) - -#define IVBSAXContentHandler_endDocument(This) \ - (This)->lpVtbl -> endDocument(This) - -#define IVBSAXContentHandler_startPrefixMapping(This,strPrefix,strURI) \ - (This)->lpVtbl -> startPrefixMapping(This,strPrefix,strURI) - -#define IVBSAXContentHandler_endPrefixMapping(This,strPrefix) \ - (This)->lpVtbl -> endPrefixMapping(This,strPrefix) - -#define IVBSAXContentHandler_startElement(This,strNamespaceURI,strLocalName,strQName,oAttributes) \ - (This)->lpVtbl -> startElement(This,strNamespaceURI,strLocalName,strQName,oAttributes) - -#define IVBSAXContentHandler_endElement(This,strNamespaceURI,strLocalName,strQName) \ - (This)->lpVtbl -> endElement(This,strNamespaceURI,strLocalName,strQName) - -#define IVBSAXContentHandler_characters(This,strChars) \ - (This)->lpVtbl -> characters(This,strChars) - -#define IVBSAXContentHandler_ignorableWhitespace(This,strChars) \ - (This)->lpVtbl -> ignorableWhitespace(This,strChars) - -#define IVBSAXContentHandler_processingInstruction(This,strTarget,strData) \ - (This)->lpVtbl -> processingInstruction(This,strTarget,strData) - -#define IVBSAXContentHandler_skippedEntity(This,strName) \ - (This)->lpVtbl -> skippedEntity(This,strName) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_putref_documentLocator_Proxy( - IVBSAXContentHandler * This, - /* [in] */ IVBSAXLocator *oLocator); - - -void __RPC_STUB IVBSAXContentHandler_putref_documentLocator_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startDocument_Proxy( - IVBSAXContentHandler * This); - - -void __RPC_STUB IVBSAXContentHandler_startDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endDocument_Proxy( - IVBSAXContentHandler * This); - - -void __RPC_STUB IVBSAXContentHandler_endDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startPrefixMapping_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strPrefix, - /* [out][in] */ BSTR *strURI); - - -void __RPC_STUB IVBSAXContentHandler_startPrefixMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endPrefixMapping_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strPrefix); - - -void __RPC_STUB IVBSAXContentHandler_endPrefixMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startElement_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName, - /* [in] */ IVBSAXAttributes *oAttributes); - - -void __RPC_STUB IVBSAXContentHandler_startElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endElement_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strNamespaceURI, - /* [out][in] */ BSTR *strLocalName, - /* [out][in] */ BSTR *strQName); - - -void __RPC_STUB IVBSAXContentHandler_endElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_characters_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strChars); - - -void __RPC_STUB IVBSAXContentHandler_characters_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_ignorableWhitespace_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strChars); - - -void __RPC_STUB IVBSAXContentHandler_ignorableWhitespace_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_processingInstruction_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strTarget, - /* [out][in] */ BSTR *strData); - - -void __RPC_STUB IVBSAXContentHandler_processingInstruction_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_skippedEntity_Proxy( - IVBSAXContentHandler * This, - /* [out][in] */ BSTR *strName); - - -void __RPC_STUB IVBSAXContentHandler_skippedEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXContentHandler_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXDTDHandler_INTERFACE_DEFINED__ -#define __IVBSAXDTDHandler_INTERFACE_DEFINED__ - -/* interface IVBSAXDTDHandler */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXDTDHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("24fb3297-302d-4620-ba39-3a732d850558") - IVBSAXDTDHandler : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE notationDecl( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE unparsedEntityDecl( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [out][in] */ BSTR *strNotationName) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXDTDHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXDTDHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXDTDHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXDTDHandler * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXDTDHandler * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXDTDHandler * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXDTDHandler * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXDTDHandler * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *notationDecl )( - IVBSAXDTDHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *unparsedEntityDecl )( - IVBSAXDTDHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [out][in] */ BSTR *strNotationName); - - END_INTERFACE - } IVBSAXDTDHandlerVtbl; - - interface IVBSAXDTDHandler - { - CONST_VTBL struct IVBSAXDTDHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXDTDHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXDTDHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXDTDHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXDTDHandler_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXDTDHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXDTDHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXDTDHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXDTDHandler_notationDecl(This,strName,strPublicId,strSystemId) \ - (This)->lpVtbl -> notationDecl(This,strName,strPublicId,strSystemId) - -#define IVBSAXDTDHandler_unparsedEntityDecl(This,strName,strPublicId,strSystemId,strNotationName) \ - (This)->lpVtbl -> unparsedEntityDecl(This,strName,strPublicId,strSystemId,strNotationName) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDTDHandler_notationDecl_Proxy( - IVBSAXDTDHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - -void __RPC_STUB IVBSAXDTDHandler_notationDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDTDHandler_unparsedEntityDecl_Proxy( - IVBSAXDTDHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId, - /* [out][in] */ BSTR *strNotationName); - - -void __RPC_STUB IVBSAXDTDHandler_unparsedEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXDTDHandler_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXErrorHandler_INTERFACE_DEFINED__ -#define __IVBSAXErrorHandler_INTERFACE_DEFINED__ - -/* interface IVBSAXErrorHandler */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXErrorHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("d963d3fe-173c-4862-9095-b92f66995f52") - IVBSAXErrorHandler : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE error( - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE fatalError( - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ignorableWarning( - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXErrorHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXErrorHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXErrorHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXErrorHandler * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXErrorHandler * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXErrorHandler * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXErrorHandler * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXErrorHandler * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *error )( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *fatalError )( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ignorableWarning )( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - END_INTERFACE - } IVBSAXErrorHandlerVtbl; - - interface IVBSAXErrorHandler - { - CONST_VTBL struct IVBSAXErrorHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXErrorHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXErrorHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXErrorHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXErrorHandler_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXErrorHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXErrorHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXErrorHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXErrorHandler_error(This,oLocator,strErrorMessage,nErrorCode) \ - (This)->lpVtbl -> error(This,oLocator,strErrorMessage,nErrorCode) - -#define IVBSAXErrorHandler_fatalError(This,oLocator,strErrorMessage,nErrorCode) \ - (This)->lpVtbl -> fatalError(This,oLocator,strErrorMessage,nErrorCode) - -#define IVBSAXErrorHandler_ignorableWarning(This,oLocator,strErrorMessage,nErrorCode) \ - (This)->lpVtbl -> ignorableWarning(This,oLocator,strErrorMessage,nErrorCode) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_error_Proxy( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - -void __RPC_STUB IVBSAXErrorHandler_error_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_fatalError_Proxy( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - -void __RPC_STUB IVBSAXErrorHandler_fatalError_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_ignorableWarning_Proxy( - IVBSAXErrorHandler * This, - /* [in] */ IVBSAXLocator *oLocator, - /* [out][in] */ BSTR *strErrorMessage, - /* [in] */ long nErrorCode); - - -void __RPC_STUB IVBSAXErrorHandler_ignorableWarning_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXErrorHandler_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXLexicalHandler_INTERFACE_DEFINED__ -#define __IVBSAXLexicalHandler_INTERFACE_DEFINED__ - -/* interface IVBSAXLexicalHandler */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXLexicalHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("032aac35-8c0e-4d9d-979f-e3b702935576") - IVBSAXLexicalHandler : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startDTD( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endDTD( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startEntity( - /* [out][in] */ BSTR *strName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endEntity( - /* [out][in] */ BSTR *strName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE startCDATA( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE endCDATA( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE comment( - /* [out][in] */ BSTR *strChars) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXLexicalHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXLexicalHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXLexicalHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXLexicalHandler * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXLexicalHandler * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXLexicalHandler * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXLexicalHandler * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXLexicalHandler * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startDTD )( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endDTD )( - IVBSAXLexicalHandler * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startEntity )( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endEntity )( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *startCDATA )( - IVBSAXLexicalHandler * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *endCDATA )( - IVBSAXLexicalHandler * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *comment )( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strChars); - - END_INTERFACE - } IVBSAXLexicalHandlerVtbl; - - interface IVBSAXLexicalHandler - { - CONST_VTBL struct IVBSAXLexicalHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXLexicalHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXLexicalHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXLexicalHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXLexicalHandler_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXLexicalHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXLexicalHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXLexicalHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXLexicalHandler_startDTD(This,strName,strPublicId,strSystemId) \ - (This)->lpVtbl -> startDTD(This,strName,strPublicId,strSystemId) - -#define IVBSAXLexicalHandler_endDTD(This) \ - (This)->lpVtbl -> endDTD(This) - -#define IVBSAXLexicalHandler_startEntity(This,strName) \ - (This)->lpVtbl -> startEntity(This,strName) - -#define IVBSAXLexicalHandler_endEntity(This,strName) \ - (This)->lpVtbl -> endEntity(This,strName) - -#define IVBSAXLexicalHandler_startCDATA(This) \ - (This)->lpVtbl -> startCDATA(This) - -#define IVBSAXLexicalHandler_endCDATA(This) \ - (This)->lpVtbl -> endCDATA(This) - -#define IVBSAXLexicalHandler_comment(This,strChars) \ - (This)->lpVtbl -> comment(This,strChars) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startDTD_Proxy( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - -void __RPC_STUB IVBSAXLexicalHandler_startDTD_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endDTD_Proxy( - IVBSAXLexicalHandler * This); - - -void __RPC_STUB IVBSAXLexicalHandler_endDTD_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startEntity_Proxy( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName); - - -void __RPC_STUB IVBSAXLexicalHandler_startEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endEntity_Proxy( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strName); - - -void __RPC_STUB IVBSAXLexicalHandler_endEntity_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startCDATA_Proxy( - IVBSAXLexicalHandler * This); - - -void __RPC_STUB IVBSAXLexicalHandler_startCDATA_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endCDATA_Proxy( - IVBSAXLexicalHandler * This); - - -void __RPC_STUB IVBSAXLexicalHandler_endCDATA_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_comment_Proxy( - IVBSAXLexicalHandler * This, - /* [out][in] */ BSTR *strChars); - - -void __RPC_STUB IVBSAXLexicalHandler_comment_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXLexicalHandler_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXDeclHandler_INTERFACE_DEFINED__ -#define __IVBSAXDeclHandler_INTERFACE_DEFINED__ - -/* interface IVBSAXDeclHandler */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXDeclHandler; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e8917260-7579-4be1-b5dd-7afbfa6f077b") - IVBSAXDeclHandler : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE elementDecl( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strModel) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE attributeDecl( - /* [out][in] */ BSTR *strElementName, - /* [out][in] */ BSTR *strAttributeName, - /* [out][in] */ BSTR *strType, - /* [out][in] */ BSTR *strValueDefault, - /* [out][in] */ BSTR *strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE internalEntityDecl( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE externalEntityDecl( - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXDeclHandlerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXDeclHandler * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXDeclHandler * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXDeclHandler * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXDeclHandler * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXDeclHandler * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXDeclHandler * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXDeclHandler * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *elementDecl )( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strModel); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *attributeDecl )( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strElementName, - /* [out][in] */ BSTR *strAttributeName, - /* [out][in] */ BSTR *strType, - /* [out][in] */ BSTR *strValueDefault, - /* [out][in] */ BSTR *strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *internalEntityDecl )( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *externalEntityDecl )( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - END_INTERFACE - } IVBSAXDeclHandlerVtbl; - - interface IVBSAXDeclHandler - { - CONST_VTBL struct IVBSAXDeclHandlerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXDeclHandler_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXDeclHandler_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXDeclHandler_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXDeclHandler_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXDeclHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXDeclHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXDeclHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXDeclHandler_elementDecl(This,strName,strModel) \ - (This)->lpVtbl -> elementDecl(This,strName,strModel) - -#define IVBSAXDeclHandler_attributeDecl(This,strElementName,strAttributeName,strType,strValueDefault,strValue) \ - (This)->lpVtbl -> attributeDecl(This,strElementName,strAttributeName,strType,strValueDefault,strValue) - -#define IVBSAXDeclHandler_internalEntityDecl(This,strName,strValue) \ - (This)->lpVtbl -> internalEntityDecl(This,strName,strValue) - -#define IVBSAXDeclHandler_externalEntityDecl(This,strName,strPublicId,strSystemId) \ - (This)->lpVtbl -> externalEntityDecl(This,strName,strPublicId,strSystemId) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_elementDecl_Proxy( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strModel); - - -void __RPC_STUB IVBSAXDeclHandler_elementDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_attributeDecl_Proxy( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strElementName, - /* [out][in] */ BSTR *strAttributeName, - /* [out][in] */ BSTR *strType, - /* [out][in] */ BSTR *strValueDefault, - /* [out][in] */ BSTR *strValue); - - -void __RPC_STUB IVBSAXDeclHandler_attributeDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_internalEntityDecl_Proxy( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strValue); - - -void __RPC_STUB IVBSAXDeclHandler_internalEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_externalEntityDecl_Proxy( - IVBSAXDeclHandler * This, - /* [out][in] */ BSTR *strName, - /* [out][in] */ BSTR *strPublicId, - /* [out][in] */ BSTR *strSystemId); - - -void __RPC_STUB IVBSAXDeclHandler_externalEntityDecl_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXDeclHandler_INTERFACE_DEFINED__ */ - - -#ifndef __IVBSAXAttributes_INTERFACE_DEFINED__ -#define __IVBSAXAttributes_INTERFACE_DEFINED__ - -/* interface IVBSAXAttributes */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IVBSAXAttributes; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("10dc0586-132b-4cac-8bb3-db00ac8b7ee0") - IVBSAXAttributes : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [retval][out] */ int *nLength) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getURI( - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strURI) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getLocalName( - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strLocalName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getQName( - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strQName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getIndexFromName( - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ int *nIndex) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getIndexFromQName( - /* [in] */ BSTR strQName, - /* [retval][out] */ int *nIndex) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getType( - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strType) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getTypeFromName( - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strType) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getTypeFromQName( - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strType) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getValue( - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getValueFromName( - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getValueFromQName( - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strValue) = 0; - - }; - -#else /* C style interface */ - - typedef struct IVBSAXAttributesVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IVBSAXAttributes * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IVBSAXAttributes * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IVBSAXAttributes * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IVBSAXAttributes * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IVBSAXAttributes * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IVBSAXAttributes * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IVBSAXAttributes * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IVBSAXAttributes * This, - /* [retval][out] */ int *nLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getURI )( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strURI); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getLocalName )( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strLocalName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getQName )( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strQName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getIndexFromName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ int *nIndex); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getIndexFromQName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ int *nIndex); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getType )( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strType); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getTypeFromName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strType); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getTypeFromQName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strType); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getValue )( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getValueFromName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getValueFromQName )( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strValue); - - END_INTERFACE - } IVBSAXAttributesVtbl; - - interface IVBSAXAttributes - { - CONST_VTBL struct IVBSAXAttributesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IVBSAXAttributes_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IVBSAXAttributes_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IVBSAXAttributes_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IVBSAXAttributes_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IVBSAXAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IVBSAXAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IVBSAXAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IVBSAXAttributes_get_length(This,nLength) \ - (This)->lpVtbl -> get_length(This,nLength) - -#define IVBSAXAttributes_getURI(This,nIndex,strURI) \ - (This)->lpVtbl -> getURI(This,nIndex,strURI) - -#define IVBSAXAttributes_getLocalName(This,nIndex,strLocalName) \ - (This)->lpVtbl -> getLocalName(This,nIndex,strLocalName) - -#define IVBSAXAttributes_getQName(This,nIndex,strQName) \ - (This)->lpVtbl -> getQName(This,nIndex,strQName) - -#define IVBSAXAttributes_getIndexFromName(This,strURI,strLocalName,nIndex) \ - (This)->lpVtbl -> getIndexFromName(This,strURI,strLocalName,nIndex) - -#define IVBSAXAttributes_getIndexFromQName(This,strQName,nIndex) \ - (This)->lpVtbl -> getIndexFromQName(This,strQName,nIndex) - -#define IVBSAXAttributes_getType(This,nIndex,strType) \ - (This)->lpVtbl -> getType(This,nIndex,strType) - -#define IVBSAXAttributes_getTypeFromName(This,strURI,strLocalName,strType) \ - (This)->lpVtbl -> getTypeFromName(This,strURI,strLocalName,strType) - -#define IVBSAXAttributes_getTypeFromQName(This,strQName,strType) \ - (This)->lpVtbl -> getTypeFromQName(This,strQName,strType) - -#define IVBSAXAttributes_getValue(This,nIndex,strValue) \ - (This)->lpVtbl -> getValue(This,nIndex,strValue) - -#define IVBSAXAttributes_getValueFromName(This,strURI,strLocalName,strValue) \ - (This)->lpVtbl -> getValueFromName(This,strURI,strLocalName,strValue) - -#define IVBSAXAttributes_getValueFromQName(This,strQName,strValue) \ - (This)->lpVtbl -> getValueFromQName(This,strQName,strValue) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_get_length_Proxy( - IVBSAXAttributes * This, - /* [retval][out] */ int *nLength); - - -void __RPC_STUB IVBSAXAttributes_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getURI_Proxy( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strURI); - - -void __RPC_STUB IVBSAXAttributes_getURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getLocalName_Proxy( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strLocalName); - - -void __RPC_STUB IVBSAXAttributes_getLocalName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getQName_Proxy( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strQName); - - -void __RPC_STUB IVBSAXAttributes_getQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getIndexFromName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ int *nIndex); - - -void __RPC_STUB IVBSAXAttributes_getIndexFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getIndexFromQName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ int *nIndex); - - -void __RPC_STUB IVBSAXAttributes_getIndexFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getType_Proxy( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strType); - - -void __RPC_STUB IVBSAXAttributes_getType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getTypeFromName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strType); - - -void __RPC_STUB IVBSAXAttributes_getTypeFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getTypeFromQName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strType); - - -void __RPC_STUB IVBSAXAttributes_getTypeFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValue_Proxy( - IVBSAXAttributes * This, - /* [in] */ int nIndex, - /* [retval][out] */ BSTR *strValue); - - -void __RPC_STUB IVBSAXAttributes_getValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValueFromName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [retval][out] */ BSTR *strValue); - - -void __RPC_STUB IVBSAXAttributes_getValueFromName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValueFromQName_Proxy( - IVBSAXAttributes * This, - /* [in] */ BSTR strQName, - /* [retval][out] */ BSTR *strValue); - - -void __RPC_STUB IVBSAXAttributes_getValueFromQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IVBSAXAttributes_INTERFACE_DEFINED__ */ - - -#ifndef __IMXWriter_INTERFACE_DEFINED__ -#define __IMXWriter_INTERFACE_DEFINED__ - -/* interface IMXWriter */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IMXWriter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4d7ff4ba-1565-4ea8-94e1-6e724a46f98d") - IMXWriter : public IDispatch - { - public: - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_output( - /* [in] */ VARIANT varDestination) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_output( - /* [retval][out] */ VARIANT *varDestination) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_encoding( - /* [in] */ BSTR strEncoding) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_encoding( - /* [retval][out] */ BSTR *strEncoding) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_byteOrderMark( - /* [in] */ VARIANT_BOOL fWriteByteOrderMark) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_byteOrderMark( - /* [retval][out] */ VARIANT_BOOL *fWriteByteOrderMark) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_indent( - /* [in] */ VARIANT_BOOL fIndentMode) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_indent( - /* [retval][out] */ VARIANT_BOOL *fIndentMode) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_standalone( - /* [in] */ VARIANT_BOOL fValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_standalone( - /* [retval][out] */ VARIANT_BOOL *fValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_omitXMLDeclaration( - /* [in] */ VARIANT_BOOL fValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_omitXMLDeclaration( - /* [retval][out] */ VARIANT_BOOL *fValue) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_version( - /* [in] */ BSTR strVersion) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_version( - /* [retval][out] */ BSTR *strVersion) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_disableOutputEscaping( - /* [in] */ VARIANT_BOOL fValue) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_disableOutputEscaping( - /* [retval][out] */ VARIANT_BOOL *fValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE flush( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMXWriterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMXWriter * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMXWriter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMXWriter * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMXWriter * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMXWriter * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMXWriter * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMXWriter * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_output )( - IMXWriter * This, - /* [in] */ VARIANT varDestination); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( - IMXWriter * This, - /* [retval][out] */ VARIANT *varDestination); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_encoding )( - IMXWriter * This, - /* [in] */ BSTR strEncoding); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_encoding )( - IMXWriter * This, - /* [retval][out] */ BSTR *strEncoding); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_byteOrderMark )( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fWriteByteOrderMark); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_byteOrderMark )( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fWriteByteOrderMark); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_indent )( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fIndentMode); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indent )( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fIndentMode); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_standalone )( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_standalone )( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_omitXMLDeclaration )( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_omitXMLDeclaration )( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_version )( - IMXWriter * This, - /* [in] */ BSTR strVersion); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( - IMXWriter * This, - /* [retval][out] */ BSTR *strVersion); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_disableOutputEscaping )( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_disableOutputEscaping )( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *flush )( - IMXWriter * This); - - END_INTERFACE - } IMXWriterVtbl; - - interface IMXWriter - { - CONST_VTBL struct IMXWriterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMXWriter_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IMXWriter_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IMXWriter_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IMXWriter_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IMXWriter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IMXWriter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IMXWriter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IMXWriter_put_output(This,varDestination) \ - (This)->lpVtbl -> put_output(This,varDestination) - -#define IMXWriter_get_output(This,varDestination) \ - (This)->lpVtbl -> get_output(This,varDestination) - -#define IMXWriter_put_encoding(This,strEncoding) \ - (This)->lpVtbl -> put_encoding(This,strEncoding) - -#define IMXWriter_get_encoding(This,strEncoding) \ - (This)->lpVtbl -> get_encoding(This,strEncoding) - -#define IMXWriter_put_byteOrderMark(This,fWriteByteOrderMark) \ - (This)->lpVtbl -> put_byteOrderMark(This,fWriteByteOrderMark) - -#define IMXWriter_get_byteOrderMark(This,fWriteByteOrderMark) \ - (This)->lpVtbl -> get_byteOrderMark(This,fWriteByteOrderMark) - -#define IMXWriter_put_indent(This,fIndentMode) \ - (This)->lpVtbl -> put_indent(This,fIndentMode) - -#define IMXWriter_get_indent(This,fIndentMode) \ - (This)->lpVtbl -> get_indent(This,fIndentMode) - -#define IMXWriter_put_standalone(This,fValue) \ - (This)->lpVtbl -> put_standalone(This,fValue) - -#define IMXWriter_get_standalone(This,fValue) \ - (This)->lpVtbl -> get_standalone(This,fValue) - -#define IMXWriter_put_omitXMLDeclaration(This,fValue) \ - (This)->lpVtbl -> put_omitXMLDeclaration(This,fValue) - -#define IMXWriter_get_omitXMLDeclaration(This,fValue) \ - (This)->lpVtbl -> get_omitXMLDeclaration(This,fValue) - -#define IMXWriter_put_version(This,strVersion) \ - (This)->lpVtbl -> put_version(This,strVersion) - -#define IMXWriter_get_version(This,strVersion) \ - (This)->lpVtbl -> get_version(This,strVersion) - -#define IMXWriter_put_disableOutputEscaping(This,fValue) \ - (This)->lpVtbl -> put_disableOutputEscaping(This,fValue) - -#define IMXWriter_get_disableOutputEscaping(This,fValue) \ - (This)->lpVtbl -> get_disableOutputEscaping(This,fValue) - -#define IMXWriter_flush(This) \ - (This)->lpVtbl -> flush(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_output_Proxy( - IMXWriter * This, - /* [in] */ VARIANT varDestination); - - -void __RPC_STUB IMXWriter_put_output_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_output_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT *varDestination); - - -void __RPC_STUB IMXWriter_get_output_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_encoding_Proxy( - IMXWriter * This, - /* [in] */ BSTR strEncoding); - - -void __RPC_STUB IMXWriter_put_encoding_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_encoding_Proxy( - IMXWriter * This, - /* [retval][out] */ BSTR *strEncoding); - - -void __RPC_STUB IMXWriter_get_encoding_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_byteOrderMark_Proxy( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fWriteByteOrderMark); - - -void __RPC_STUB IMXWriter_put_byteOrderMark_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_byteOrderMark_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fWriteByteOrderMark); - - -void __RPC_STUB IMXWriter_get_byteOrderMark_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_indent_Proxy( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fIndentMode); - - -void __RPC_STUB IMXWriter_put_indent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_indent_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fIndentMode); - - -void __RPC_STUB IMXWriter_get_indent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_standalone_Proxy( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - -void __RPC_STUB IMXWriter_put_standalone_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_standalone_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - -void __RPC_STUB IMXWriter_get_standalone_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_omitXMLDeclaration_Proxy( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - -void __RPC_STUB IMXWriter_put_omitXMLDeclaration_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_omitXMLDeclaration_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - -void __RPC_STUB IMXWriter_get_omitXMLDeclaration_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_version_Proxy( - IMXWriter * This, - /* [in] */ BSTR strVersion); - - -void __RPC_STUB IMXWriter_put_version_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_version_Proxy( - IMXWriter * This, - /* [retval][out] */ BSTR *strVersion); - - -void __RPC_STUB IMXWriter_get_version_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IMXWriter_put_disableOutputEscaping_Proxy( - IMXWriter * This, - /* [in] */ VARIANT_BOOL fValue); - - -void __RPC_STUB IMXWriter_put_disableOutputEscaping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IMXWriter_get_disableOutputEscaping_Proxy( - IMXWriter * This, - /* [retval][out] */ VARIANT_BOOL *fValue); - - -void __RPC_STUB IMXWriter_get_disableOutputEscaping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXWriter_flush_Proxy( - IMXWriter * This); - - -void __RPC_STUB IMXWriter_flush_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMXWriter_INTERFACE_DEFINED__ */ - - -#ifndef __IMXAttributes_INTERFACE_DEFINED__ -#define __IMXAttributes_INTERFACE_DEFINED__ - -/* interface IMXAttributes */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IMXAttributes; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f10d27cc-3ec0-415c-8ed8-77ab1c5e7262") - IMXAttributes : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addAttribute( - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addAttributeFromIndex( - /* [in] */ VARIANT varAtts, - /* [in] */ int nIndex) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE clear( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ int nIndex) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ int nIndex, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttributes( - /* [in] */ VARIANT varAtts) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setLocalName( - /* [in] */ int nIndex, - /* [in] */ BSTR strLocalName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setQName( - /* [in] */ int nIndex, - /* [in] */ BSTR strQName) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setType( - /* [in] */ int nIndex, - /* [in] */ BSTR strType) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setURI( - /* [in] */ int nIndex, - /* [in] */ BSTR strURI) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setValue( - /* [in] */ int nIndex, - /* [in] */ BSTR strValue) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMXAttributesVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMXAttributes * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMXAttributes * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMXAttributes * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMXAttributes * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMXAttributes * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMXAttributes * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMXAttributes * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addAttribute )( - IMXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addAttributeFromIndex )( - IMXAttributes * This, - /* [in] */ VARIANT varAtts, - /* [in] */ int nIndex); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *clear )( - IMXAttributes * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IMXAttributes * This, - /* [in] */ int nIndex); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttributes )( - IMXAttributes * This, - /* [in] */ VARIANT varAtts); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setLocalName )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strLocalName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setQName )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strQName); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setType )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strType); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setURI )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strURI); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setValue )( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strValue); - - END_INTERFACE - } IMXAttributesVtbl; - - interface IMXAttributes - { - CONST_VTBL struct IMXAttributesVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMXAttributes_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IMXAttributes_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IMXAttributes_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IMXAttributes_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IMXAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IMXAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IMXAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IMXAttributes_addAttribute(This,strURI,strLocalName,strQName,strType,strValue) \ - (This)->lpVtbl -> addAttribute(This,strURI,strLocalName,strQName,strType,strValue) - -#define IMXAttributes_addAttributeFromIndex(This,varAtts,nIndex) \ - (This)->lpVtbl -> addAttributeFromIndex(This,varAtts,nIndex) - -#define IMXAttributes_clear(This) \ - (This)->lpVtbl -> clear(This) - -#define IMXAttributes_removeAttribute(This,nIndex) \ - (This)->lpVtbl -> removeAttribute(This,nIndex) - -#define IMXAttributes_setAttribute(This,nIndex,strURI,strLocalName,strQName,strType,strValue) \ - (This)->lpVtbl -> setAttribute(This,nIndex,strURI,strLocalName,strQName,strType,strValue) - -#define IMXAttributes_setAttributes(This,varAtts) \ - (This)->lpVtbl -> setAttributes(This,varAtts) - -#define IMXAttributes_setLocalName(This,nIndex,strLocalName) \ - (This)->lpVtbl -> setLocalName(This,nIndex,strLocalName) - -#define IMXAttributes_setQName(This,nIndex,strQName) \ - (This)->lpVtbl -> setQName(This,nIndex,strQName) - -#define IMXAttributes_setType(This,nIndex,strType) \ - (This)->lpVtbl -> setType(This,nIndex,strType) - -#define IMXAttributes_setURI(This,nIndex,strURI) \ - (This)->lpVtbl -> setURI(This,nIndex,strURI) - -#define IMXAttributes_setValue(This,nIndex,strValue) \ - (This)->lpVtbl -> setValue(This,nIndex,strValue) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_addAttribute_Proxy( - IMXAttributes * This, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue); - - -void __RPC_STUB IMXAttributes_addAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_addAttributeFromIndex_Proxy( - IMXAttributes * This, - /* [in] */ VARIANT varAtts, - /* [in] */ int nIndex); - - -void __RPC_STUB IMXAttributes_addAttributeFromIndex_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_clear_Proxy( - IMXAttributes * This); - - -void __RPC_STUB IMXAttributes_clear_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_removeAttribute_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex); - - -void __RPC_STUB IMXAttributes_removeAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setAttribute_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strURI, - /* [in] */ BSTR strLocalName, - /* [in] */ BSTR strQName, - /* [in] */ BSTR strType, - /* [in] */ BSTR strValue); - - -void __RPC_STUB IMXAttributes_setAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setAttributes_Proxy( - IMXAttributes * This, - /* [in] */ VARIANT varAtts); - - -void __RPC_STUB IMXAttributes_setAttributes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setLocalName_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strLocalName); - - -void __RPC_STUB IMXAttributes_setLocalName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setQName_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strQName); - - -void __RPC_STUB IMXAttributes_setQName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setType_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strType); - - -void __RPC_STUB IMXAttributes_setType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setURI_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strURI); - - -void __RPC_STUB IMXAttributes_setURI_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXAttributes_setValue_Proxy( - IMXAttributes * This, - /* [in] */ int nIndex, - /* [in] */ BSTR strValue); - - -void __RPC_STUB IMXAttributes_setValue_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMXAttributes_INTERFACE_DEFINED__ */ - - -#ifndef __IMXReaderControl_INTERFACE_DEFINED__ -#define __IMXReaderControl_INTERFACE_DEFINED__ - -/* interface IMXReaderControl */ -/* [unique][helpstring][uuid][nonextensible][oleautomation][dual][local][object] */ - - -EXTERN_C const IID IID_IMXReaderControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("808f4e35-8d5a-4fbe-8466-33a41279ed30") - IMXReaderControl : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE abort( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE resume( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE suspend( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IMXReaderControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IMXReaderControl * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IMXReaderControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IMXReaderControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IMXReaderControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IMXReaderControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IMXReaderControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IMXReaderControl * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IMXReaderControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *resume )( - IMXReaderControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *suspend )( - IMXReaderControl * This); - - END_INTERFACE - } IMXReaderControlVtbl; - - interface IMXReaderControl - { - CONST_VTBL struct IMXReaderControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IMXReaderControl_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IMXReaderControl_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IMXReaderControl_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IMXReaderControl_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IMXReaderControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IMXReaderControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IMXReaderControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IMXReaderControl_abort(This) \ - (This)->lpVtbl -> abort(This) - -#define IMXReaderControl_resume(This) \ - (This)->lpVtbl -> resume(This) - -#define IMXReaderControl_suspend(This) \ - (This)->lpVtbl -> suspend(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXReaderControl_abort_Proxy( - IMXReaderControl * This); - - -void __RPC_STUB IMXReaderControl_abort_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXReaderControl_resume_Proxy( - IMXReaderControl * This); - - -void __RPC_STUB IMXReaderControl_resume_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IMXReaderControl_suspend_Proxy( - IMXReaderControl * This); - - -void __RPC_STUB IMXReaderControl_suspend_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IMXReaderControl_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLElementCollection_INTERFACE_DEFINED__ -#define __IXMLElementCollection_INTERFACE_DEFINED__ - -/* interface IXMLElementCollection */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElementCollection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("65725580-9B5D-11d0-9BFE-00C04FC99C8E") - IXMLElementCollection : public IDispatch - { - public: - virtual /* [id][hidden][restricted][propput] */ HRESULT STDMETHODCALLTYPE put_length( - /* [in] */ long v) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( - /* [out][retval] */ long *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get__newEnum( - /* [out][retval] */ IUnknown **ppUnk) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE item( - /* [in][optional] */ VARIANT var1, - /* [in][optional] */ VARIANT var2, - /* [out][retval] */ IDispatch **ppDisp) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLElementCollectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElementCollection * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElementCollection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElementCollection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElementCollection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElementCollection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElementCollection * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLElementCollection * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [id][hidden][restricted][propput] */ HRESULT ( STDMETHODCALLTYPE *put_length )( - IXMLElementCollection * This, - /* [in] */ long v); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLElementCollection * This, - /* [out][retval] */ long *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLElementCollection * This, - /* [out][retval] */ IUnknown **ppUnk); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *item )( - IXMLElementCollection * This, - /* [in][optional] */ VARIANT var1, - /* [in][optional] */ VARIANT var2, - /* [out][retval] */ IDispatch **ppDisp); - - END_INTERFACE - } IXMLElementCollectionVtbl; - - interface IXMLElementCollection - { - CONST_VTBL struct IXMLElementCollectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElementCollection_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLElementCollection_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLElementCollection_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLElementCollection_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLElementCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLElementCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLElementCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLElementCollection_put_length(This,v) \ - (This)->lpVtbl -> put_length(This,v) - -#define IXMLElementCollection_get_length(This,p) \ - (This)->lpVtbl -> get_length(This,p) - -#define IXMLElementCollection_get__newEnum(This,ppUnk) \ - (This)->lpVtbl -> get__newEnum(This,ppUnk) - -#define IXMLElementCollection_item(This,var1,var2,ppDisp) \ - (This)->lpVtbl -> item(This,var1,var2,ppDisp) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id][hidden][restricted][propput] */ HRESULT STDMETHODCALLTYPE IXMLElementCollection_put_length_Proxy( - IXMLElementCollection * This, - /* [in] */ long v); - - -void __RPC_STUB IXMLElementCollection_put_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElementCollection_get_length_Proxy( - IXMLElementCollection * This, - /* [out][retval] */ long *p); - - -void __RPC_STUB IXMLElementCollection_get_length_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLElementCollection_get__newEnum_Proxy( - IXMLElementCollection * This, - /* [out][retval] */ IUnknown **ppUnk); - - -void __RPC_STUB IXMLElementCollection_get__newEnum_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElementCollection_item_Proxy( - IXMLElementCollection * This, - /* [in][optional] */ VARIANT var1, - /* [in][optional] */ VARIANT var2, - /* [out][retval] */ IDispatch **ppDisp); - - -void __RPC_STUB IXMLElementCollection_item_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLElementCollection_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDocument_INTERFACE_DEFINED__ -#define __IXMLDocument_INTERFACE_DEFINED__ - -/* interface IXMLDocument */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDocument; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F52E2B61-18A1-11d1-B105-00805F49916B") - IXMLDocument : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_root( - /* [out][retval] */ IXMLElement **p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileSize( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileModifiedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileUpdatedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_URL( - /* [in] */ BSTR p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *pl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_charset( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_charset( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_version( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_dtdURL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement **ppElem) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDocumentVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDocument * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDocument * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDocument * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDocument * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDocument * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDocument * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDocument * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_root )( - IXMLDocument * This, - /* [out][retval] */ IXMLElement **p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileSize )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileModifiedDate )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileUpdatedDate )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( - IXMLDocument * This, - /* [in] */ BSTR p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDocument * This, - /* [out][retval] */ long *pl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_charset )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_charset )( - IXMLDocument * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dtdURL )( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDocument * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement **ppElem); - - END_INTERFACE - } IXMLDocumentVtbl; - - interface IXMLDocument - { - CONST_VTBL struct IXMLDocumentVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDocument_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDocument_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDocument_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDocument_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDocument_get_root(This,p) \ - (This)->lpVtbl -> get_root(This,p) - -#define IXMLDocument_get_fileSize(This,p) \ - (This)->lpVtbl -> get_fileSize(This,p) - -#define IXMLDocument_get_fileModifiedDate(This,p) \ - (This)->lpVtbl -> get_fileModifiedDate(This,p) - -#define IXMLDocument_get_fileUpdatedDate(This,p) \ - (This)->lpVtbl -> get_fileUpdatedDate(This,p) - -#define IXMLDocument_get_URL(This,p) \ - (This)->lpVtbl -> get_URL(This,p) - -#define IXMLDocument_put_URL(This,p) \ - (This)->lpVtbl -> put_URL(This,p) - -#define IXMLDocument_get_mimeType(This,p) \ - (This)->lpVtbl -> get_mimeType(This,p) - -#define IXMLDocument_get_readyState(This,pl) \ - (This)->lpVtbl -> get_readyState(This,pl) - -#define IXMLDocument_get_charset(This,p) \ - (This)->lpVtbl -> get_charset(This,p) - -#define IXMLDocument_put_charset(This,p) \ - (This)->lpVtbl -> put_charset(This,p) - -#define IXMLDocument_get_version(This,p) \ - (This)->lpVtbl -> get_version(This,p) - -#define IXMLDocument_get_doctype(This,p) \ - (This)->lpVtbl -> get_doctype(This,p) - -#define IXMLDocument_get_dtdURL(This,p) \ - (This)->lpVtbl -> get_dtdURL(This,p) - -#define IXMLDocument_createElement(This,vType,var1,ppElem) \ - (This)->lpVtbl -> createElement(This,vType,var1,ppElem) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_root_Proxy( - IXMLDocument * This, - /* [out][retval] */ IXMLElement **p); - - -void __RPC_STUB IXMLDocument_get_root_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileSize_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_fileSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileModifiedDate_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_fileModifiedDate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileUpdatedDate_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_fileUpdatedDate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_URL_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_URL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDocument_put_URL_Proxy( - IXMLDocument * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLDocument_put_URL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_mimeType_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_mimeType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_readyState_Proxy( - IXMLDocument * This, - /* [out][retval] */ long *pl); - - -void __RPC_STUB IXMLDocument_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_charset_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_charset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDocument_put_charset_Proxy( - IXMLDocument * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLDocument_put_charset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_version_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_version_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_doctype_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_doctype_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument_get_dtdURL_Proxy( - IXMLDocument * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument_get_dtdURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDocument_createElement_Proxy( - IXMLDocument * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement **ppElem); - - -void __RPC_STUB IXMLDocument_createElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDocument_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDocument2_INTERFACE_DEFINED__ -#define __IXMLDocument2_INTERFACE_DEFINED__ - -/* interface IXMLDocument2 */ -/* [hidden][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDocument2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9") - IXMLDocument2 : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_root( - /* [out][retval] */ IXMLElement2 **p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileSize( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileModifiedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_fileUpdatedDate( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_URL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_URL( - /* [in] */ BSTR p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [out][retval] */ long *pl) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_charset( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_charset( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_version( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_doctype( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE get_dtdURL( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE createElement( - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement2 **ppElem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_async( - /* [out][retval] */ VARIANT_BOOL *pf) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_async( - /* [in] */ VARIANT_BOOL f) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDocument2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDocument2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDocument2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDocument2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDocument2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDocument2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDocument2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDocument2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_root )( - IXMLDocument2 * This, - /* [out][retval] */ IXMLElement2 **p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileSize )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileModifiedDate )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileUpdatedDate )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_URL )( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLDocument2 * This, - /* [out][retval] */ long *pl); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_charset )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_charset )( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_doctype )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dtdURL )( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *createElement )( - IXMLDocument2 * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement2 **ppElem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_async )( - IXMLDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *pf); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_async )( - IXMLDocument2 * This, - /* [in] */ VARIANT_BOOL f); - - END_INTERFACE - } IXMLDocument2Vtbl; - - interface IXMLDocument2 - { - CONST_VTBL struct IXMLDocument2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDocument2_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDocument2_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDocument2_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDocument2_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDocument2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDocument2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDocument2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDocument2_get_root(This,p) \ - (This)->lpVtbl -> get_root(This,p) - -#define IXMLDocument2_get_fileSize(This,p) \ - (This)->lpVtbl -> get_fileSize(This,p) - -#define IXMLDocument2_get_fileModifiedDate(This,p) \ - (This)->lpVtbl -> get_fileModifiedDate(This,p) - -#define IXMLDocument2_get_fileUpdatedDate(This,p) \ - (This)->lpVtbl -> get_fileUpdatedDate(This,p) - -#define IXMLDocument2_get_URL(This,p) \ - (This)->lpVtbl -> get_URL(This,p) - -#define IXMLDocument2_put_URL(This,p) \ - (This)->lpVtbl -> put_URL(This,p) - -#define IXMLDocument2_get_mimeType(This,p) \ - (This)->lpVtbl -> get_mimeType(This,p) - -#define IXMLDocument2_get_readyState(This,pl) \ - (This)->lpVtbl -> get_readyState(This,pl) - -#define IXMLDocument2_get_charset(This,p) \ - (This)->lpVtbl -> get_charset(This,p) - -#define IXMLDocument2_put_charset(This,p) \ - (This)->lpVtbl -> put_charset(This,p) - -#define IXMLDocument2_get_version(This,p) \ - (This)->lpVtbl -> get_version(This,p) - -#define IXMLDocument2_get_doctype(This,p) \ - (This)->lpVtbl -> get_doctype(This,p) - -#define IXMLDocument2_get_dtdURL(This,p) \ - (This)->lpVtbl -> get_dtdURL(This,p) - -#define IXMLDocument2_createElement(This,vType,var1,ppElem) \ - (This)->lpVtbl -> createElement(This,vType,var1,ppElem) - -#define IXMLDocument2_get_async(This,pf) \ - (This)->lpVtbl -> get_async(This,pf) - -#define IXMLDocument2_put_async(This,f) \ - (This)->lpVtbl -> put_async(This,f) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_root_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ IXMLElement2 **p); - - -void __RPC_STUB IXMLDocument2_get_root_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileSize_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_fileSize_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileModifiedDate_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_fileModifiedDate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileUpdatedDate_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_fileUpdatedDate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_URL_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_URL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_put_URL_Proxy( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLDocument2_put_URL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_mimeType_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_mimeType_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_readyState_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ long *pl); - - -void __RPC_STUB IXMLDocument2_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_charset_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_charset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_put_charset_Proxy( - IXMLDocument2 * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLDocument2_put_charset_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_version_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_version_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_doctype_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_doctype_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][hidden][restricted][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_dtdURL_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLDocument2_get_dtdURL_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_createElement_Proxy( - IXMLDocument2 * This, - /* [in] */ VARIANT vType, - /* [in][optional] */ VARIANT var1, - /* [out][retval] */ IXMLElement2 **ppElem); - - -void __RPC_STUB IXMLDocument2_createElement_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_get_async_Proxy( - IXMLDocument2 * This, - /* [out][retval] */ VARIANT_BOOL *pf); - - -void __RPC_STUB IXMLDocument2_get_async_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDocument2_put_async_Proxy( - IXMLDocument2 * This, - /* [in] */ VARIANT_BOOL f); - - -void __RPC_STUB IXMLDocument2_put_async_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDocument2_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLElement_INTERFACE_DEFINED__ -#define __IXMLElement_INTERFACE_DEFINED__ - -/* interface IXMLElement */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElement; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3F7F31AC-E15F-11d0-9C25-00C04FC99C8E") - IXMLElement : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tagName( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parent( - /* [out][retval] */ IXMLElement **ppParent) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR strPropertyName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_children( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_type( - /* [out][retval] */ long *plType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addChild( - /* [in] */ IXMLElement *pChildElem, - long lIndex, - long lReserved) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLElement *pChildElem) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLElementVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElement * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElement * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElement * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElement * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElement * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElement * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLElement * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tagName )( - IXMLElement * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parent )( - IXMLElement * This, - /* [out][retval] */ IXMLElement **ppParent); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLElement * This, - /* [in] */ BSTR strPropertyName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_children )( - IXMLElement * This, - /* [out][retval] */ IXMLElementCollection **pp); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( - IXMLElement * This, - /* [out][retval] */ long *plType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLElement * This, - /* [in] */ BSTR p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addChild )( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem, - long lIndex, - long lReserved); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem); - - END_INTERFACE - } IXMLElementVtbl; - - interface IXMLElement - { - CONST_VTBL struct IXMLElementVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElement_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLElement_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLElement_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLElement_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLElement_get_tagName(This,p) \ - (This)->lpVtbl -> get_tagName(This,p) - -#define IXMLElement_put_tagName(This,p) \ - (This)->lpVtbl -> put_tagName(This,p) - -#define IXMLElement_get_parent(This,ppParent) \ - (This)->lpVtbl -> get_parent(This,ppParent) - -#define IXMLElement_setAttribute(This,strPropertyName,PropertyValue) \ - (This)->lpVtbl -> setAttribute(This,strPropertyName,PropertyValue) - -#define IXMLElement_getAttribute(This,strPropertyName,PropertyValue) \ - (This)->lpVtbl -> getAttribute(This,strPropertyName,PropertyValue) - -#define IXMLElement_removeAttribute(This,strPropertyName) \ - (This)->lpVtbl -> removeAttribute(This,strPropertyName) - -#define IXMLElement_get_children(This,pp) \ - (This)->lpVtbl -> get_children(This,pp) - -#define IXMLElement_get_type(This,plType) \ - (This)->lpVtbl -> get_type(This,plType) - -#define IXMLElement_get_text(This,p) \ - (This)->lpVtbl -> get_text(This,p) - -#define IXMLElement_put_text(This,p) \ - (This)->lpVtbl -> put_text(This,p) - -#define IXMLElement_addChild(This,pChildElem,lIndex,lReserved) \ - (This)->lpVtbl -> addChild(This,pChildElem,lIndex,lReserved) - -#define IXMLElement_removeChild(This,pChildElem) \ - (This)->lpVtbl -> removeChild(This,pChildElem) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement_get_tagName_Proxy( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLElement_get_tagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLElement_put_tagName_Proxy( - IXMLElement * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLElement_put_tagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement_get_parent_Proxy( - IXMLElement * This, - /* [out][retval] */ IXMLElement **ppParent); - - -void __RPC_STUB IXMLElement_get_parent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement_setAttribute_Proxy( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - -void __RPC_STUB IXMLElement_setAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement_getAttribute_Proxy( - IXMLElement * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - -void __RPC_STUB IXMLElement_getAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement_removeAttribute_Proxy( - IXMLElement * This, - /* [in] */ BSTR strPropertyName); - - -void __RPC_STUB IXMLElement_removeAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement_get_children_Proxy( - IXMLElement * This, - /* [out][retval] */ IXMLElementCollection **pp); - - -void __RPC_STUB IXMLElement_get_children_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement_get_type_Proxy( - IXMLElement * This, - /* [out][retval] */ long *plType); - - -void __RPC_STUB IXMLElement_get_type_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement_get_text_Proxy( - IXMLElement * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLElement_get_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLElement_put_text_Proxy( - IXMLElement * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLElement_put_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement_addChild_Proxy( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem, - long lIndex, - long lReserved); - - -void __RPC_STUB IXMLElement_addChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement_removeChild_Proxy( - IXMLElement * This, - /* [in] */ IXMLElement *pChildElem); - - -void __RPC_STUB IXMLElement_removeChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLElement_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLElement2_INTERFACE_DEFINED__ -#define __IXMLElement2_INTERFACE_DEFINED__ - -/* interface IXMLElement2 */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLElement2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9") - IXMLElement2 : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tagName( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tagName( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_parent( - /* [out][retval] */ IXMLElement2 **ppParent) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setAttribute( - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAttribute( - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAttribute( - /* [in] */ BSTR strPropertyName) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_children( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_type( - /* [out][retval] */ long *plType) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_text( - /* [out][retval] */ BSTR *p) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_text( - /* [in] */ BSTR p) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addChild( - /* [in] */ IXMLElement2 *pChildElem, - long lIndex, - long lReserved) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeChild( - /* [in] */ IXMLElement2 *pChildElem) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes( - /* [out][retval] */ IXMLElementCollection **pp) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLElement2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLElement2 * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLElement2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLElement2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLElement2 * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLElement2 * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLElement2 * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLElement2 * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tagName )( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tagName )( - IXMLElement2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_parent )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElement2 **ppParent); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAttribute )( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_children )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( - IXMLElement2 * This, - /* [out][retval] */ long *plType); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_text )( - IXMLElement2 * This, - /* [in] */ BSTR p); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *addChild )( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem, - long lIndex, - long lReserved); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeChild )( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - END_INTERFACE - } IXMLElement2Vtbl; - - interface IXMLElement2 - { - CONST_VTBL struct IXMLElement2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLElement2_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLElement2_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLElement2_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLElement2_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLElement2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLElement2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLElement2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLElement2_get_tagName(This,p) \ - (This)->lpVtbl -> get_tagName(This,p) - -#define IXMLElement2_put_tagName(This,p) \ - (This)->lpVtbl -> put_tagName(This,p) - -#define IXMLElement2_get_parent(This,ppParent) \ - (This)->lpVtbl -> get_parent(This,ppParent) - -#define IXMLElement2_setAttribute(This,strPropertyName,PropertyValue) \ - (This)->lpVtbl -> setAttribute(This,strPropertyName,PropertyValue) - -#define IXMLElement2_getAttribute(This,strPropertyName,PropertyValue) \ - (This)->lpVtbl -> getAttribute(This,strPropertyName,PropertyValue) - -#define IXMLElement2_removeAttribute(This,strPropertyName) \ - (This)->lpVtbl -> removeAttribute(This,strPropertyName) - -#define IXMLElement2_get_children(This,pp) \ - (This)->lpVtbl -> get_children(This,pp) - -#define IXMLElement2_get_type(This,plType) \ - (This)->lpVtbl -> get_type(This,plType) - -#define IXMLElement2_get_text(This,p) \ - (This)->lpVtbl -> get_text(This,p) - -#define IXMLElement2_put_text(This,p) \ - (This)->lpVtbl -> put_text(This,p) - -#define IXMLElement2_addChild(This,pChildElem,lIndex,lReserved) \ - (This)->lpVtbl -> addChild(This,pChildElem,lIndex,lReserved) - -#define IXMLElement2_removeChild(This,pChildElem) \ - (This)->lpVtbl -> removeChild(This,pChildElem) - -#define IXMLElement2_get_attributes(This,pp) \ - (This)->lpVtbl -> get_attributes(This,pp) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_tagName_Proxy( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLElement2_get_tagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLElement2_put_tagName_Proxy( - IXMLElement2 * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLElement2_put_tagName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_parent_Proxy( - IXMLElement2 * This, - /* [out][retval] */ IXMLElement2 **ppParent); - - -void __RPC_STUB IXMLElement2_get_parent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement2_setAttribute_Proxy( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [in] */ VARIANT PropertyValue); - - -void __RPC_STUB IXMLElement2_setAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement2_getAttribute_Proxy( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName, - /* [out][retval] */ VARIANT *PropertyValue); - - -void __RPC_STUB IXMLElement2_getAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement2_removeAttribute_Proxy( - IXMLElement2 * This, - /* [in] */ BSTR strPropertyName); - - -void __RPC_STUB IXMLElement2_removeAttribute_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_children_Proxy( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - -void __RPC_STUB IXMLElement2_get_children_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_type_Proxy( - IXMLElement2 * This, - /* [out][retval] */ long *plType); - - -void __RPC_STUB IXMLElement2_get_type_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_text_Proxy( - IXMLElement2 * This, - /* [out][retval] */ BSTR *p); - - -void __RPC_STUB IXMLElement2_get_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLElement2_put_text_Proxy( - IXMLElement2 * This, - /* [in] */ BSTR p); - - -void __RPC_STUB IXMLElement2_put_text_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement2_addChild_Proxy( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem, - long lIndex, - long lReserved); - - -void __RPC_STUB IXMLElement2_addChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLElement2_removeChild_Proxy( - IXMLElement2 * This, - /* [in] */ IXMLElement2 *pChildElem); - - -void __RPC_STUB IXMLElement2_removeChild_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLElement2_get_attributes_Proxy( - IXMLElement2 * This, - /* [out][retval] */ IXMLElementCollection **pp); - - -void __RPC_STUB IXMLElement2_get_attributes_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLElement2_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLAttribute_INTERFACE_DEFINED__ -#define __IXMLAttribute_INTERFACE_DEFINED__ - -/* interface IXMLAttribute */ -/* [helpstring][hidden][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLAttribute; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("D4D4A0FC-3B73-11d1-B2B4-00C04FB92596") - IXMLAttribute : public IDispatch - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_name( - /* [out][retval] */ BSTR *n) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_value( - /* [out][retval] */ BSTR *v) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLAttributeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLAttribute * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLAttribute * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLAttribute * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLAttribute * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLAttribute * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLAttribute * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLAttribute * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( - IXMLAttribute * This, - /* [out][retval] */ BSTR *n); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( - IXMLAttribute * This, - /* [out][retval] */ BSTR *v); - - END_INTERFACE - } IXMLAttributeVtbl; - - interface IXMLAttribute - { - CONST_VTBL struct IXMLAttributeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLAttribute_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLAttribute_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLAttribute_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLAttribute_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLAttribute_get_name(This,n) \ - (This)->lpVtbl -> get_name(This,n) - -#define IXMLAttribute_get_value(This,v) \ - (This)->lpVtbl -> get_value(This,v) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLAttribute_get_name_Proxy( - IXMLAttribute * This, - /* [out][retval] */ BSTR *n); - - -void __RPC_STUB IXMLAttribute_get_name_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLAttribute_get_value_Proxy( - IXMLAttribute * This, - /* [out][retval] */ BSTR *v); - - -void __RPC_STUB IXMLAttribute_get_value_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLAttribute_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLError_INTERFACE_DEFINED__ -#define __IXMLError_INTERFACE_DEFINED__ - -/* interface IXMLError */ -/* [helpstring][hidden][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLError; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("948C5AD3-C58D-11d0-9C0B-00C04FC99C8E") - IXMLError : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetErrorInfo( - XML_ERROR *pErrorReturn) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLErrorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLError * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLError * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLError * This); - - HRESULT ( STDMETHODCALLTYPE *GetErrorInfo )( - IXMLError * This, - XML_ERROR *pErrorReturn); - - END_INTERFACE - } IXMLErrorVtbl; - - interface IXMLError - { - CONST_VTBL struct IXMLErrorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLError_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLError_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLError_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLError_GetErrorInfo(This,pErrorReturn) \ - (This)->lpVtbl -> GetErrorInfo(This,pErrorReturn) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -HRESULT STDMETHODCALLTYPE IXMLError_GetErrorInfo_Proxy( - IXMLError * This, - XML_ERROR *pErrorReturn); - - -void __RPC_STUB IXMLError_GetErrorInfo_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLError_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLDOMSelection_INTERFACE_DEFINED__ -#define __IXMLDOMSelection_INTERFACE_DEFINED__ - -/* interface IXMLDOMSelection */ -/* [unique][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IXMLDOMSelection; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("AA634FC7-5888-44a7-A257-3A47150D3A0E") - IXMLDOMSelection : public IXMLDOMNodeList - { - public: - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_expr( - /* [retval][out] */ BSTR *expression) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_expr( - /* [in] */ BSTR expression) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_context( - /* [retval][out] */ IXMLDOMNode **ppNode) = 0; - - virtual /* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE putref_context( - /* [in] */ IXMLDOMNode *pNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE peekNode( - /* [retval][out] */ IXMLDOMNode **ppNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE matches( - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ IXMLDOMNode **ppNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeNext( - /* [retval][out] */ IXMLDOMNode **ppNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeAll( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE clone( - /* [retval][out] */ IXMLDOMSelection **ppNode) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getProperty( - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setProperty( - /* [in] */ BSTR name, - /* [in] */ VARIANT value) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLDOMSelectionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLDOMSelection * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLDOMSelection * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLDOMSelection * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLDOMSelection * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLDOMSelection * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLDOMSelection * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLDOMSelection * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( - IXMLDOMSelection * This, - /* [in] */ long index, - /* [retval][out] */ IXMLDOMNode **listItem); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( - IXMLDOMSelection * This, - /* [retval][out] */ long *listLength); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *nextNode )( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **nextItem); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *reset )( - IXMLDOMSelection * This); - - /* [id][hidden][restricted][propget] */ HRESULT ( STDMETHODCALLTYPE *get__newEnum )( - IXMLDOMSelection * This, - /* [out][retval] */ IUnknown **ppUnk); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_expr )( - IXMLDOMSelection * This, - /* [retval][out] */ BSTR *expression); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_expr )( - IXMLDOMSelection * This, - /* [in] */ BSTR expression); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_context )( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - /* [helpstring][id][propputref] */ HRESULT ( STDMETHODCALLTYPE *putref_context )( - IXMLDOMSelection * This, - /* [in] */ IXMLDOMNode *pNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *peekNode )( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *matches )( - IXMLDOMSelection * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ IXMLDOMNode **ppNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeNext )( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *removeAll )( - IXMLDOMSelection * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *clone )( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMSelection **ppNode); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getProperty )( - IXMLDOMSelection * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setProperty )( - IXMLDOMSelection * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - END_INTERFACE - } IXMLDOMSelectionVtbl; - - interface IXMLDOMSelection - { - CONST_VTBL struct IXMLDOMSelectionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLDOMSelection_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLDOMSelection_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLDOMSelection_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLDOMSelection_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLDOMSelection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLDOMSelection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLDOMSelection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLDOMSelection_get_item(This,index,listItem) \ - (This)->lpVtbl -> get_item(This,index,listItem) - -#define IXMLDOMSelection_get_length(This,listLength) \ - (This)->lpVtbl -> get_length(This,listLength) - -#define IXMLDOMSelection_nextNode(This,nextItem) \ - (This)->lpVtbl -> nextNode(This,nextItem) - -#define IXMLDOMSelection_reset(This) \ - (This)->lpVtbl -> reset(This) - -#define IXMLDOMSelection_get__newEnum(This,ppUnk) \ - (This)->lpVtbl -> get__newEnum(This,ppUnk) - - -#define IXMLDOMSelection_get_expr(This,expression) \ - (This)->lpVtbl -> get_expr(This,expression) - -#define IXMLDOMSelection_put_expr(This,expression) \ - (This)->lpVtbl -> put_expr(This,expression) - -#define IXMLDOMSelection_get_context(This,ppNode) \ - (This)->lpVtbl -> get_context(This,ppNode) - -#define IXMLDOMSelection_putref_context(This,pNode) \ - (This)->lpVtbl -> putref_context(This,pNode) - -#define IXMLDOMSelection_peekNode(This,ppNode) \ - (This)->lpVtbl -> peekNode(This,ppNode) - -#define IXMLDOMSelection_matches(This,pNode,ppNode) \ - (This)->lpVtbl -> matches(This,pNode,ppNode) - -#define IXMLDOMSelection_removeNext(This,ppNode) \ - (This)->lpVtbl -> removeNext(This,ppNode) - -#define IXMLDOMSelection_removeAll(This) \ - (This)->lpVtbl -> removeAll(This) - -#define IXMLDOMSelection_clone(This,ppNode) \ - (This)->lpVtbl -> clone(This,ppNode) - -#define IXMLDOMSelection_getProperty(This,name,value) \ - (This)->lpVtbl -> getProperty(This,name,value) - -#define IXMLDOMSelection_setProperty(This,name,value) \ - (This)->lpVtbl -> setProperty(This,name,value) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_get_expr_Proxy( - IXMLDOMSelection * This, - /* [retval][out] */ BSTR *expression); - - -void __RPC_STUB IXMLDOMSelection_get_expr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_put_expr_Proxy( - IXMLDOMSelection * This, - /* [in] */ BSTR expression); - - -void __RPC_STUB IXMLDOMSelection_put_expr_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_get_context_Proxy( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - -void __RPC_STUB IXMLDOMSelection_get_context_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propputref] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_putref_context_Proxy( - IXMLDOMSelection * This, - /* [in] */ IXMLDOMNode *pNode); - - -void __RPC_STUB IXMLDOMSelection_putref_context_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_peekNode_Proxy( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - -void __RPC_STUB IXMLDOMSelection_peekNode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_matches_Proxy( - IXMLDOMSelection * This, - /* [in] */ IXMLDOMNode *pNode, - /* [retval][out] */ IXMLDOMNode **ppNode); - - -void __RPC_STUB IXMLDOMSelection_matches_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_removeNext_Proxy( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMNode **ppNode); - - -void __RPC_STUB IXMLDOMSelection_removeNext_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_removeAll_Proxy( - IXMLDOMSelection * This); - - -void __RPC_STUB IXMLDOMSelection_removeAll_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_clone_Proxy( - IXMLDOMSelection * This, - /* [retval][out] */ IXMLDOMSelection **ppNode); - - -void __RPC_STUB IXMLDOMSelection_clone_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_getProperty_Proxy( - IXMLDOMSelection * This, - /* [in] */ BSTR name, - /* [retval][out] */ VARIANT *value); - - -void __RPC_STUB IXMLDOMSelection_getProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLDOMSelection_setProperty_Proxy( - IXMLDOMSelection * This, - /* [in] */ BSTR name, - /* [in] */ VARIANT value); - - -void __RPC_STUB IXMLDOMSelection_setProperty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLDOMSelection_INTERFACE_DEFINED__ */ - - -#ifndef __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ -#define __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface XMLDOMDocumentEvents */ -/* [uuid][hidden] */ - - -EXTERN_C const IID DIID_XMLDOMDocumentEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3efaa427-272f-11d2-836f-0000f87a7782") - XMLDOMDocumentEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct XMLDOMDocumentEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - XMLDOMDocumentEvents * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - XMLDOMDocumentEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - XMLDOMDocumentEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - XMLDOMDocumentEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - XMLDOMDocumentEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - XMLDOMDocumentEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - XMLDOMDocumentEvents * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - END_INTERFACE - } XMLDOMDocumentEventsVtbl; - - interface XMLDOMDocumentEvents - { - CONST_VTBL struct XMLDOMDocumentEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define XMLDOMDocumentEvents_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define XMLDOMDocumentEvents_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define XMLDOMDocumentEvents_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define XMLDOMDocumentEvents_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define XMLDOMDocumentEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define XMLDOMDocumentEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define XMLDOMDocumentEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ */ - - -#ifndef __IDSOControl_INTERFACE_DEFINED__ -#define __IDSOControl_INTERFACE_DEFINED__ - -/* interface IDSOControl */ -/* [unique][helpstring][hidden][nonextensible][oleautomation][dual][uuid][object][local] */ - - -EXTERN_C const IID IID_IDSOControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("310afa62-0575-11d2-9ca9-0060b0ec3d39") - IDSOControl : public IDispatch - { - public: - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_XMLDocument( - /* [retval][out] */ IXMLDOMDocument **ppDoc) = 0; - - virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_XMLDocument( - /* [in] */ IXMLDOMDocument *ppDoc) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_JavaDSOCompatible( - /* [retval][out] */ BOOL *fJavaDSOCompatible) = 0; - - virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_JavaDSOCompatible( - /* [in] */ BOOL fJavaDSOCompatible) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [retval][out] */ long *state) = 0; - - }; - -#else /* C style interface */ - - typedef struct IDSOControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDSOControl * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDSOControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDSOControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IDSOControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IDSOControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IDSOControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IDSOControl * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_XMLDocument )( - IDSOControl * This, - /* [retval][out] */ IXMLDOMDocument **ppDoc); - - /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_XMLDocument )( - IDSOControl * This, - /* [in] */ IXMLDOMDocument *ppDoc); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_JavaDSOCompatible )( - IDSOControl * This, - /* [retval][out] */ BOOL *fJavaDSOCompatible); - - /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_JavaDSOCompatible )( - IDSOControl * This, - /* [in] */ BOOL fJavaDSOCompatible); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IDSOControl * This, - /* [retval][out] */ long *state); - - END_INTERFACE - } IDSOControlVtbl; - - interface IDSOControl - { - CONST_VTBL struct IDSOControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDSOControl_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IDSOControl_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IDSOControl_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IDSOControl_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IDSOControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IDSOControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IDSOControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IDSOControl_get_XMLDocument(This,ppDoc) \ - (This)->lpVtbl -> get_XMLDocument(This,ppDoc) - -#define IDSOControl_put_XMLDocument(This,ppDoc) \ - (This)->lpVtbl -> put_XMLDocument(This,ppDoc) - -#define IDSOControl_get_JavaDSOCompatible(This,fJavaDSOCompatible) \ - (This)->lpVtbl -> get_JavaDSOCompatible(This,fJavaDSOCompatible) - -#define IDSOControl_put_JavaDSOCompatible(This,fJavaDSOCompatible) \ - (This)->lpVtbl -> put_JavaDSOCompatible(This,fJavaDSOCompatible) - -#define IDSOControl_get_readyState(This,state) \ - (This)->lpVtbl -> get_readyState(This,state) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE IDSOControl_get_XMLDocument_Proxy( - IDSOControl * This, - /* [retval][out] */ IXMLDOMDocument **ppDoc); - - -void __RPC_STUB IDSOControl_get_XMLDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propput] */ HRESULT STDMETHODCALLTYPE IDSOControl_put_XMLDocument_Proxy( - IDSOControl * This, - /* [in] */ IXMLDOMDocument *ppDoc); - - -void __RPC_STUB IDSOControl_put_XMLDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE IDSOControl_get_JavaDSOCompatible_Proxy( - IDSOControl * This, - /* [retval][out] */ BOOL *fJavaDSOCompatible); - - -void __RPC_STUB IDSOControl_get_JavaDSOCompatible_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propput] */ HRESULT STDMETHODCALLTYPE IDSOControl_put_JavaDSOCompatible_Proxy( - IDSOControl * This, - /* [in] */ BOOL fJavaDSOCompatible); - - -void __RPC_STUB IDSOControl_put_JavaDSOCompatible_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE IDSOControl_get_readyState_Proxy( - IDSOControl * This, - /* [retval][out] */ long *state); - - -void __RPC_STUB IDSOControl_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IDSOControl_INTERFACE_DEFINED__ */ - - -#ifndef __IXMLHTTPRequest_INTERFACE_DEFINED__ -#define __IXMLHTTPRequest_INTERFACE_DEFINED__ - -/* interface IXMLHTTPRequest */ -/* [unique][helpstring][oleautomation][dual][uuid][object] */ - - -EXTERN_C const IID IID_IXMLHTTPRequest; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ED8C108D-4349-11D2-91A4-00C04F7969E8") - IXMLHTTPRequest : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE open( - /* [in] */ BSTR bstrMethod, - /* [in] */ BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setRequestHeader( - /* [in] */ BSTR bstrHeader, - /* [in] */ BSTR bstrValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getResponseHeader( - /* [in] */ BSTR bstrHeader, - /* [retval][out] */ BSTR *pbstrValue) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getAllResponseHeaders( - /* [retval][out] */ BSTR *pbstrHeaders) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE send( - /* [optional][in] */ VARIANT varBody) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE abort( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_status( - /* [retval][out] */ long *plStatus) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_statusText( - /* [retval][out] */ BSTR *pbstrStatus) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseXML( - /* [retval][out] */ IDispatch **ppBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseText( - /* [retval][out] */ BSTR *pbstrBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseBody( - /* [retval][out] */ VARIANT *pvarBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_responseStream( - /* [retval][out] */ VARIANT *pvarBody) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_readyState( - /* [retval][out] */ long *plState) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_onreadystatechange( - /* [in] */ IDispatch *pReadyStateSink) = 0; - - }; - -#else /* C style interface */ - - typedef struct IXMLHTTPRequestVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IXMLHTTPRequest * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IXMLHTTPRequest * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IXMLHTTPRequest * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IXMLHTTPRequest * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IXMLHTTPRequest * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IXMLHTTPRequest * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IXMLHTTPRequest * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *open )( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrMethod, - /* [in] */ BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setRequestHeader )( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [in] */ BSTR bstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getResponseHeader )( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [retval][out] */ BSTR *pbstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAllResponseHeaders )( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrHeaders); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *send )( - IXMLHTTPRequest * This, - /* [optional][in] */ VARIANT varBody); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IXMLHTTPRequest * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( - IXMLHTTPRequest * This, - /* [retval][out] */ long *plStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusText )( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseXML )( - IXMLHTTPRequest * This, - /* [retval][out] */ IDispatch **ppBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseText )( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseBody )( - IXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseStream )( - IXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IXMLHTTPRequest * This, - /* [retval][out] */ long *plState); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - IXMLHTTPRequest * This, - /* [in] */ IDispatch *pReadyStateSink); - - END_INTERFACE - } IXMLHTTPRequestVtbl; - - interface IXMLHTTPRequest - { - CONST_VTBL struct IXMLHTTPRequestVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IXMLHTTPRequest_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IXMLHTTPRequest_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IXMLHTTPRequest_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IXMLHTTPRequest_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IXMLHTTPRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IXMLHTTPRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IXMLHTTPRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IXMLHTTPRequest_open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) \ - (This)->lpVtbl -> open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) - -#define IXMLHTTPRequest_setRequestHeader(This,bstrHeader,bstrValue) \ - (This)->lpVtbl -> setRequestHeader(This,bstrHeader,bstrValue) - -#define IXMLHTTPRequest_getResponseHeader(This,bstrHeader,pbstrValue) \ - (This)->lpVtbl -> getResponseHeader(This,bstrHeader,pbstrValue) - -#define IXMLHTTPRequest_getAllResponseHeaders(This,pbstrHeaders) \ - (This)->lpVtbl -> getAllResponseHeaders(This,pbstrHeaders) - -#define IXMLHTTPRequest_send(This,varBody) \ - (This)->lpVtbl -> send(This,varBody) - -#define IXMLHTTPRequest_abort(This) \ - (This)->lpVtbl -> abort(This) - -#define IXMLHTTPRequest_get_status(This,plStatus) \ - (This)->lpVtbl -> get_status(This,plStatus) - -#define IXMLHTTPRequest_get_statusText(This,pbstrStatus) \ - (This)->lpVtbl -> get_statusText(This,pbstrStatus) - -#define IXMLHTTPRequest_get_responseXML(This,ppBody) \ - (This)->lpVtbl -> get_responseXML(This,ppBody) - -#define IXMLHTTPRequest_get_responseText(This,pbstrBody) \ - (This)->lpVtbl -> get_responseText(This,pbstrBody) - -#define IXMLHTTPRequest_get_responseBody(This,pvarBody) \ - (This)->lpVtbl -> get_responseBody(This,pvarBody) - -#define IXMLHTTPRequest_get_responseStream(This,pvarBody) \ - (This)->lpVtbl -> get_responseStream(This,pvarBody) - -#define IXMLHTTPRequest_get_readyState(This,plState) \ - (This)->lpVtbl -> get_readyState(This,plState) - -#define IXMLHTTPRequest_put_onreadystatechange(This,pReadyStateSink) \ - (This)->lpVtbl -> put_onreadystatechange(This,pReadyStateSink) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_open_Proxy( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrMethod, - /* [in] */ BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword); - - -void __RPC_STUB IXMLHTTPRequest_open_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_setRequestHeader_Proxy( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [in] */ BSTR bstrValue); - - -void __RPC_STUB IXMLHTTPRequest_setRequestHeader_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_getResponseHeader_Proxy( - IXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [retval][out] */ BSTR *pbstrValue); - - -void __RPC_STUB IXMLHTTPRequest_getResponseHeader_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_getAllResponseHeaders_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrHeaders); - - -void __RPC_STUB IXMLHTTPRequest_getAllResponseHeaders_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_send_Proxy( - IXMLHTTPRequest * This, - /* [optional][in] */ VARIANT varBody); - - -void __RPC_STUB IXMLHTTPRequest_send_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_abort_Proxy( - IXMLHTTPRequest * This); - - -void __RPC_STUB IXMLHTTPRequest_abort_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_status_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ long *plStatus); - - -void __RPC_STUB IXMLHTTPRequest_get_status_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_statusText_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrStatus); - - -void __RPC_STUB IXMLHTTPRequest_get_statusText_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseXML_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ IDispatch **ppBody); - - -void __RPC_STUB IXMLHTTPRequest_get_responseXML_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseText_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrBody); - - -void __RPC_STUB IXMLHTTPRequest_get_responseText_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseBody_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - -void __RPC_STUB IXMLHTTPRequest_get_responseBody_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseStream_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - -void __RPC_STUB IXMLHTTPRequest_get_responseStream_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_readyState_Proxy( - IXMLHTTPRequest * This, - /* [retval][out] */ long *plState); - - -void __RPC_STUB IXMLHTTPRequest_get_readyState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_put_onreadystatechange_Proxy( - IXMLHTTPRequest * This, - /* [in] */ IDispatch *pReadyStateSink); - - -void __RPC_STUB IXMLHTTPRequest_put_onreadystatechange_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IXMLHTTPRequest_INTERFACE_DEFINED__ */ - - -#ifndef __IServerXMLHTTPRequest_INTERFACE_DEFINED__ -#define __IServerXMLHTTPRequest_INTERFACE_DEFINED__ - -/* interface IServerXMLHTTPRequest */ -/* [unique][helpstring][oleautomation][dual][uuid][object] */ - - -EXTERN_C const IID IID_IServerXMLHTTPRequest; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2e9196bf-13ba-4dd4-91ca-6c571f281495") - IServerXMLHTTPRequest : public IXMLHTTPRequest - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setTimeouts( - /* [in] */ long resolveTimeout, - /* [in] */ long connectTimeout, - /* [in] */ long sendTimeout, - /* [in] */ long receiveTimeout) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE waitForResponse( - /* [optional][in] */ VARIANT timeoutInSeconds, - /* [retval][out] */ VARIANT_BOOL *isSuccessful) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getOption( - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [retval][out] */ VARIANT *value) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setOption( - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [in] */ VARIANT value) = 0; - - }; - -#else /* C style interface */ - - typedef struct IServerXMLHTTPRequestVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IServerXMLHTTPRequest * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IServerXMLHTTPRequest * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IServerXMLHTTPRequest * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IServerXMLHTTPRequest * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IServerXMLHTTPRequest * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IServerXMLHTTPRequest * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IServerXMLHTTPRequest * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *open )( - IServerXMLHTTPRequest * This, - /* [in] */ BSTR bstrMethod, - /* [in] */ BSTR bstrUrl, - /* [optional][in] */ VARIANT varAsync, - /* [optional][in] */ VARIANT bstrUser, - /* [optional][in] */ VARIANT bstrPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setRequestHeader )( - IServerXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [in] */ BSTR bstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getResponseHeader )( - IServerXMLHTTPRequest * This, - /* [in] */ BSTR bstrHeader, - /* [retval][out] */ BSTR *pbstrValue); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getAllResponseHeaders )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrHeaders); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *send )( - IServerXMLHTTPRequest * This, - /* [optional][in] */ VARIANT varBody); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *abort )( - IServerXMLHTTPRequest * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ long *plStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusText )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrStatus); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseXML )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ IDispatch **ppBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseText )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ BSTR *pbstrBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseBody )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_responseStream )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ VARIANT *pvarBody); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_readyState )( - IServerXMLHTTPRequest * This, - /* [retval][out] */ long *plState); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_onreadystatechange )( - IServerXMLHTTPRequest * This, - /* [in] */ IDispatch *pReadyStateSink); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setTimeouts )( - IServerXMLHTTPRequest * This, - /* [in] */ long resolveTimeout, - /* [in] */ long connectTimeout, - /* [in] */ long sendTimeout, - /* [in] */ long receiveTimeout); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *waitForResponse )( - IServerXMLHTTPRequest * This, - /* [optional][in] */ VARIANT timeoutInSeconds, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *getOption )( - IServerXMLHTTPRequest * This, - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [retval][out] */ VARIANT *value); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *setOption )( - IServerXMLHTTPRequest * This, - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [in] */ VARIANT value); - - END_INTERFACE - } IServerXMLHTTPRequestVtbl; - - interface IServerXMLHTTPRequest - { - CONST_VTBL struct IServerXMLHTTPRequestVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IServerXMLHTTPRequest_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IServerXMLHTTPRequest_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IServerXMLHTTPRequest_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IServerXMLHTTPRequest_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define IServerXMLHTTPRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define IServerXMLHTTPRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define IServerXMLHTTPRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define IServerXMLHTTPRequest_open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) \ - (This)->lpVtbl -> open(This,bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword) - -#define IServerXMLHTTPRequest_setRequestHeader(This,bstrHeader,bstrValue) \ - (This)->lpVtbl -> setRequestHeader(This,bstrHeader,bstrValue) - -#define IServerXMLHTTPRequest_getResponseHeader(This,bstrHeader,pbstrValue) \ - (This)->lpVtbl -> getResponseHeader(This,bstrHeader,pbstrValue) - -#define IServerXMLHTTPRequest_getAllResponseHeaders(This,pbstrHeaders) \ - (This)->lpVtbl -> getAllResponseHeaders(This,pbstrHeaders) - -#define IServerXMLHTTPRequest_send(This,varBody) \ - (This)->lpVtbl -> send(This,varBody) - -#define IServerXMLHTTPRequest_abort(This) \ - (This)->lpVtbl -> abort(This) - -#define IServerXMLHTTPRequest_get_status(This,plStatus) \ - (This)->lpVtbl -> get_status(This,plStatus) - -#define IServerXMLHTTPRequest_get_statusText(This,pbstrStatus) \ - (This)->lpVtbl -> get_statusText(This,pbstrStatus) - -#define IServerXMLHTTPRequest_get_responseXML(This,ppBody) \ - (This)->lpVtbl -> get_responseXML(This,ppBody) - -#define IServerXMLHTTPRequest_get_responseText(This,pbstrBody) \ - (This)->lpVtbl -> get_responseText(This,pbstrBody) - -#define IServerXMLHTTPRequest_get_responseBody(This,pvarBody) \ - (This)->lpVtbl -> get_responseBody(This,pvarBody) - -#define IServerXMLHTTPRequest_get_responseStream(This,pvarBody) \ - (This)->lpVtbl -> get_responseStream(This,pvarBody) - -#define IServerXMLHTTPRequest_get_readyState(This,plState) \ - (This)->lpVtbl -> get_readyState(This,plState) - -#define IServerXMLHTTPRequest_put_onreadystatechange(This,pReadyStateSink) \ - (This)->lpVtbl -> put_onreadystatechange(This,pReadyStateSink) - - -#define IServerXMLHTTPRequest_setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout) \ - (This)->lpVtbl -> setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout) - -#define IServerXMLHTTPRequest_waitForResponse(This,timeoutInSeconds,isSuccessful) \ - (This)->lpVtbl -> waitForResponse(This,timeoutInSeconds,isSuccessful) - -#define IServerXMLHTTPRequest_getOption(This,option,value) \ - (This)->lpVtbl -> getOption(This,option,value) - -#define IServerXMLHTTPRequest_setOption(This,option,value) \ - (This)->lpVtbl -> setOption(This,option,value) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_setTimeouts_Proxy( - IServerXMLHTTPRequest * This, - /* [in] */ long resolveTimeout, - /* [in] */ long connectTimeout, - /* [in] */ long sendTimeout, - /* [in] */ long receiveTimeout); - - -void __RPC_STUB IServerXMLHTTPRequest_setTimeouts_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_waitForResponse_Proxy( - IServerXMLHTTPRequest * This, - /* [optional][in] */ VARIANT timeoutInSeconds, - /* [retval][out] */ VARIANT_BOOL *isSuccessful); - - -void __RPC_STUB IServerXMLHTTPRequest_waitForResponse_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_getOption_Proxy( - IServerXMLHTTPRequest * This, - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [retval][out] */ VARIANT *value); - - -void __RPC_STUB IServerXMLHTTPRequest_getOption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_setOption_Proxy( - IServerXMLHTTPRequest * This, - /* [in] */ SERVERXMLHTTP_OPTION option, - /* [in] */ VARIANT value); - - -void __RPC_STUB IServerXMLHTTPRequest_setOption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IServerXMLHTTPRequest_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_DOMDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("F6D90F11-9C73-11D3-B32E-00C04F990BB4") -DOMDocument; -#endif - -EXTERN_C const CLSID CLSID_DOMDocument26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f1b-c551-11d3-89b9-0000f81fe221") -DOMDocument26; -#endif - -EXTERN_C const CLSID CLSID_DOMDocument30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f32-c551-11d3-89b9-0000f81fe221") -DOMDocument30; -#endif - -EXTERN_C const CLSID CLSID_FreeThreadedDOMDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("F6D90F12-9C73-11D3-B32E-00C04F990BB4") -FreeThreadedDOMDocument; -#endif - -EXTERN_C const CLSID CLSID_FreeThreadedDOMDocument26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f1c-c551-11d3-89b9-0000f81fe221") -FreeThreadedDOMDocument26; -#endif - -EXTERN_C const CLSID CLSID_FreeThreadedDOMDocument30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f33-c551-11d3-89b9-0000f81fe221") -FreeThreadedDOMDocument30; -#endif - -EXTERN_C const CLSID CLSID_XMLSchemaCache; - -#ifdef __cplusplus - -class DECLSPEC_UUID("373984c9-b845-449b-91e7-45ac83036ade") -XMLSchemaCache; -#endif - -EXTERN_C const CLSID CLSID_XMLSchemaCache26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f1d-c551-11d3-89b9-0000f81fe221") -XMLSchemaCache26; -#endif - -EXTERN_C const CLSID CLSID_XMLSchemaCache30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f34-c551-11d3-89b9-0000f81fe221") -XMLSchemaCache30; -#endif - -EXTERN_C const CLSID CLSID_XSLTemplate; - -#ifdef __cplusplus - -class DECLSPEC_UUID("2933BF94-7B36-11d2-B20E-00C04F983E60") -XSLTemplate; -#endif - -EXTERN_C const CLSID CLSID_XSLTemplate26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f21-c551-11d3-89b9-0000f81fe221") -XSLTemplate26; -#endif - -EXTERN_C const CLSID CLSID_XSLTemplate30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f36-c551-11d3-89b9-0000f81fe221") -XSLTemplate30; -#endif - -EXTERN_C const CLSID CLSID_DSOControl; - -#ifdef __cplusplus - -class DECLSPEC_UUID("F6D90F14-9C73-11D3-B32E-00C04F990BB4") -DSOControl; -#endif - -EXTERN_C const CLSID CLSID_DSOControl26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f1f-c551-11d3-89b9-0000f81fe221") -DSOControl26; -#endif - -EXTERN_C const CLSID CLSID_DSOControl30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f39-c551-11d3-89b9-0000f81fe221") -DSOControl30; -#endif - -EXTERN_C const CLSID CLSID_XMLHTTP; - -#ifdef __cplusplus - -class DECLSPEC_UUID("F6D90F16-9C73-11D3-B32E-00C04F990BB4") -XMLHTTP; -#endif - -EXTERN_C const CLSID CLSID_XMLHTTP26; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f1e-c551-11d3-89b9-0000f81fe221") -XMLHTTP26; -#endif - -EXTERN_C const CLSID CLSID_XMLHTTP30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("f5078f35-c551-11d3-89b9-0000f81fe221") -XMLHTTP30; -#endif - -EXTERN_C const CLSID CLSID_ServerXMLHTTP; - -#ifdef __cplusplus - -class DECLSPEC_UUID("afba6b42-5692-48ea-8141-dc517dcf0ef1") -ServerXMLHTTP; -#endif - -EXTERN_C const CLSID CLSID_ServerXMLHTTP30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("afb40ffd-b609-40a3-9828-f88bbe11e4e3") -ServerXMLHTTP30; -#endif - -EXTERN_C const CLSID CLSID_SAXXMLReader; - -#ifdef __cplusplus - -class DECLSPEC_UUID("079aa557-4a18-424a-8eee-e39f0a8d41b9") -SAXXMLReader; -#endif - -EXTERN_C const CLSID CLSID_SAXXMLReader30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("3124c396-fb13-4836-a6ad-1317f1713688") -SAXXMLReader30; -#endif - -EXTERN_C const CLSID CLSID_MXXMLWriter; - -#ifdef __cplusplus - -class DECLSPEC_UUID("fc220ad8-a72a-4ee8-926e-0b7ad152a020") -MXXMLWriter; -#endif - -EXTERN_C const CLSID CLSID_MXXMLWriter30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("3d813dfe-6c91-4a4e-8f41-04346a841d9c") -MXXMLWriter30; -#endif - -EXTERN_C const CLSID CLSID_SAXAttributes; - -#ifdef __cplusplus - -class DECLSPEC_UUID("4dd441ad-526d-4a77-9f1b-9841ed802fb0") -SAXAttributes; -#endif - -EXTERN_C const CLSID CLSID_SAXAttributes30; - -#ifdef __cplusplus - -class DECLSPEC_UUID("3e784a01-f3ae-4dc0-9354-9526b9370eba") -SAXAttributes30; -#endif - -EXTERN_C const CLSID CLSID_XMLDocument; - -#ifdef __cplusplus - -class DECLSPEC_UUID("CFC399AF-D876-11d0-9C10-00C04FC99C8E") -XMLDocument; -#endif -#endif /* __MSXML2_LIBRARY_DEFINED__ */ - -/* interface __MIDL_itf_msxml2_0167 */ -/* [local] */ - -//---------------------------- -// MSXML SPECIFIC ERROR CODES -//---------------------------- -#define E_XML_NOTWF 0xC00CE223L // Validate failed because the document is not well formed. -#define E_XML_NODTD 0xC00CE224L // Validate failed because a DTD/Schema was not specified in the document. -#define E_XML_INVALID 0xC00CE225L // Validate failed because of a DTD/Schema violation. -#ifdef __USE_MSXML2_NAMESPACE__ -} -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_msxml2_0167_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_msxml2_0167_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/ATL90/source/SProxy/resource.h b/ATL90/source/SProxy/resource.h deleted file mode 100644 index 8e55008..0000000 --- a/ATL90/source/SProxy/resource.h +++ /dev/null @@ -1,69 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by sproxy.rc -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#define IDR_SPROXYSRF 101 -#define IDR_SRF1 102 -#define IDS_SDL_HEADER 103 -#define IDS_SDL_SUCCESS 104 -#define IDS_SDL_USAGE 105 -#define IDS_SDL_PROCESS_FAILURE 106 -#define IDS_SDL_GENERATE_FAILURE 107 -#define IDS_SDL_INTERNAL 108 -#define IDS_SDL_PARSE_WARNING 109 -#define IDS_SDL_PARSE_ERROR 110 -#define IDS_SDL_UNRECOGNIZED_TAG 111 -#define IDS_SDL_MISSING_ATTRIBUTE 112 -#define IDS_SDL_MSXML 113 -#define IDS_SDL_UNRECOGNIZED_DOC 114 -#define IDS_SDL_UNRESOLVED_ELEM 115 -#define IDS_SDL_UNRESOLVED_NAMESPACE 116 -#define IDS_SDL_LITERAL_ONLY 117 -#define IDS_SDL_ONE_PORT 118 -#define IDS_SDL_UNSUPPORTED_TAG 119 -#define IDS_SDL_CMDLINE_FAILURE 120 -#define IDS_SDL_UNRESOLVED_ELEM2 123 -#define IDS_SDL_INVALID_VALUE 124 -#define IDS_SDL_SOAP_PORT_ONLY 125 -#define IDS_SDL_SOAP_BINDING_ONLY 126 -#define IDS_SDL_INVALID_ARRAY_DESC 127 -#define IDS_SDL_UNSUPPORTED_STRING 128 -#define IDS_SDL_RECURSIVE_TYPE 129 -#define IDS_SDL_IGNORE_CMDITEM 130 -#define IDS_SDL_MISSING_OPTION 131 -#define IDS_SDL_FAILED_WSDL_OPEN 132 -#define IDS_SDL_UNRESOLVED_MSGPART 133 -#define IDS_SDL_SOAPHEADER_DUPNAME 134 -#define IDS_SDL_USAGE_EX 135 -#define IDS_SDL_CMDLINE 136 -#define IDS_SDL_PARSE 137 -#define IDS_SDL_SCHEMALEVEL_NAME 138 -#define IDS_SDL_PAD_TYPE 139 -#define IDS_SDL_PAD_INVALID_SOAP 140 -#define IDS_SDL_RPC_ENCODED_TYPE 141 -#define IDS_SDL_DOC_ENCODED 142 -#define IDS_SDL_ENCODINGSTYLE 143 -#define IDS_SDL_SKIP_EXTENSIBILITY 144 -#define IDS_SDL_IO_DIFF_NAMESPACES 145 -#define IDS_SDL_RPC_LITERAL 146 -#define IDS_SDL_HEADER_DIFF_NAMESPACES 147 -#define IDS_SDL_INVALID_ARRAY_DESC_ERR 148 -#define IDS_SDL_NO_GENERATE 149 -#define IDS_SDL_CUSTOM_TYPE 150 -#define IDS_SDL_BASE_EXTENSION 151 -#define IDS_SDL_NO_ATTRIBUTES 152 -#define IDS_SDL_FAILED_DM_OPEN 153 -#define IDS_SDL_PROCESS_DM_FAILURE 154 -#define IDS_SDL_DEFAULT_TYPE 155 -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 156 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 102 -#endif -#endif diff --git a/ATL90/source/SProxy/sources b/ATL90/source/SProxy/sources deleted file mode 100644 index 4eafa5e..0000000 --- a/ATL90/source/SProxy/sources +++ /dev/null @@ -1,31 +0,0 @@ -!IF 0 - -Copyright (c) 1990-1998 Microsoft Corporation - -Module Name: - - sources. - -Abstract: - - This file specifies the target component being built and the list of - sources files needed to build that component. Also specifies optional - compiler switches and libraries that are unique for the component being - built. - -!ENDIF - -# Turn on Secure CRT deprecation -CRT_SECURE_DEPRECATE=1 - -!include ..\..\..\..\sources.inc - -TARGETNAME= -TARGETTYPE=NOTARGET -TARGETPATH= - -SOURCES= - -MISCFILES= - -NO_BROWSER_FILE=1 diff --git a/ATL90/source/SProxy/sproxy.cpp b/ATL90/source/SProxy/sproxy.cpp deleted file mode 100644 index d513ec2..0000000 --- a/ATL90/source/SProxy/sproxy.cpp +++ /dev/null @@ -1,904 +0,0 @@ -// -// sproxy.cpp : Defines the entry point for the console application. -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" -#include "WSDLParser.h" -#include "DiscoMapParser.h" -#include "ErrorHandler.h" -#include "WSDLDocument.h" -#include "DiscoMapDocument.h" -#include "CodeTypeBuilder.h" -#include "CppCodeGenerator.h" -#include "Emit.h" -#include -#include "resource.h" -////////////////////////////////////////////////////////////////////// -//Resource (satellite) dll search and load routines. see LoadLocResDll -//an example. -//Note: Change made here must be sync with all other tools. - -__inline -errno_t __cdecl DuplicateEnvString(TCHAR **ppszBuffer, size_t *pnBufferSizeInTChars, const TCHAR *pszVarName) -{ - /* validation section */ - if (ppszBuffer == NULL) { return EINVAL; } - *ppszBuffer = NULL; - if (pnBufferSizeInTChars != NULL) - { - *pnBufferSizeInTChars = 0; - } - /* varname is already validated in getenv */ - TCHAR szDummyBuff[1] = {0}; - size_t nSizeNeeded = 0; - errno_t ret=_tgetenv_s(&nSizeNeeded,szDummyBuff,1,pszVarName); - if (nSizeNeeded > 0) - { - *ppszBuffer = new TCHAR[nSizeNeeded]; - if (*ppszBuffer != NULL) - { - size_t nSizeNeeded2 = 0; - ret=_tgetenv_s(&nSizeNeeded2,*ppszBuffer,nSizeNeeded,pszVarName); - if (nSizeNeeded2!=nSizeNeeded) - { - ret=ERANGE; - } else if (pnBufferSizeInTChars != NULL) - { - *pnBufferSizeInTChars = nSizeNeeded; - } - } else - { - ret=ENOMEM; - } - } - return ret; -} - -#define _TCSNLEN(sz,c) (min(_tcslen(sz), c)) -#define PATHLEFT(sz) (_MAX_PATH - _TCSNLEN(sz, (_MAX_PATH-1)) - 1) - -typedef LANGID (WINAPI* PFNGETUSERDEFAULTUILANGUAGE)(); - -static BOOL CALLBACK _EnumResLangProc(HMODULE /*hModule*/, LPCTSTR /*pszType*/, - LPCTSTR /*pszName*/, WORD langid, LONG_PTR lParam) -{ - if(lParam == NULL) - { - return FALSE; - } - - LANGID* plangid = reinterpret_cast< LANGID* >( lParam ); - *plangid = langid; - - return TRUE; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: GetUserDefaultUILanguage for downlevel platforms (Win9x, NT4). -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HRESULT GetUserDefaultUILanguageLegacyCompat(LANGID* pLangid) -{ - HRESULT hr=E_FAIL; - if (pLangid == NULL) { return E_POINTER; } - PFNGETUSERDEFAULTUILANGUAGE pfnGetUserDefaultUILanguage; - HINSTANCE hKernel32 = ::GetModuleHandle(_T("kernel32.dll")); - pfnGetUserDefaultUILanguage = (PFNGETUSERDEFAULTUILANGUAGE)::GetProcAddress(hKernel32, "GetUserDefaultUILanguage"); - if(pfnGetUserDefaultUILanguage != NULL) - { - *pLangid = pfnGetUserDefaultUILanguage(); - hr = S_OK; - } else - { - // We're not on an MUI-capable system. - OSVERSIONINFO version; - memset(&version, 0, sizeof(version)); - version.dwOSVersionInfoSize = sizeof(version); - ::GetVersionEx(&version); - if( version.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) - { - // We're on Windows 9x, so look in the registry for the UI language - HKEY hKey = NULL; - LONG nResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, - _T( "Control Panel\\Desktop\\ResourceLocale" ), 0, KEY_READ, &hKey); - if (nResult == ERROR_SUCCESS) - { - DWORD dwType; - TCHAR szValue[16]; - ULONG nBytes = sizeof( szValue ); - nResult = ::RegQueryValueEx(hKey, NULL, NULL, &dwType, LPBYTE( szValue ), - &nBytes ); - if ((nResult == ERROR_SUCCESS) && (dwType == REG_SZ)) - { - DWORD dwLangID; - int nFields = _stscanf_s( szValue, _T( "%x" ), &dwLangID ); - if( nFields == 1 ) - { - *pLangid = LANGID( dwLangID ); - hr = S_OK; - } - } - - ::RegCloseKey(hKey); - } - } - else - { - // We're on NT 4. The UI language is the same as the language of the version - // resource in ntdll.dll - HMODULE hNTDLL = ::GetModuleHandle( _T( "ntdll.dll" ) ); - if (hNTDLL != NULL) - { - *pLangid = 0; - ::EnumResourceLanguages( hNTDLL, RT_VERSION, MAKEINTRESOURCE( 1 ), - _EnumResLangProc, reinterpret_cast< LONG_PTR >( pLangid ) ); - if (*pLangid != 0) - { - hr = S_OK; - } - } - } - } - return hr; -} - -////////////////////////////////////////////////////////////////////////// -//Purpose: Searches for a resource dll in sub directories using a search order -// based on szPath - a directory to search res dll below. -// see example at . -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success (found dll) - S_OK , Failure - E_FAIL or E_UNEXPECTED -////////////////////////////////////////////////////////////////////////// -HRESULT LoadUILibrary(LPCTSTR szPath, LPCTSTR szDllName, DWORD dwExFlags, - HINSTANCE *phinstOut, LPTSTR szFullPathOut,size_t sizeInCharacters, - LCID *plcidOut) -{ - TCHAR szPathTemp[_MAX_PATH + 1] = _T(""); - HRESULT hr = E_FAIL; - LCID lcidFound = (LCID)-1; - size_t nPathEnd = 0; - - // Gotta have this stuff! - if (szPath==NULL || *szPath == '\0') - { - return E_POINTER; - } - - if (szDllName==NULL || *szDllName == '\0') - { - return E_POINTER; - } - - if (!szPath || !*szPath || !szDllName || !*szDllName) - { - return E_INVALIDARG; - } - - if (phinstOut != NULL) - { - *phinstOut = NULL; - } - - szPathTemp[_MAX_PATH-1] = L'\0'; - - // Add \ to the end if necessary - _tcsncpy_s(szPathTemp,_countof(szPathTemp), szPath, _MAX_PATH-1); - if (szPathTemp[_TCSNLEN(szPathTemp, _MAX_PATH-1) - 1] != L'\\') - { - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - } - - // Check if given path even exists - if (GetFileAttributes(szPathTemp) == 0xFFFFFFFF) - { - return E_FAIL; - } - - nPathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1); - - { - LANGID langid=0; - if (FAILED(GetUserDefaultUILanguageLegacyCompat(&langid))) - { - return E_UNEXPECTED; - } - const LCID lcidUser = MAKELCID(langid, SORT_DEFAULT); - - LCID rglcid[3]; - rglcid[0] = lcidUser; - rglcid[1] = MAKELCID(MAKELANGID(PRIMARYLANGID(lcidUser), SUBLANG_DEFAULT), SORTIDFROMLCID(lcidUser)); - rglcid[2] = 0x409; - for (int i = 0; i < _countof(rglcid); i++) - { - TCHAR szNumBuf[10]; - - // Check if it's the same as any LCID already checked, - // which is very possible - int n = 0; - for (n = 0; n < i; n++) - { - if (rglcid[n] == rglcid[i]) - break; - } - - if (n < i) - { - continue; - } - - szPathTemp[nPathEnd] = L'\0'; - _itot_s(rglcid[i], szNumBuf,_countof(szNumBuf), 10); - _tcsncat_s(szPathTemp, _countof(szPathTemp),szNumBuf , PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - lcidFound = rglcid[i]; - - hr = S_OK; - goto Done; - } - } - } - - // None of the default choices exists, so now look for the dll in a folder below - //the given path (szPath) - { - szPathTemp[nPathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("*.*"), PATHLEFT(szPathTemp)); - - WIN32_FIND_DATA wfdw; - HANDLE hDirs = FindFirstFile(szPathTemp, &wfdw); - nPathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1)-3; - if (hDirs != INVALID_HANDLE_VALUE) - { - while (FindNextFile(hDirs, &wfdw)) - { - // We are only interested in directories, since at this level, that should - // be the only thing in this directory, i.e, LCID sub dirs - if (wfdw.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - // Skip current and previous dirs, "." and ".." - if (!_tcscmp(wfdw.cFileName, _T(".")) || !_tcscmp(wfdw.cFileName, _T(".."))) - continue; - - // Does this dir have a copy of the dll? - szPathTemp[nPathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), wfdw.cFileName, PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - // Got it! - lcidFound = (LCID)_tstol(wfdw.cFileName); - - hr = S_OK; - break; - } - } - } - - FindClose(hDirs); - } - } - -Done: - if (SUCCEEDED(hr)) - { - // Set the default LCID - if (plcidOut) - { - if (lcidFound == (LCID)-1) - { - return E_UNEXPECTED; - } - *plcidOut = lcidFound; - } - - // Finally, attempt to load the library - // Beware! A dll loaded with LOAD_LIBRARY_AS_DATAFILE won't - // let you use LoadIcon and things like that (only general calls like - // FindResource and LoadResource). - if (phinstOut != NULL) - { - *phinstOut = LoadLibraryEx(szPathTemp, NULL, dwExFlags); - hr = (*phinstOut) ? S_OK : E_FAIL; - } - if ( szFullPathOut ) - { - _tcsncpy_s(szFullPathOut,sizeInCharacters, szPathTemp, _MAX_PATH-1); - } - } - - return hr; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: Iterates env("PATH") directories to try to find (using LoadUILibrary) -// resource dll a directory below PATH dirs. Ex: if PATH="c:\bin;d:\win" -// and szDllName="ToolUI.dll", then the first of c:\bin\1033\ToolUI.dll -// and d:\win\SomeFolder\ToolUI.dll will be loaded. -// See LoadLocResDll doc (below) for example. -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HMODULE LoadSearchPath(LPCTSTR szDllName,TCHAR *szPathOut, size_t sizeInCharacters) -{ - TCHAR * szEnvPATH = NULL; - TCHAR * szEnvPATHBuff = NULL; - int nPathLen = 0; - int nPathIndex = 0; - HMODULE hmod = NULL; - if (DuplicateEnvString(&szEnvPATHBuff,NULL,_T("PATH"))==0 && (szEnvPATH=szEnvPATHBuff) != NULL) - { - while (*szEnvPATH) - { - /* skip leading white space and nop semicolons */ - for (; *szEnvPATH == L' ' || *szEnvPATH == L';'; ++szEnvPATH) - {} /* NOTHING */ - - if (*szEnvPATH == L'\0') - { - break; - } - - ++nPathIndex; - - /* copy this chunk of the path into our trypath */ - nPathLen = 0; - TCHAR szPath[_MAX_PATH+1]; - TCHAR * pszTry = NULL; - for (pszTry = szPath; *szEnvPATH != L'\0' && *szEnvPATH != L';'; ++szEnvPATH) - { - ++nPathLen; - if (nPathLen < _MAX_PATH) - { - *pszTry++ = *szEnvPATH; - } else - { - break; - } - } - *pszTry = L'\0'; - - if (nPathLen == 0 || nPathLen >= _MAX_PATH) - { - continue; - } - - LoadUILibrary(szPath, szDllName, LOAD_LIBRARY_AS_DATAFILE, - &hmod, szPathOut,sizeInCharacters, NULL); - if ( hmod ) - { - break; - } - } - } - if (szEnvPATHBuff!=NULL) - { - delete [] szEnvPATHBuff; - } - return hmod; -} -//Example: Say PATH="c:\bin;d:\win", resource dll name (szDllName) is "ToolUI.dll", -// user locale is 936, and the .exe calling LoadLocResDll is c:\MyTools\Tool.exe -// Search order: -// a) c:\MyTools\936\ToolUI.dll (exe path + user default UI lang) -// b) c:\MyTools\1033 (same with eng) -// c) c:\MyTools\*\ToolUI.dll (where * is sub folder). -// d) c:\bin\936\ToolUI.dll (first in path) -// e) c:\bin\1033\ToolUI.dll (first in path + eng) -// f) c:\bin\*\ToolUI.dll -// g) d:\win\936\ToolUI.dll (second in path) -// h) d:\win\1033\ToolUI.dll (second in path + eng) -// i) d:\win\*\ToolUI.dll (second in path + eng) -// j) if bExeDefaultModule and not found, return exe HINSTANCE. -// Note: The primary lang (without the sublang) is tested after the user ui lang. -// Main Input: szDllName - the name of the resource dll ui.dll. Ex: vcdeployUI.dll -// Main Output: HMODULE of resource dll or NULL - if not found (see bExeDefaultModule). -HMODULE LoadLocResDll(LPCTSTR szDllName,BOOL bExeDefaultModule=TRUE,DWORD dwExFlags=LOAD_LIBRARY_AS_DATAFILE,LPTSTR pszPathOut = NULL,size_t sizeInCharacters = 0 ) -{ - HMODULE hmod = NULL; - TCHAR driverpath[_MAX_PATH + 1], exepath[_MAX_PATH + 1]; - LPTSTR p = NULL; - - GetModuleFileName(GetModuleHandle(NULL), driverpath, _MAX_PATH); - // find path of tool - p = driverpath + _TCSNLEN(driverpath, _MAX_PATH-1)-1; - while ( *p != L'\\' && p != driverpath) - { - p--; - } - *p = '\0'; - - LoadUILibrary(driverpath, szDllName, dwExFlags, - &hmod, exepath,_countof(exepath), NULL); - - if ( hmod == NULL ) - { - // search PATH\ for ui.dll - hmod = LoadSearchPath(szDllName,exepath,_countof(exepath)); - } - - if ( hmod && pszPathOut ) - { - _tcsncpy_s(pszPathOut,sizeInCharacters, exepath, _MAX_PATH-1); - } - //Not found dll, return the exe HINSTANCE as a fallback. - if (hmod == NULL && bExeDefaultModule) - { - hmod=GetModuleHandle(NULL); - } - return hmod; -} -//End loc routines -//////////////////////////////////////////////////////////////////// -const TCHAR* szSproxyUIDll=_T("sproxyUI.dll"); - -#define E_SAX_LOADFAILED 0x800C0006 -#define E_SAX_FILENOTFOUND 0x80070002 // AtlHresultFromWin32(ERROR_FILE_NOT_FOUND) -#define E_SAX_PATHNOTFOUND 0x80070003 // AtlHresultFromWin32(ERROR_PATH_NOT_FOUND) -#define E_SAX_ACCESSDENIED 0x80070005 // AtlHresultFromWin32(ERROR_ACCESS_DENIED) - -#ifdef _DEBUG - -CDebugReportHook g_Hook; -#define DUMP_LEAKS() _CrtDumpMemoryLeaks( ), _CrtSetDbgFlag((_CRTDBG_LEAK_CHECK_DF) | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG)) - -#else - -#define DUMP_LEAKS() - -#endif // _DEBUG - -const DWORD SPROXYFLAG_SETOUT = 0x00000001; -const DWORD SPROXYFLAG_NOWARN = 0x00000002; -const DWORD SPROXYFLAG_NOLOGO = 0x00000004; -const DWORD SPROXYFLAG_USAGE = 0x00000008; -const DWORD SPROXYFLAG_NOPRAGMA = 0x00000010; -const DWORD SPROXYFLAG_NOCLOBBER = 0x00000020; -const DWORD SPROXYFLAG_SETNAMESPACE = 0x00000040; -const DWORD SPROXYFLAG_NONAMESPACE = 0x00000080; -const DWORD SPROXYFLAG_NOPROXY = 0x00000100; -const DWORD SPROXYFLAG_WSDLINPUT = 0x00000200; -const DWORD SPROXYFLAG_NOWCHAR_T = 0x00000400; - -int sproxy(); -void PrintHeader(); -int PrintUsage(bool bFull = false); -int PrintGenerateFailure(const wchar_t *wszOut); -void PreProcessCommandLine(int argc, wchar_t *argvW[], CStringW & wszOut, CStringA & szNamespace, unsigned __int64 *pnFlags, LPBOOL pfHasInvalid); -void ParseCommandLine(int argc, wchar_t *argvW[], CStringW & wszUrl, BOOL bHasInvalid); - -CStringW g_wszFile ; -CDiscoMapDocument * g_pDMDoc ; -bool g_bUseWchar_t ; - -int main() -{ - HINSTANCE hInst=LoadLocResDll(szSproxyUIDll); - _AtlBaseModule.SetResourceInstance(hInst); - int nRet = 0; - - __try - { - nRet = sproxy(); - } - __except( EXCEPTION_EXECUTE_HANDLER ) - { - printf("\r\nsproxy : ISE error SDL0000 : Internal Sproxy Error (most likely out of memory). Please contact technical support.\r\n"); - return 1; - } - - DUMP_LEAKS(); - - return nRet; -} - -int sproxy() -{ - unsigned __int64 nFlags; - BOOL bHasInvalid; - CStringW wszUrl; - CStringW wszOut; - CStringA szNamespace; - wchar_t **argvW = NULL ; - int argc = 0 ; - - argvW = CommandLineToArgvW(GetCommandLineW(),&argc); - if(argvW == NULL) - { - EmitError(IDS_SDL_CMDLINE_FAILURE, GetLastError()); - return 1; - } - PreProcessCommandLine(argc, argvW, wszOut, szNamespace, &nFlags, &bHasInvalid); - - g_bUseWchar_t = ((nFlags & SPROXYFLAG_NOWCHAR_T) == 0); - - if ((nFlags & SPROXYFLAG_NOLOGO) == 0) - { - PrintHeader(); - } - - if (nFlags & SPROXYFLAG_USAGE) - { - PrintUsage(true); - GlobalFree(argvW); - return 0; - } - - ParseCommandLine(argc, argvW, wszUrl, bHasInvalid); - - GlobalFree(argvW); - - bHasInvalid = FALSE; - if (wszUrl.IsEmpty()) - { - EmitCmdLineError(IDS_SDL_MISSING_OPTION, nFlags & SPROXYFLAG_WSDLINPUT ?"":""); - bHasInvalid = TRUE; - } - - if (bHasInvalid != FALSE) - { - printf("\r\n"); - PrintUsage(); - return 1; - } - - if (nFlags & SPROXYFLAG_NOWARN) - { - SetEmitWarnings(false); - } - - CHeapPtr spSzNamespace; - - if (szNamespace && *szNamespace) - { - if (FAILED(CreateSafeCppName(&spSzNamespace, szNamespace))) - { - EmitErrorHr(E_OUTOFMEMORY); - return 1; - } - } - - CoInitialize(NULL); - HRESULT hr = S_OK; - { - CAutoPtr dmParser; - if(!(nFlags & SPROXYFLAG_WSDLINPUT)) - { - CComPtr spDMReader; - hr = CoCreateInstance(__uuidof(SAXXMLReader30), NULL, CLSCTX_ALL, - __uuidof(ISAXXMLReader), (void **)&spDMReader); - - if (FAILED(hr)) - { - ATLTRACE( _T("CoCreateInstance failed!\n") ); - return 1; - } - - dmParser.Attach(new CDiscoMapParser(spDMReader, NULL, 0)); - if(dmParser == NULL) - { - ATLTRACE(_T("Failed to create Discomap Parser : out of memory!\n")); - return 1; - } - dmParser->SetDynamicAlloc(FALSE); - hr = spDMReader->putContentHandler( dmParser ); - if (FAILED(hr)) - { - ATLTRACE( _T("putContentHandler failed!\n") ); - return 1; - } - - CErrorHandler errDM; - errDM.SetLocation(wszUrl); - - hr = spDMReader->putErrorHandler( &errDM); - if (FAILED(hr)) - { - ATLTRACE( _T("putErrorHandler failed!\n") ); - return 1; - } - - g_pDMDoc = dmParser->GetDiscoMapDocument(); - if (g_pDMDoc == NULL) - { - ATLTRACE( _T("failed to create document: out of memory!\n") ); - return 1; - } - - - hr = g_pDMDoc->SetDocumentUri( wszUrl, wszUrl.GetLength()); - - if (FAILED(hr)) - { - ATLTRACE( _T("failed to set document uri: out of memory!\n") ); - return 1; - } - - g_wszFile = wszUrl; - - hr = spDMReader->parseURL( wszUrl ); - if (FAILED(hr)) - { - ATLTRACE( _T("parseURL failed!\n") ); - if ((hr == E_SAX_LOADFAILED) || - (hr == E_SAX_FILENOTFOUND) || - (hr == E_SAX_PATHNOTFOUND) || - (hr == E_SAX_ACCESSDENIED)) - { - EmitError(IDS_SDL_FAILED_DM_OPEN, wszUrl); - } - EmitError(IDS_SDL_PROCESS_DM_FAILURE, wszUrl); - return 1; - } - } - - if(nFlags & SPROXYFLAG_WSDLINPUT) - g_wszFile = wszUrl; - else - g_wszFile = g_pDMDoc->GetWSDLFile(); - - CComPtr spReader; - hr = CoCreateInstance(__uuidof(SAXXMLReader30), NULL, CLSCTX_ALL, - __uuidof(ISAXXMLReader), (void **)&spReader); - - if (FAILED(hr)) - { - ATLTRACE( _T("CoCreateInstance failed!\n") ); - return 1; - } - - CWSDLParser parser(spReader, NULL, 0); - parser.SetDynamicAlloc(FALSE); - hr = spReader->putContentHandler( &parser ); - if (FAILED(hr)) - { - ATLTRACE( _T("putContentHandler failed!\n") ); - return 1; - } - - CErrorHandler err; - err.SetLocation(g_wszFile); - - hr = spReader->putErrorHandler( &err ); - if (FAILED(hr)) - { - ATLTRACE( _T("putErrorHandler failed!\n") ); - return 1; - } - - CWSDLDocument * pDoc = parser.GetWSDLDocument(); - if (pDoc == NULL) - { - ATLTRACE( _T("failed to create document: out of memory!\n") ); - return 1; - } - - hr = pDoc->SetDocumentUri( g_wszFile, g_wszFile.GetLength()); - if (FAILED(hr)) - { - ATLTRACE( _T("failed to set document uri: out of memory!\n") ); - return 1; - } - - wchar_t wszTmp[ATL_URL_MAX_URL_LENGTH]; - if(g_wszFile.Find(L"://") != -1 && ((g_wszFile.Left(5)).MakeLower() != L"file:") ) - { - // The URL needs to be escaped only if it's not a local file - if(AtlEscapeUrl(g_wszFile,wszTmp,0,ATL_URL_MAX_URL_LENGTH-1,ATL_URL_BROWSER_MODE) == FALSE) - { - ATLTRACE( _T("failed to escape uri!\n") ); - return 1; - } - - hr = spReader->parseURL( wszTmp ); - } - else - { - hr = spReader->parseURL( g_wszFile ); - } - - if (FAILED(hr)) - { - ATLTRACE( _T("parseURL failed!\n") ); - if ((hr == E_SAX_LOADFAILED) || - (hr == E_SAX_FILENOTFOUND) || - (hr == E_SAX_PATHNOTFOUND) || - (hr == E_SAX_ACCESSDENIED)) - { - EmitError(IDS_SDL_FAILED_WSDL_OPEN, g_wszFile); - } - EmitError(IDS_SDL_PROCESS_FAILURE, g_wszFile); - return 1; - } - - CCodeTypeBuilder builder; - CCodeProxy proxy; - hr = builder.Initialize(parser.GetWSDLDocument(), &proxy); - - if (FAILED(hr)) - { - ATLTRACE( _T("builder.Initialize failed!\n") ); - return PrintGenerateFailure(wszOut); - } - - hr = builder.Build(); - if (FAILED(hr)) - { - ATLTRACE( _T("builder.Build failed!\n") ); - return PrintGenerateFailure(wszOut); - } - - if (wszOut.IsEmpty()) - { - wszOut.Preallocate(proxy.GetServiceName().GetLength()+4); - wszOut = (LPCSTR)proxy.GetServiceName(); - wszOut.Append(L".h", 2); - } - - Emit(IDS_SDL_SUCCESS, wszOut); - CComObjectStack gen; - hr = gen.Generate(wszOut, &proxy, - (nFlags & SPROXYFLAG_NOPRAGMA) ? false : true, - (nFlags & SPROXYFLAG_NOCLOBBER) ? true : false, - (nFlags & SPROXYFLAG_NONAMESPACE) ? false : true, - (nFlags & SPROXYFLAG_NOPROXY) ? false : true, - spSzNamespace ? spSzNamespace : (szNamespace.IsEmpty() ? 0 : LPCSTR(szNamespace))); - if (FAILED(hr)) - { - ATLTRACE( _T("gen.Generate failed!\n") ); - return PrintGenerateFailure(wszOut); - } - } - CoUninitialize(); - - return 0; -} - -void PrintHeader() -{ - Emit(IDS_SDL_HEADER); -} - -int PrintUsage(bool bFull) -{ - Emit(IDS_SDL_USAGE); - if (bFull != false) - { - Emit(IDS_SDL_USAGE_EX); - } - return 1; -} - -int PrintGenerateFailure(const wchar_t *szOut) -{ - EmitError(IDS_SDL_GENERATE_FAILURE, szOut ? szOut : L""); - return 1; -} - -const wchar_t * GetWSDLFile() -{ - return g_wszFile; -} - -ATL_NOINLINE DWORD GetOption(wchar_t *wszCmd) -{ - struct _cmd_item - { - const wchar_t *wszOption; - DWORD dwFlags; - }; - - const static _cmd_item s_options[] = - { - { L"/nologo", SPROXYFLAG_NOLOGO }, - { L"/nowarn", SPROXYFLAG_NOWARN }, - { L"/?", SPROXYFLAG_USAGE }, - { L"/nopragma", SPROXYFLAG_NOPRAGMA }, - { L"/noclobber", SPROXYFLAG_NOCLOBBER }, - { L"/help", SPROXYFLAG_USAGE }, - { L"/nonamespace", SPROXYFLAG_NONAMESPACE }, - { L"/nowchar_t", SPROXYFLAG_NOWCHAR_T }, - { L"/wsdl", SPROXYFLAG_WSDLINPUT}, - { L"/noproxy", SPROXYFLAG_NOPROXY } - }; - - for (int j=0; j<(sizeof(s_options)/sizeof(s_options[0])); j++) - { - if (!_wcsicmp(s_options[j].wszOption, wszCmd)) - { - return s_options[j].dwFlags; - } - } - - if (!_wcsnicmp(wszCmd, L"/out:", (sizeof(L"/out:")/2) -1)) - { - return SPROXYFLAG_SETOUT; - } - if (!_wcsnicmp(wszCmd, L"/namespace:", (sizeof(L"/namespace:")/2) -1)) - { - return SPROXYFLAG_SETNAMESPACE; - } - - return 0; -} - -ATL_NOINLINE void PreProcessCommandLine(int argc, wchar_t *argvW[], CStringW & wszOut, CStringA & szNamespace, unsigned __int64 *pnFlags, LPBOOL pfHasInvalid) -{ - *pfHasInvalid = FALSE; - *pnFlags = 0; - - unsigned __int64 nFlags = 0; - for (int i=1; i ] \r\n" - IDS_SDL_USAGE_EX -"\r\n\ -options:\r\n\r\n \ -/? or /help Display this usage message\r\n \ -/nologo Suppress copyright message\r\n \ -/nowarn Disable all warnings\r\n \ -/nopragma Do not inject '#pragma once' into output file\r\n \ -/noclobber Do not overwrite output file if it already exists\r\n \ -/nonamespace Do not inject namespace for proxy class\r\n \ -/nowchar_t Emit unsigned short instead of wchar_t for s:unsignedShort\r\n \ -/namespace: Name of injected namespace (emtpy implies no namespace)\r\n \ -/wsdl Process WSDL input instead of a discomap file\r\n -\r\ninput:\r\n\r\n \ -/out: File to create for web service proxy class\r\n \ - File path or URL for discomap file or WSDL input\r\n" - -#if 0 -"\r\n\ -options:\r\n\r\n \ -/? or /help Display this usage message\r\n\ -* @ Read command-line options from \r\n \ -/nologo Suppress copyright message\r\n \ -/nowarn Disable all warnings\r\n \ -/nopragma Do not inject '#pragma once' into output file\r\n \ -/noclobber Do not overwrite output file if it already exists\r\n \ -/string:[type] Specify the string type\r\n \ -/atlarray:[opt,[opt]] Treat array parameters as CAtlArray's\r\n \ -/namespace:[] Specify the C++ namespace for the proxy class\r\n \ -/nonamespace Do not generate a C++ namespace for the proxy class\r\n \ -/class: Specify the name for proxy class\r\n\ -* /server Generate a ATL Server Web Service server\r\n \ -/noheader Do not generate #includes, date/time, or other headers\r\n \ -/stdout Output generated code to stdout\r\n \ -/nocomment Do not generate comments for the generated code\r\n \ -/nosizeis Do not return array size information from functions\r\n\ -\r\ninput:\r\n\r\n \ -/out: File to create for web service proxy class\r\n \ - File path or URL for discomap file or WSDL input\r\n" -#endif - - IDS_SDL_PROCESS_FAILURE "failure in processing WSDL file: ""%ws"".\r\n" - IDS_SDL_GENERATE_FAILURE "failure in generating output file: ""%ws""\r\n" - IDS_SDL_INTERNAL "ISE : Internal Sproxy Error. Please contact technical support.\r\n" - IDS_SDL_PARSE_WARNING "%ws" - IDS_SDL_PARSE_ERROR "%ws" - IDS_SDL_UNRECOGNIZED_TAG - "unrecognized tag, with\r\n [\r\n namespace = ""%ws""\r\n tag = ""%ws""\r\n ]\r\n" - - IDS_SDL_MISSING_ATTRIBUTE - "missing required attribute, with\r\n [\r\n namespace = ""%ws""\r\n attribute = ""%ws""\r\n ]\r\n" - IDS_SDL_MSXML "MSXML error. Please check your installation of MSXML." - IDS_SDL_UNRECOGNIZED_DOC - "unrecognized document type : ""%ws"". Unknown root node, with\r\n [\r\n namespace = ""%ws""\r\n tag = ""%ws""\r\n ]\r\n" - IDS_SDL_UNRESOLVED_ELEM "could not resolve element, with\r\n [\r\n namespace = ""%ws""\r\n name = ""%ws""\r\n ]\r\n" - IDS_SDL_UNRESOLVED_NAMESPACE "could not resolve namespace : ""%ws""" - IDS_SDL_ONE_PORT "only one SOAP port will be processed." - IDS_SDL_UNSUPPORTED_TAG "skipping currently unsupported element, with\r\n [\r\n namespace = ""%ws""\r\n name = ""%ws""\r\n ]\r\n" - IDS_SDL_CMDLINE_FAILURE "Failure processing command line arguments - Error No %d.\r\n" - IDS_SDL_UNRESOLVED_ELEM2 - "could not resolve %s, with\r\n [\r\n namespace = ""%ws""\r\n name = ""%ws""\r\n ]\r\n" - IDS_SDL_INVALID_VALUE "invalid ""%s"" value : ""%ws""" - IDS_SDL_SOAP_PORT_ONLY "only SOAP ports are supported." - IDS_SDL_SOAP_BINDING_ONLY "only SOAP bindings are supported." - IDS_SDL_INVALID_ARRAY_DESC "invalid array description, treating as string." - IDS_SDL_RECURSIVE_TYPE "recursively defined types are not supported, with\r\n [\r\n namespace = ""%ws""\r\n name = ""%ws""\r\n ]\r\n" - IDS_SDL_IGNORE_CMDITEM "ignoring unknown parameter: %ws" - IDS_SDL_MISSING_OPTION "missing required parameter: %s" - IDS_SDL_UNSUPPORTED_STRING - "treating as string, with\r\n [\r\n namespace = ""%ws""\r\n tag = ""%ws""\r\n ]\r\n\r\n" - IDS_SDL_FAILED_WSDL_OPEN "could not open WSDL location: ""%ws"".\r\n" - IDS_SDL_UNRESOLVED_MSGPART "could not find message part ""%ws"" in message with\r\n [\r\n namespace = ""%ws""\r\n name=""%ws""\r\n ]\r\n\r\n" - IDS_SDL_SOAPHEADER_DUPNAME "cannot have multiple ""in"" headers with the same name, with\r\n [\r\n namespace = ""%ws""\r\n name=""%ws""\r\n ]\r\n" - IDS_SDL_CMDLINE "\r\nsproxy : command line %s " - IDS_SDL_PARSE " parse " - IDS_SDL_SCHEMALEVEL_NAME """%s"" tags at the schema level must have a name attribute\r\n" - IDS_SDL_PAD_TYPE "document/literal can only reference one message part that has the 'type' attribute.\r\n" - IDS_SDL_PAD_INVALID_SOAP "document/literal cannot reference message parts with the 'type' where the referenced type is not a complexType, it results in an invalid SOAP message.\r\n" - IDS_SDL_RPC_ENCODED_TYPE "rpc/encoded message parts require the 'type' attribute.\r\n" - IDS_SDL_DOC_ENCODED "document/encoded is not supported by sproxy.exe.\r\n" - IDS_SDL_ENCODINGSTYLE "unsupported encodingStyle : ""%ws"".\r\n" - - IDS_SDL_SKIP_EXTENSIBILITY - "skipping unrecognized extensibility element, with\r\n [\r\n namespace = ""%ws""\r\n tag = ""%ws""\r\n ]\r\n" - IDS_SDL_IO_DIFF_NAMESPACES "input/output operations with different namespaces are not supported." - IDS_SDL_RPC_LITERAL "rpc/literal is not supported by sproxy.exe.\r\n" - IDS_SDL_HEADER_DIFF_NAMESPACES "headers with different namespaces than their parent operations are not supported." - - IDS_SDL_INVALID_ARRAY_DESC_ERR "invalid array description." - IDS_SDL_NO_GENERATE "no web service methods to generate." - IDS_SDL_CUSTOM_TYPE "treating custom type as string, with\r\n [\r\n namespace = ""%ws""\r\n name = ""%ws""\r\n ]\r\n" - IDS_SDL_BASE_EXTENSION "sproxy.exe does not support extension of complexType.\r\n" - IDS_SDL_NO_ATTRIBUTES "sproxy.exe does not fully support attributes.\r\n" - IDS_SDL_FAILED_DM_OPEN "could not open discomap location: ""%ws"".\r\n" - IDS_SDL_PROCESS_DM_FAILURE "failure in processing discomap file: ""%ws"".\r\n" - IDS_SDL_DEFAULT_TYPE "treating default type as string.\r\n" - -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/ATL90/source/SProxy/sproxy.sln b/ATL90/source/SProxy/sproxy.sln deleted file mode 100644 index 9762948..0000000 --- a/ATL90/source/SProxy/sproxy.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sproxy", "sproxy.vcproj", "{30A69F38-DD6A-4E97-BE7D-8899307AF81B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {30A69F38-DD6A-4E97-BE7D-8899307AF81B}.Debug|Win32.ActiveCfg = Debug|Win32 - {30A69F38-DD6A-4E97-BE7D-8899307AF81B}.Debug|Win32.Build.0 = Debug|Win32 - {30A69F38-DD6A-4E97-BE7D-8899307AF81B}.Release|Win32.ActiveCfg = Release|Win32 - {30A69F38-DD6A-4E97-BE7D-8899307AF81B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ATL90/source/SProxy/sproxy.srf b/ATL90/source/SProxy/sproxy.srf deleted file mode 100644 index 15b3eda..0000000 --- a/ATL90/source/SProxy/sproxy.srf +++ /dev/null @@ -1,659 +0,0 @@ -// -// sproxy.exe generated file -// do not modify this file -// -// Created: {{GetDateTime}} -// - -{{if EmitPragma}} -#pragma once - -{{endif}} -{{if GenProxy}} - -#if !defined(_WIN32_WINDOWS) && !defined(_WIN32_WINNT) && !defined(_WIN32_WCE) -#pragma message("warning: defining _WIN32_WINDOWS = 0x0410") -#define _WIN32_WINDOWS 0x0410 -#endif - -#include -{{endif}} - -{{if EmitNamespace}} -namespace {{GetCppNamespace}} -{ - -{{endif}} -{{while GetNextEnum}} -enum {{GetEnumCppName}} { {{while GetNextEnumElement}}{{GetEnumElementCppName}} = {{GetEnumElementValue}}, {{endwhile}}};{{ResetCounter}} - -{{endwhile}} -{{while GetNextStruct}} -struct {{GetStructCppName}} -{ -{{while GetNextStructField}} - {{GetStructFieldCppType}} {{if IsFieldDynamicArray}}*{{endif}}{{GetStructFieldCppName}}{{GetStructFieldSuffix}}; -{{if IsFieldDynamicArray}} -{{if FieldHasSizeIs}} -{{else}} - int __{{GetStructFieldCppName}}_nSizeIs; -{{endif}} -{{endif}} -{{endwhile}} -}; - -{{endwhile}} -{{if GenProxy}} -template > -class {{GetClassName}}T : - public TClient, - public CSoapRootHandler -{ -{{if ClassHasHeaders}} -public: - - // - // SOAP headers - // - -{{while GetNextMember}} - {{GetMemberCppType}} {{GetMemberCppName}}{{GetMemberSuffix}}; -{{endwhile}} - -{{endif}} -protected: - - const _soapmap ** GetFunctionMap(); - const _soapmap ** GetHeaderMap(); - void * GetHeaderValue(); - const wchar_t * GetNamespaceUri(); - const char * GetServiceName(); - const char * GetNamespaceUriA(); - HRESULT CallFunction( - void *pvParam, - const wchar_t *wszLocalName, int cchLocalName, - size_t nItem); - HRESULT GetClientReader(ISAXXMLReader **ppReader); - -public: - - HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) - { - if (ppv == NULL) - { - return E_POINTER; - } - - *ppv = NULL; - - if (InlineIsEqualGUID(riid, IID_IUnknown) || - InlineIsEqualGUID(riid, IID_ISAXContentHandler)) - { - *ppv = static_cast(this); - return S_OK; - } - - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() - { - return 1; - } - - ULONG __stdcall Release() - { - return 1; - } - - {{GetClassName}}T(ISAXXMLReader *pReader = NULL) - :TClient(_T("{{GetURL}}")) - { - SetClient(true); - SetReader(pReader); -{{if ClassHasHeaders}} - - // - // initialize headers - // - -{{while GetNextMember}} -{{if IsMemberFixedArray}} - memset({{GetMemberCppName}}, 0x00, sizeof({{GetMemberCppType}}{{GetMemberSuffix}})); -{{else}} -{{if IsMemberUDT}} - memset(&{{GetMemberCppName}}, 0x00, sizeof({{GetMemberCppType}})); -{{else}} -{{if IsMemberEnum}} - {{GetMemberCppName}} = ({{GetMemberCppType}})0; -{{else}} - {{GetMemberCppName}} = 0; -{{endif}} -{{endif}} -{{endif}} -{{endwhile}} -{{endif}} - } - - ~{{GetClassName}}T() - { - Uninitialize(); - } - - void Uninitialize() - { - UninitializeSOAP(); -{{if ClassHasHeaders}} - - // - // uninitialize headers - // - -{{while GetNextMember}} -{{if IsMemberFixedArray}} - AtlCleanupArrayEx({{GetMemberCppName}}, (sizeof({{GetMemberCppType}}{{GetMemberSuffix}}))/(sizeof({{GetMemberCppType}})), GetMemMgr()); -{{else}} - AtlCleanupValueEx(&{{GetMemberCppName}}, GetMemMgr()); -{{endif}} -{{endwhile}} -{{endif}} - } -{{while GetNextFunction}} - - HRESULT {{GetFunctionCppName}}( -{{while GetNextParameter}} - {{GetParameterCppType}}{{if IsParameterDynamicArray}}*{{endif}}{{if IsOutParameter}}{{if NotIsParameterFixedArray}}*{{endif}}{{endif}} {{GetParameterCppName}}{{GetParameterSuffix}}{{if IsParameterDynamicArray}}, int{{if IsOutParameter}}*{{endif}} {{GetParameterCppName}}_nSizeIs{{endif}}{{if NotIsLastParameter}}, {{endif}} - -{{endwhile}} ); -{{endwhile}} -}; - -typedef {{GetClassName}}T<> {{GetClassName}}; -{{while GetNextEnum}} - -__if_not_exists(__{{GetEnumSafeCppQName}}_entries) -{ -extern __declspec(selectany) const _soapmapentry __{{GetEnumSafeCppQName}}_entries[] = -{ -{{while GetNextEnumElement}} - { {{GetEnumElementHashW}}, "{{GetEnumElementName}}", L"{{GetEnumElementName}}", sizeof("{{GetEnumElementName}}")-1, {{GetEnumElementValue}}, SOAPFLAG_FIELD, 0, NULL, NULL, -1 }, -{{endwhile}} - { 0x00000000 } -}; - -extern __declspec(selectany) const _soapmap __{{GetEnumSafeCppQName}}_map = -{ - {{GetEnumNameHashW}}, - "{{GetEnumName}}", - L"{{GetEnumName}}", - sizeof("{{GetEnumName}}")-1, - sizeof("{{GetEnumName}}")-1, - SOAPMAP_ENUM, - __{{GetEnumSafeCppQName}}_entries, - sizeof({{GetEnumCppQName}}), - 1, - -1, - SOAPFLAG_NONE, - {{GetEnumNamespaceHashW}}, - "{{GetEnumNamespace}}", - L"{{GetEnumNamespace}}", - sizeof("{{GetEnumNamespace}}")-1 -}; -} -{{ResetCounter}}{{endwhile}} -{{while GetNextStruct}} - -__if_not_exists(__{{GetStructSafeCppQName}}_entries) -{ -{{while GetNextStructField}} -{{if IsFieldFixedArray}} -extern __declspec(selectany) const int __{{GetStructSafeCppQName}}_{{GetStructFieldCppName}}_dims[] = {{GetStructFieldDimsDecl}}; - -{{endif}} -{{endwhile}} -extern __declspec(selectany) const _soapmapentry __{{GetStructSafeCppQName}}_entries[] = -{ -{{while GetNextStructField}} - { - {{GetStructFieldHashW}}, - "{{GetStructFieldName}}", - L"{{GetStructFieldName}}", - sizeof("{{GetStructFieldName}}")-1, - {{GetStructFieldAtlSoapType}}, - SOAPFLAG_FIELD{{if IsFieldFixedArray}} | SOAPFLAG_FIXEDARR{{endif}}{{if IsFieldDynamicArray}} | SOAPFLAG_DYNARR{{endif}}{{if IsFieldDynamicArrayWrapper}} | SOAPFLAG_DYNARRWRAPPER{{endif}}{{if IsFieldNullable}} | SOAPFLAG_NULLABLE{{endif}}{{if IsFieldSizeIs}} | SOAPFLAG_SIZEIS{{endif}}, - offsetof({{GetStructCppQName}}, {{GetStructFieldCppName}}), - {{if IsFieldFixedArray}}__{{GetStructSafeCppQName}}_{{GetStructFieldCppName}}_dims{{else}}NULL{{endif}}, - {{if IsFieldUDT}}&__{{GetStructFieldTypeSafeCppQName}}_map{{else}}NULL{{endif}}, - {{if IsFieldDynamicArray}}{{if FieldHasSizeIs}}{{GetFieldSizeIsIndex}}{{else}}{{GetCurrentFieldIndex}}+1{{endif}}{{else}}-1{{endif}} - }, -{{if IsFieldDynamicArray}} -{{if FieldHasSizeIs}} -{{else}} - { - {{GetStructFieldHashW}}, - "{{GetStructFieldName}}", - L"{{GetStructFieldName}}", - sizeof("{{GetStructFieldName}}")-1, - SOAPTYPE_INT, - SOAPFLAG_FIELD | SOAPFLAG_NOMARSHAL, - offsetof({{GetStructCppQName}}, __{{GetStructFieldCppName}}_nSizeIs), - NULL, - NULL, - -1 - }, -{{endif}} -{{endif}} -{{endwhile}} - { 0x00000000 } -}; - -extern __declspec(selectany) const _soapmap __{{GetStructSafeCppQName}}_map = -{ - {{GetStructNameHashW}}, - "{{GetStructName}}", - L"{{GetStructName}}", - sizeof("{{GetStructName}}")-1, - sizeof("{{GetStructName}}")-1, - SOAPMAP_STRUCT, - __{{GetStructSafeCppQName}}_entries, - sizeof({{GetStructCppQName}}), - {{GetStructFieldCount}}, - -1, - SOAPFLAG_NONE, - {{GetStructNamespaceHashW}}, - "{{GetStructNamespace}}", - L"{{GetStructNamespace}}", - sizeof("{{GetStructNamespace}}")-1 -}; -} -{{endwhile}} -{{while GetNextFunction}} - -{{while GetNextParameter}} -{{if IsParameterFixedArray}} -extern __declspec(selectany) const int __{{GetClassSafeQName}}_{{GetFunctionCppName}}_{{GetParameterCppName}}_dims[] = {{GetParameterDimsDecl}}; - -{{endif}} -{{endwhile}} -struct __{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct -{ -{{while GetNextParameter}} - {{GetParameterCppType}} {{if IsParameterDynamicArray}}*{{endif}}{{GetParameterCppName}}{{GetParameterSuffix}}; -{{if IsParameterDynamicArray}} - int __{{GetParameterCppName}}_nSizeIs; -{{endif}} -{{endwhile}} -}; - -extern __declspec(selectany) const _soapmapentry __{{GetClassSafeQName}}_{{GetFunctionCppName}}_entries[] = -{ -{{if HasRetval}} -{{GetRetval}} - { - {{GetParameterHashW}}, - "{{GetParameterName}}", - L"{{GetParameterName}}", - sizeof("{{GetParameterName}}")-1, - {{GetParameterAtlSoapType}}, - SOAPFLAG_RETVAL{{if IsInParameter}} | SOAPFLAG_IN{{endif}}{{if IsOutParameter}} | SOAPFLAG_OUT{{endif}}{{if IsParameterDynamicArray}} | SOAPFLAG_DYNARR{{endif}}{{if IsParameterFixedArray}} | SOAPFLAG_FIXEDARR{{endif}}{{if IsParameterNullable}} | SOAPFLAG_NULLABLE{{endif}}, - offsetof(__{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct, {{GetParameterCppName}}), - {{if IsParameterFixedArray}}__{{GetClassSafeQName}}_{{GetFunctionCppName}}_{{GetParameterCppName}}_dims{{else}}NULL{{endif}}, - {{if IsParameterUDT}}&__{{GetParameterTypeCppQName}}_map{{else}}NULL{{endif}}, - {{if IsParameterDynamicArray}}{{GetSizeIsIndex}}{{else}}-1{{endif}}, - }, -{{endif}} -{{ResetParameterIndex}} -{{while GetNextParameter}} -{{if NotIsRetval}} - { - {{GetParameterHashW}}, - "{{GetParameterNameRaw}}", - L"{{GetParameterNameRaw}}", - sizeof("{{GetParameterNameRaw}}")-1, - {{GetParameterAtlSoapType}}, - SOAPFLAG_NONE{{if IsInParameter}} | SOAPFLAG_IN{{endif}}{{if IsOutParameter}} | SOAPFLAG_OUT{{endif}}{{if IsParameterDynamicArray}} | SOAPFLAG_DYNARR{{endif}}{{if IsParameterFixedArray}} | SOAPFLAG_FIXEDARR{{endif}}{{if IsPAD}} | SOAPFLAG_PAD{{if IsChain}} | SOAPFLAG_CHAIN{{endif}}{{endif}}{{if IsPID}} | SOAPFLAG_PID{{endif}}{{if IsDocument}} | SOAPFLAG_DOCUMENT{{endif}}{{if IsRpc}} | SOAPFLAG_RPC{{endif}}{{if IsLiteral}} | SOAPFLAG_LITERAL{{endif}}{{if IsEncoded}} | SOAPFLAG_ENCODED{{endif}}{{if IsParameterNullable}} | SOAPFLAG_NULLABLE{{endif}}, - offsetof(__{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct, {{GetParameterCppName}}), - {{if IsParameterFixedArray}}__{{GetClassSafeQName}}_{{GetFunctionCppName}}_{{GetParameterCppName}}_dims{{else}}NULL{{endif}}, - {{if IsParameterUDT}}&__{{GetParameterTypeCppQName}}_map{{else}}NULL{{endif}}, - {{if IsParameterDynamicArray}}{{GetCurrentParameterIndex}}+1{{else}}-1{{endif}}, - }, -{{if IsParameterDynamicArray}} - { - {{GetParameterHashW}}, - "__{{GetParameterNameRaw}}_nSizeIs", - L"__{{GetParameterNameRaw}}_nSizeIs", - sizeof("__{{GetParameterNameRaw}}_nSizeIs")-1, - SOAPTYPE_INT, - SOAPFLAG_NOMARSHAL, - offsetof(__{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct, __{{GetParameterCppName}}_nSizeIs), - NULL, - NULL, - -1 - }, -{{endif}} -{{endif}} -{{endwhile}} - { 0x00000000 } -}; - -extern __declspec(selectany) const _soapmap __{{GetClassSafeQName}}_{{GetFunctionCppName}}_map = -{ - {{GetFunctionResultNameHashW}}, - "{{GetFunctionSendName}}", - L"{{GetFunctionResultName}}", - sizeof("{{GetFunctionSendName}}")-1, - sizeof("{{GetFunctionResultName}}")-1, - SOAPMAP_FUNC, - __{{GetClassSafeQName}}_{{GetFunctionCppName}}_entries, - sizeof(__{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct), - {{GetExpectedParameterCount}}, -{{if HasRetval}} - 0, -{{else}} - -1, -{{endif}} - SOAPFLAG_NONE{{if IsPAD}} | SOAPFLAG_PAD{{if IsChain}} | SOAPFLAG_CHAIN{{endif}}{{endif}}{{if IsPID}} | SOAPFLAG_PID{{endif}}{{if IsDocument}} | SOAPFLAG_DOCUMENT{{endif}}{{if IsRpc}} | SOAPFLAG_RPC{{endif}}{{if IsLiteral}} | SOAPFLAG_LITERAL{{endif}}{{if IsEncoded}} | SOAPFLAG_ENCODED{{endif}}, - {{GetFunctionNamespaceHashW}}, - "{{GetFunctionNamespace}}", - L"{{GetFunctionNamespace}}", - sizeof("{{GetFunctionNamespace}}")-1 -}; - -{{endwhile}} -extern __declspec(selectany) const _soapmap * __{{GetClassSafeQName}}_funcs[] = -{ -{{while GetNextFunction}} - &__{{GetClassSafeQName}}_{{GetFunctionCppName}}_map, -{{endwhile}} - NULL -}; -{{while GetNextFunction}} - -template -inline HRESULT {{GetClassName}}T::{{GetFunctionCppName}}( -{{while GetNextParameter}} - {{GetParameterCppType}}{{if IsParameterDynamicArray}}*{{endif}}{{if IsOutParameter}}{{if NotIsParameterFixedArray}}*{{endif}}{{endif}} {{GetParameterCppName}}{{GetParameterSuffix}}{{if IsParameterDynamicArray}}, int{{if IsOutParameter}}*{{endif}} __{{GetParameterCppName}}_nSizeIs{{endif}}{{if NotIsLastParameter}}, {{endif}} - -{{endwhile}} ) -{ -{{while GetNextParameter}}{{if IsParameterDynamicArray}}{{if IsOutParameter}} if ( {{GetParameterCppName}}{{GetParameterSuffix}} == NULL ) - return E_POINTER; - if( __{{GetParameterCppName}}_nSizeIs == NULL ) - return E_POINTER; -{{endif}} -{{else}} -{{if IsOutParameter}}{{if NotIsParameterFixedArray}} if ( {{GetParameterCppName}}{{GetParameterSuffix}} == NULL ) - return E_POINTER; -{{endif}}{{endif}} -{{endif}} -{{endwhile}} - - HRESULT __atlsoap_hr = InitializeSOAP(NULL); - if (FAILED(__atlsoap_hr)) - { - SetClientError(SOAPCLIENT_INITIALIZE_ERROR); - return __atlsoap_hr; - } - - CleanupClient(); - - CComPtr __atlsoap_spReadStream; - __{{GetClassSafeQName}}_{{GetFunctionCppName}}_struct __params; - memset(&__params, 0x00, sizeof(__params)); -{{while GetNextParameter}} -{{if IsInParameter}} -{{if NotIsParameterFixedArray}} - __params.{{GetParameterCppName}} = {{if IsOutParameter}}*{{endif}}{{GetParameterCppName}}; -{{else}} - memcpy(__params.{{GetParameterCppName}}, {{GetParameterCppName}}, {{GetParameterFixedArraySize}}*sizeof({{GetParameterCppType}})); -{{endif}} -{{if IsParameterDynamicArray}} - __params.__{{GetParameterCppName}}_nSizeIs = {{if IsOutParameter}}*{{endif}}__{{GetParameterCppName}}_nSizeIs; -{{endif}} -{{endif}} -{{endwhile}} - - __atlsoap_hr = SetClientStruct(&__params, {{GetFunctionIndex}}); - if (FAILED(__atlsoap_hr)) - { - SetClientError(SOAPCLIENT_OUTOFMEMORY); - goto __skip_cleanup; - } - - __atlsoap_hr = GenerateResponse(GetWriteStream()); - if (FAILED(__atlsoap_hr)) - { - SetClientError(SOAPCLIENT_GENERATE_ERROR); - goto __skip_cleanup; - } - - __atlsoap_hr = SendRequest(_T("SOAPAction: \"{{GetSoapAction}}\"\r\n")); - if (FAILED(__atlsoap_hr)) - { - goto __skip_cleanup; - } -{{if IsOneWay}} - if (GetStatusCode() != 202) - { - SetClientError(SOAPCLIENT_SERVER_ERROR); - __atlsoap_hr = E_FAIL; - } -{{else}} - __atlsoap_hr = GetReadStream(&__atlsoap_spReadStream); - if (FAILED(__atlsoap_hr)) - { - SetClientError(SOAPCLIENT_READ_ERROR); - goto __skip_cleanup; - } - - // cleanup any in/out-params and out-headers from previous calls - Cleanup(); - __atlsoap_hr = BeginParse(__atlsoap_spReadStream); - if (FAILED(__atlsoap_hr)) - { - SetClientError(SOAPCLIENT_PARSE_ERROR); - goto __cleanup; - } - -{{while GetNextParameter}} -{{if IsOutParameter}} -{{if NotIsParameterFixedArray}} - *{{GetParameterCppName}} = __params.{{GetParameterCppName}}; -{{else}} - memcpy({{GetParameterCppName}}, __params.{{GetParameterCppName}}, {{GetParameterFixedArraySize}}*sizeof({{GetParameterCppType}})); -{{endif}} -{{if IsParameterDynamicArray}} - *__{{GetParameterCppName}}_nSizeIs = __params.__{{GetParameterCppName}}_nSizeIs; -{{endif}} -{{endif}} -{{endwhile}} -{{endif}} - goto __skip_cleanup; - -__cleanup: - Cleanup(); -__skip_cleanup: - ResetClientState(true); - memset(&__params, 0x00, sizeof(__params)); - return __atlsoap_hr; -} -{{endwhile}} - -template -ATL_NOINLINE inline const _soapmap ** {{GetClassName}}T::GetFunctionMap() -{ - return __{{GetClassSafeQName}}_funcs; -} - -template -ATL_NOINLINE inline const _soapmap ** {{GetClassName}}T::GetHeaderMap() -{ -{{while GetNextFunction}} -{{while GetNextHeader}} -{{if IsHeaderFixedArray}} - -__if_not_exists(__{{GetClassSafeQName}}_{{GetHeaderCppValue}}_dims) -{ - static const int __{{GetClassSafeQName}}_{{GetHeaderCppValue}}_dims[] = {{GetHeaderDimsDecl}}; -} - -{{endif}} -{{endwhile}} - static const _soapmapentry __{{GetClassSafeQName}}_{{GetFunctionCppName}}_atlsoapheader_entries[] = - { -{{while GetNextHeader}} - { - {{GetHeaderHashW}}, - "{{GetHeaderValue}}", - L"{{GetHeaderValue}}", - sizeof("{{GetHeaderValue}}")-1, - {{GetHeaderAtlSoapType}}, - SOAPFLAG_NONE{{if IsInHeader}} | SOAPFLAG_IN{{endif}}{{if IsOutHeader}} | SOAPFLAG_OUT{{endif}}{{if IsRequiredHeader}} | SOAPFLAG_MUSTUNDERSTAND{{endif}}{{if IsHeaderFixedArray}} | SOAPFLAG_FIXEDARR{{endif}}{{if IsHeaderNullable}} | SOAPFLAG_NULLABLE{{endif}}, - offsetof({{GetClassName}}T, {{GetHeaderCppValue}}), - {{if IsHeaderFixedArray}}__{{GetClassSafeQName}}_{{GetHeaderCppValue}}_dims{{else}}NULL{{endif}}, - {{if IsHeaderUDT}}&__{{GetHeaderTypeCppQName}}_map{{else}}NULL{{endif}}, - -1, -{{if IsHeaderUDT}} -{{else}} -{{if HeaderHasNamespace}} - {{GetHeaderNamespaceHashW}}, - "{{GetHeaderNamespace}}", - L"{{GetHeaderNamespace}}", - sizeof("{{GetHeaderNamespace}}")-1 -{{endif}} -{{endif}} - }, -{{endwhile}} - { 0x00000000 } - }; - - static const _soapmap __{{GetClassSafeQName}}_{{GetFunctionCppName}}_atlsoapheader_map = - { - {{GetFunctionResultNameHashW}}, - "{{GetFunctionSendName}}", - L"{{GetFunctionResultName}}", - sizeof("{{GetFunctionSendName}}")-1, - sizeof("{{GetFunctionResultName}}")-1, - SOAPMAP_HEADER, - __{{GetClassSafeQName}}_{{GetFunctionCppName}}_atlsoapheader_entries, - 0, - {{GetExpectedHeaderCount}}, - -1, - SOAPFLAG_NONE{{if IsPAD}} | SOAPFLAG_PAD{{if IsChain}} | SOAPFLAG_CHAIN{{endif}}{{endif}}{{if IsPID}} | SOAPFLAG_PID{{endif}}{{if IsDocument}} | SOAPFLAG_DOCUMENT{{endif}}{{if IsRpc}} | SOAPFLAG_RPC{{endif}}{{if IsLiteral}} | SOAPFLAG_LITERAL{{endif}}{{if IsEncoded}} | SOAPFLAG_ENCODED{{endif}}, - {{GetFunctionNamespaceHashW}}, - "{{GetFunctionNamespace}}", - L"{{GetFunctionNamespace}}", - sizeof("{{GetFunctionNamespace}}")-1 - }; - -{{endwhile}} - - static const _soapmap * __{{GetClassSafeQName}}_headers[] = - { -{{while GetNextFunction}} - &__{{GetClassSafeQName}}_{{GetFunctionCppName}}_atlsoapheader_map, -{{endwhile}} - NULL - }; - - return __{{GetClassSafeQName}}_headers; -} - -template -ATL_NOINLINE inline void * {{GetClassName}}T::GetHeaderValue() -{ - return this; -} - -template -ATL_NOINLINE inline const wchar_t * {{GetClassName}}T::GetNamespaceUri() -{ - return L"{{GetNamespace}}"; -} - -template -ATL_NOINLINE inline const char * {{GetClassName}}T::GetServiceName() -{ - return NULL; -} - -template -ATL_NOINLINE inline const char * {{GetClassName}}T::GetNamespaceUriA() -{ - return "{{GetNamespace}}"; -} - -template -ATL_NOINLINE inline HRESULT {{GetClassName}}T::CallFunction( - void *, - const wchar_t *, int, - size_t) -{ - return E_NOTIMPL; -} - -template -ATL_NOINLINE inline HRESULT {{GetClassName}}T::GetClientReader(ISAXXMLReader **ppReader) -{ - if (ppReader == NULL) - { - return E_INVALIDARG; - } - - CComPtr spReader = GetReader(); - if (spReader.p != NULL) - { - *ppReader = spReader.Detach(); - return S_OK; - } - return TClient::GetClientReader(ppReader); -} -{{if EmitNamespace}} - -} // namespace {{GetCppNamespace}} -{{endif}} -{{while GetNextStruct}} - -template<> -inline HRESULT AtlCleanupValue<{{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}{{GetStructCppName}}>({{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}{{GetStructCppName}} *pVal) -{ - pVal; -{{while GetNextStructField}} -{{if IsFieldFixedArray}} - AtlCleanupArrayMD(pVal->{{GetStructFieldCppName}}, {{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}__{{GetStructSafeCppQName}}_{{GetStructFieldCppName}}_dims); -{{else}} -{{if IsFieldDynamicArray}} - AtlCleanupArray(pVal->{{GetStructFieldCppName}}, pVal->{{if FieldHasSizeIs}}{{GetFieldSizeIsName}}{{else}}__{{GetStructFieldCppName}}_nSizeIs{{endif}}); -{{else}} - AtlCleanupValue(&pVal->{{GetStructFieldCppName}}); -{{endif}} -{{endif}} -{{endwhile}} - return S_OK; -} - -template<> -inline HRESULT AtlCleanupValueEx<{{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}{{GetStructCppName}}>({{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}{{GetStructCppName}} *pVal, IAtlMemMgr *pMemMgr) -{ - pVal; - pMemMgr; - -{{while GetNextStructField}} -{{if IsFieldFixedArray}} - AtlCleanupArrayMDEx(pVal->{{GetStructFieldCppName}}, {{if EmitNamespace}}{{GetCppNamespace}}::{{endif}}__{{GetStructSafeCppQName}}_{{GetStructFieldCppName}}_dims, pMemMgr); -{{else}} -{{if IsFieldDynamicArray}} - if (pVal->{{GetStructFieldCppName}} != NULL) - { - AtlCleanupArrayEx(pVal->{{GetStructFieldCppName}}, pVal->{{if FieldHasSizeIs}}{{GetFieldSizeIsName}}{{else}}__{{GetStructFieldCppName}}_nSizeIs{{endif}}, pMemMgr); - pMemMgr->Free(pVal->{{GetStructFieldCppName}}); - } -{{else}} - AtlCleanupValueEx(&pVal->{{GetStructFieldCppName}}, pMemMgr); -{{endif}} -{{endif}} -{{endwhile}} - return S_OK; -} -{{endwhile}} -{{endif}} \ No newline at end of file diff --git a/ATL90/source/SProxy/sproxy.vcproj b/ATL90/source/SProxy/sproxy.vcproj deleted file mode 100644 index 342ebbd..0000000 --- a/ATL90/source/SProxy/sproxy.vcproj +++ /dev/null @@ -1,824 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ATL90/source/SProxy/utils/cppkw.c b/ATL90/source/SProxy/utils/cppkw.c deleted file mode 100644 index 1d0258e..0000000 --- a/ATL90/source/SProxy/utils/cppkw.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - * - * cppkw.c - * - * generate the cppkeywords.in file - * this will include all reserved macros in - * addition to all reserved keywords - * - */ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include -#include -#include - -// usage : cppkw -int main(int argc, char *argv[]) -{ - char *szRoot; - char *szData; - char *szTemp; - char *szEnd; - FILE *fpIn; - FILE *fpOut; - int nRet; - long nFileLength = 0; - - - nRet = 0; - szRoot = NULL; - szData = NULL; - szTemp = NULL; - szEnd = NULL; - fpIn = NULL; - fpOut = NULL; - - - if (argc < 4) - { - printf("usage : cppkw \n"); - return 1; - } - - fpIn = fopen(argv[1], "r"); - if (!fpIn) - { - printf("error : could not open keywdat file \"%s\"\n", argv[1]); - return 1; - } - - fpOut = fopen(argv[3], "w"); - if (!fpOut) - { - printf("error : could not open output file \"%s\" for writing\n", argv[3]); - goto error; - } - - fprintf(fpOut, - "%%class=CCppKeywordLookup\r\n" - "%%preamble\r\n" - "//\r\n" - "// generated with VC7Libs\\Nonship\\Src\\Sproxy2\\static_hash\\static_hash /i cppkeywords.in /o CppKeywordTable.h /w\r\n" - "//\r\n" - "\r\n" - "%%type=char\r\n" - "%%data\r\n"); - - nFileLength = _filelength(_fileno(fpIn)); - - szData = (char *)malloc(nFileLength+1); - if (!szData) - { - printf("out of memory\n"); - goto error; - } - fread(szData, nFileLength, 1, fpIn); - szData[nFileLength] = '\0'; - szTemp = szRoot = szData; - szEnd = szData+nFileLength; - szTemp = strstr(szTemp, "\nDAT(\""); - - while (szTemp != NULL) - { - char *szTemp2 = NULL; - szData = szTemp; - szData+= sizeof("\nDAT(\"")-1; - if (szData >= szEnd) - { - printf("error in (expected) format of keywdat file.\n"); - goto error; - } - - szTemp2 = strchr(szData, '"'); - if (!szTemp2) - { - printf("error in (expected) format of keywdat file.\n"); - goto error; - } - - fprintf(fpOut, "%.*s,0\r\n", szTemp2-szData, szData); - - szTemp = strstr(szTemp+1, "\nDAT(\""); - } - - fclose(fpIn); - - fpIn = fopen(argv[2], "r"); - if (!fpIn) - { - printf("error : could not open p0io file \"%s\" for reading.\n", argv[2]); - goto error; - } - - nFileLength = _filelength(_fileno(fpIn)); - if ((szEnd-szRoot) < nFileLength) - { - free(szRoot); - szRoot = (char *)malloc(nFileLength+1); - if (!szRoot) - { - printf("out of memory.\n"); - goto error; - } - } - - fread(szRoot, nFileLength, 1, fpIn); - szRoot[nFileLength] = '\0'; - szTemp = szData = szRoot; - szEnd = szData+nFileLength; - - szTemp = strstr(szTemp, "GetIdForString((pIdString_t) \""); - while (szTemp != NULL) - { - char *szTemp2 = NULL; - szData = szTemp; - szData += sizeof("GetIdForString((pIdString_t) \"")-1; - if (szData >= szEnd) - { - printf("error in (expected) format of p0io file.\n"); - goto error; - } - szTemp2 = strchr(szData, '"'); - if (!szTemp2) - { - printf("error in (expected) format of p0io file.\n"); - goto error; - } - fprintf(fpOut, "%.*s,0\r\n", szTemp2-szData, szData); - szTemp = strstr(szTemp+1, "GetIdForString((pIdString_t) \""); - } - - goto end; - -error: - - nRet = 1; - -end: - - if (fpIn != NULL) - { - fclose(fpIn); - } - if (fpOut != NULL) - { - fclose(fpOut); - } - if (szRoot != NULL) - { - free(szRoot); - } - - return nRet; -} \ No newline at end of file diff --git a/ATL90/source/SProxy/utils/mkutils.cmd b/ATL90/source/SProxy/utils/mkutils.cmd deleted file mode 100644 index 40a5cd4..0000000 --- a/ATL90/source/SProxy/utils/mkutils.cmd +++ /dev/null @@ -1,2 +0,0 @@ -cl /GF /O1 /Os /Gy /Oi /Ob2 /Og /Oy /MD static_hash.c /link /NODEFAULTLIB /OPT:REF /OPT:ICF,32 msvcrt.lib kernel32.lib -cl /GF /O1 /Os /Gy /Oi /Ob2 /Og /Oy /MD cppkw.c /link /NODEFAULTLIB /OPT:REF /OPT:ICF,32 msvcrt.lib kernel32.lib diff --git a/ATL90/source/SProxy/utils/static_hash.c b/ATL90/source/SProxy/utils/static_hash.c deleted file mode 100644 index cfd9535..0000000 --- a/ATL90/source/SProxy/utils/static_hash.c +++ /dev/null @@ -1,876 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include -#include - -char g_szClass[256] = { 0 }; -char g_szLookup[256] = { 0 }; -int g_nAssumeValid = 0; -char g_szData[256] = { 'c', 'h', 'a', 'r', ' ', '*', '\0' }; -char g_szOutFile[256] = { 0 }; -char g_szInFile[256] = { 0 }; -int g_nUnicode = 0; -char * g_szpreamble = ""; -int g_nPreamble = 0; - -unsigned long hash_string( const char * sz, int nlen ) -{ - const char* pch; - unsigned long hash; - int i; - - hash = 0; - pch = sz; -// while( *pch != 0 ) - for (i=0; iptail) - { - ptable->ptail->next = pnew; - } - ptable->ptail = pnew; - if (!ptable->phead) - { - ptable->phead = pnew; - } - ptable->size += 1; - } - - return pnew; -} - -int get_input_from_line(struct input_data * pdata, char ** pszline) -{ - char * szcomma; - char * szendln; - char *szline; - - szline = *pszline; - - szcomma = strchr(szline, ','); - if (!szcomma) - { - return 0; - } - pdata->key = szline; - pdata->keylen = szcomma-szline; - szcomma++; - - szendln = strchr(szcomma, '\n'); - if (!szendln) - { - return 0; - } - - pdata->data = szcomma; - pdata->datalen = szendln-szcomma; - if (*(szendln-1) == '\r') - { - pdata->datalen -= 1; - } - - *pszline = szendln+1; - - return 1; -} - -void destroy_input_table(struct input_table * ptable) -{ - struct input_data *pdata; - - while (ptable->phead) - { - pdata = ptable->phead; - ptable->phead = ptable->phead->next; - free(pdata); - } -} - -int choose_static_hash_size(struct static_hash_table * ptable) -{ - return 2*(ptable->size); -} - -void destroy_runtime_hash(struct static_hash_table *ptable) -{ - int i; - struct static_hash_node *p; - struct static_hash_node *temp; - int size; - size=ptable->max_size; - p=(void*)0; - temp=(void*)0; - - if (!ptable || !ptable->pdata) - return; - - for (i=0; ipdata[i]; - if (p->key) - free(p->key); - if (p->data) - free(p->data); - - p = (struct static_hash_node *)(p->link); - while (p) - { - temp = p; - p = (struct static_hash_node *)(p->link); - free(temp); - } - } - - free(ptable->pdata); -} - -int create_runtime_hash(struct static_hash_table *ptable, int max_size) -{ - if (!ptable) - return 0; - - if (ptable->pdata) - destroy_runtime_hash(ptable); - - memset(ptable, 0x00, sizeof(ptable)); - ptable->pdata = (struct static_hash_node *)malloc(max_size*sizeof(struct static_hash_node)); - if (!ptable->pdata) - return 0; - memset(ptable->pdata, 0x00, max_size*sizeof(struct static_hash_node)); - ptable->max_size = max_size; - ptable->size = 0; - - return 1; -} - -struct static_hash_node * runtime_lookup(struct static_hash_table *ptable, const char *key, int keylen, int *found, unsigned long *phash, unsigned long *pindex) -{ - unsigned long hash; - struct static_hash_node *p; - *found = 0; - hash = hash_string(key, keylen); - if (phash) - *phash = hash; -// hash = hash % ptable->max_size; - p = &ptable->pdata[hash % ptable->max_size]; - while (p->key) - { - if (p->hash==hash && !strncmp(key, p->key, keylen)) - { - *found = 1; - break; - } - - if (p->link) - p = (struct static_hash_node *)(p->link); - else - break; - } - - if (pindex) - *pindex = hash % ptable->max_size; - - return p; -} - -char * _strndup(const char * str, int nlen) -{ - char * str2; - if (nlen == -1) - { - nlen = strlen(str); - } - - str2 = (char *) malloc(nlen+1); - if (str2) - { - memcpy(str2, str, nlen); - str2[nlen] = '\0'; - } - - return str2; -} - -int set_runtime_element(struct static_hash_table *ptable, const char *key, int nkeylen, const char *data, int ndatalen) -{ - struct static_hash_node *p; - struct static_hash_node *newnode; - int found; - unsigned long hash; - unsigned long index; - - p = runtime_lookup(ptable, key, nkeylen, &found, &hash, &index); - if (found) - { - if (p->data) - free(p->data); - } - else // !found - { - if (p->key) - { - newnode = (struct static_hash_node *)malloc(sizeof(struct static_hash_node)); - if (!newnode) - return 0; - memset(newnode, 0x00, sizeof(struct static_hash_node)); - while (p->link != 0) - p = (struct static_hash_node *)(p->link); - - p->link = (size_t)newnode; - ptable->pdata[index].entries++; - ptable->non_root_entries++; - p = newnode; - } - - p->key = _strndup(key, nkeylen); - p->hash = hash; - if (!p->key) - return 0; - - ptable->size++; - } - - p->data = _strndup(data, ndatalen); - if (!p->data) - return 0; - return 1; -} - -void generate_static_table(struct static_hash_table *ptable, /*FILE *fp,*/ const char * szTableName) -{ - int i; - int counter; - struct static_hash_node *p; - const char *szkey; - const char *szdata; - const char *szkeyquote; - const char *szunicode; - char * szchartype; - char * szcmpfn; - int ideal_size; - FILE *fp; - counter=1; - ideal_size = choose_static_hash_size(ptable); - - if (g_nUnicode) - { - szchartype = "wchar_t"; - szcmpfn = "wcscmp"; - } - else - { - szchartype = "char"; - szcmpfn = "strcmp"; - } - - fp = fopen(g_szOutFile, "wb"); - if (!fp) - { - printf("could not open file for write: %s\r\n", g_szOutFile); - return; - } - - fprintf(fp, "#include \r\n\r\n"); - fprintf(fp, "%.*s", g_nPreamble, g_szpreamble); - fprintf(fp, "class %s\r\n" - "{\r\n" - "public:\r\n\r\n" - " struct HashNode\r\n" - " {\r\n" - " %s * key;\r\n" - " unsigned long hash;\r\n" - " size_t link;\r\n" - " size_t entries;\r\n" - " %s data;\r\n" - " };\r\n" - "\r\n" - "protected:\r\n" - " const static HashNode m_data[%d];\r\n" - " const static size_t m_size = %d;\r\n" - " const static size_t m_tableSize = %d;\r\n" - "\r\n" - "public:\r\n\r\n" - " static unsigned long Hash( const %s * sz )\r\n" - " {\r\n" - " unsigned long hash;\r\n" - " hash = 0;\r\n" - " while ( *sz != 0 )\r\n" - " {\r\n" - " hash = (hash<<3)+hash+(*sz);\r\n" - " sz++;\r\n" - " }\r\n" - " return hash;\r\n" - " }\r\n" - "\r\n" - " static const HashNode * %s( const %s * key )\r\n" - " {\r\n" - " unsigned long hash;\r\n" - " const HashNode * p;\r\n" - " unsigned long index;\r\n" - " hash = Hash(key);\r\n" - " index = hash %% m_size;\r\n" - " p = &m_data[index];\r\n" - " while (p->key)\r\n" - " {\r\n" - " if (p->hash==hash && !%s(key, p->key))\r\n" - " break;\r\n" - "\r\n" - " if (p->link)\r\n" - " {\r\n" - " p = &m_data[p->link];\r\n" - " }\r\n" - " else\r\n" - " {\r\n" - " p = 0;\r\n" - " break;\r\n" - " }\r\n" - " }\r\n" - "\r\n" - " if (p && p->key)\r\n" - " return p;\r\n" - " return NULL;\r\n" - " }\r\n" - "};\r\n" - "\r\n" - "const %s::HashNode %s::m_data[%d] =\r\n" - "{\r\n", - g_szClass, - szchartype, - g_szData, - ptable->max_size+ptable->non_root_entries, - ptable->max_size, - ptable->size, - szchartype, - g_szLookup, - szchartype, - szcmpfn, - g_szClass, - g_szClass, - ptable->max_size+ptable->non_root_entries - ); -// fprintf(fp, "const static static_hash_node %s_data[%d] = \r\n{\r\n", szTableName, size); -// fprintf(fp, "static struct static_hash_node %s_data[%d] = \r\n{\r\n", szTableName, ptable->max_size+ptable->non_root_entries); - - // initial loop - for (i=0; imax_size; i++) - { - szkey = ptable->pdata[i].key; - szdata = ptable->pdata[i].data; - if (!szkey) - { - szkey = "0"; - szkeyquote = ""; - szunicode = ""; - } - else - { - if (g_nUnicode) - szunicode = "L"; - else - szunicode = ""; - szkeyquote = "\""; - } - if (!szdata) - { - szdata = ""; -// szdataquote = ""; - } -// else -// szdataquote = "\""; -// fprintf(fp, "{ %s, %s, %u, %u }," - fprintf(fp, "\t{ %s%s%s%s, 0x%.08x, %u, %u, %s },\r\n", - szunicode, - szkeyquote, - szkey, - szkeyquote, - ptable->pdata[i].hash, - ptable->pdata[i].entries ? ptable->max_size+counter-1 : 0, - ptable->pdata[i].entries, - szdata); - - counter+= ptable->pdata[i].entries; - } - - counter = ptable->max_size+1; - - // secondary loop (handles collisions) - for (i=0; imax_size; i++) - { - p = &ptable->pdata[i]; - p = (struct static_hash_node *)(p->link); - while (p) - { - szkey = p->key; - szdata = p->data; - if (!szkey) - { - szkey = "0"; - szkeyquote = ""; - szunicode = ""; - } - else - { - if (g_nUnicode) - szunicode = "L"; - else - szunicode = ""; - szkeyquote = "\""; - } - if (!szdata) - { - szdata = ""; -// szdataquote = ""; - } -// else -// szdataquote = "\""; - - // fprintf(fp, "{ %s, %s, %u, %u }," - fprintf(fp, "\t{ %s%s%s%s, 0x%.08x, %u, %u, %s },\r\n", - szunicode, - szkeyquote, - szkey, - szkeyquote, - p->hash, - p->link ? counter : 0, - 0, - szdata); - - counter++; - p = (struct static_hash_node *)(p->link); - } - } - - fprintf(fp, "};\r\n\r\n"); - -#if 0 - fprintf(fp, "struct static_hash_table %s_table = {" - " %s_data," - " %d," - " %d," - " %d,};", - szTableName, - szTableName, - ptable->size, - ptable->max_size, - ptable->non_root_entries); -#endif - - fclose(fp); -} - -#if 0 -struct static_hash_node * static_lookup(struct static_hash_table *ptable, const char *key, int *found, unsigned long *phash, unsigned long *pindex) -{ - unsigned long hash; - struct static_hash_node *p; - unsigned long index; - *found = 0; - hash = hash_string(key); - if (phash) - *phash = hash; - index = hash % ptable->max_size; - p = &ptable->pdata[index]; - while (p->key) - { - if (p->hash==hash && !strcmp(key, p->key)) - { - *found = 1; - break; - } - - if (p->link) - p = &ptable->pdata[p->link]; - else - break; - } - - if (pindex) - *pindex = index; - - return p; -} -#endif - -int all_hashes_unique(struct static_hash_table *ptable) -{ - int i; - int j; - struct static_hash_node *p; - struct static_hash_node *p2; - - for (i=0; imax_size; i++) - { - p = &ptable->pdata[i]; - while (p != 0) - { - if (!p->key) - { - break; - } - - for (j=0; jmax_size; j++) - { - p2 = &ptable->pdata[j]; - while (p2 != 0) - { - if (p2 != p && p2->hash==p->hash) - { - return 0; - } - - if (p2->link) - p2 = (struct static_hash_node *)(p2->link); - else - p2 = 0; - } - } - - if (p->link) - p = (struct static_hash_node *)(p->link); - else - p = 0; - } - } - - return 1; -} - -void print_usage(int i) -{ - printf("usage: static_hash /i infile /o outfile [/c classname] [/d datatype] [/l lookupfunction] [/w] [/v]\r\n\r\n" - "/i infile - the input file (required)\r\n" - "/o outfile - the output file (required)\r\n" - "/c classname - the static hash class (optional - defaults to CStaticHash)\r\n" - "/d datatype - the datatype stored in the has (optional - defaults to char*)\r\n" - "/l lookupfunction - the name of the generated lookup function (optional - defaults to Lookup)\r\n" - "/v - assume no lookups with invalid keys (optional - defaults to false)\r\n" - "/w - use UNICODE keys\r\n"); - exit(i); -} - -void parse_cmd_line(int argc, char * argv[]) -{ - int i; - - for (i=1; i= argc) - { - printf("missing argument: %s\n", argv[i-1]); - print_usage(1); - } - strcpy(g_szClass, argv[i]); - break; - } - case 'D': case 'd': - { - if (++i >= argc) - { - printf("missing argument: %s\n", argv[i-1]); - print_usage(1); - } - strcpy(g_szData, argv[i]); - break; - } - - case 'L': case 'l': - { - if (++i >= argc) - { - printf("missing argument: %s\n", argv[i-1]); - print_usage(1); - } - strcpy(g_szLookup, argv[i]); - break; - } - case 'V': case 'v': - { - g_nAssumeValid = 1; - break; - } - case 'W': case 'w': - { - g_nUnicode = 1; - break; - } - case 'I' : case 'i': - { - if (++i >= argc) - { - printf("missing argument: %s\n", argv[i-1]); - print_usage(1); - } - strcpy(g_szInFile, argv[i]); - break; - } - case 'O' : case 'o': - { - if (++i >= argc) - { - printf("missing argument: %s\n", argv[i-1]); - print_usage(1); - } - strcpy(g_szOutFile, argv[i]); - break; - } - default: - break; - } - } - - if (!g_szClass[0]) - { - strcpy(g_szClass, "CStaticHash"); - } - - if (!g_szLookup[0]) - { - strcpy(g_szLookup, "Lookup"); - } - - if (!g_szOutFile[0]) - { - printf("must specify output file\n"); - print_usage(1); - } - - if (!g_szInFile[0]) - { - printf("must specify input file\n"); - print_usage(1); - } -} - -int preprocess_file(char **pszfile) -{ - char *szfile; - char *szpct; - char *szendln; - - szfile = *pszfile; - - while (1) - { - szpct = strchr(szfile, '%'); - szpct++; - if (!strncmp(szpct, "class=", sizeof("class=")-1)) - { - szpct+= sizeof("class=")-1; - szendln = strchr(szpct, '\n'); - if (!szendln) - goto error; - - memcpy(g_szClass, szpct, szendln-szpct); - g_szClass[szendln-szpct] = '\0'; - if (*(szendln-1) == '\r') - { - g_szClass[szendln-szpct-1] = '\0'; - } - szfile = szendln+1; - continue; - } - if (!strncmp(szpct, "type=", sizeof("type=")-1)) - { - szpct+= sizeof("type=")-1; - szendln = strchr(szpct, '\n'); - if (!szendln) - goto error; - - memcpy(g_szData, szpct, szendln-szpct); - g_szData[szendln-szpct] = '\0'; - if (*(szendln-1) == '\r') - { - g_szData[szendln-szpct-1] = '\0'; - } - szfile = szendln+1; - continue; - } - if (!strncmp(szpct, "preamble", sizeof("preamble")-1)) - { - szpct+= sizeof("preamble")-1; - szendln = strchr(szpct, '\n'); - if (!szendln) - goto error; - - g_szpreamble = szendln+1; - szpct = strchr(szendln, '%'); - if (!szpct) - goto error; - - g_nPreamble = szpct-g_szpreamble; - szfile = szpct; -// printf("%.*s", g_nPreamble, g_szpreamble); - continue; - } - if (!strncmp(szpct, "data", sizeof("data")-1)) - { - szendln = strchr(szpct, '\n'); - if (!szendln) - goto error; - szfile = szendln+1; - break; - } - } - - *pszfile = szfile; - return 1; - -error: - printf("bad input file\r\n"); - return 0; -} - -#ifndef NO_MAIN -int main(int argc, char * argv[]) -{ - struct static_hash_table tbl; - struct input_table intbl; - struct input_data *pdata; - long length; - FILE *fp; - char * szfile; - char * szfileorg; - char * szend; - int ideal_size; - parse_cmd_line(argc, argv); - memset(&tbl, 0x00, sizeof(tbl)); - memset(&intbl, 0x00, sizeof(intbl)); - pdata = 0; - - fp = fopen(g_szInFile, "rb"); - if (!fp) - { - printf("could not open file for read: %s\r\n", g_szInFile); - return 1; - } - - length = _filelength(_fileno(fp)); - szfile = (char *) malloc(length*sizeof(char)); - if (!szfile) - { - printf("out of memory\r\n"); - return 1; - } - fread(szfile, length, 1, fp); - szend = szfile+length; - szfileorg = szfile; - - if (!preprocess_file(&szfile)) - { - return 1; - } - - while (szfile != szend) - { - pdata = add_input_data(&intbl); - if (!pdata) - { - printf("out of memory\r\n"); - return 1; - } - if (!get_input_from_line(pdata, &szfile)) - { - printf("bad input file\r\n"); - return 1; - } -// printf("%.*s, %.*s\r\n", pdata->keylen, pdata->key, pdata->datalen, pdata->data); - } - - pdata = intbl.phead; - ideal_size = 2*(intbl.size); - create_runtime_hash(&tbl, ideal_size); - while (pdata) - { - set_runtime_element(&tbl, pdata->key, pdata->keylen, pdata->data, pdata->datalen); - pdata = pdata->next; - } - - generate_static_table(&tbl, "soap_types"); - destroy_runtime_hash(&tbl); - destroy_input_table(&intbl); - free(szfileorg); - fclose(fp); -#if 0 - create_runtime_hash(&tbl, 17); - set_runtime_element(&tbl, "BSTR", "string"); - set_runtime_element(&tbl, "int", "int"); - set_runtime_element(&tbl, "long", "int"); - set_runtime_element(&tbl, "char", "byte"); - set_runtime_element(&tbl, "short", "short"); - set_runtime_element(&tbl, "__int8", "byte"); - set_runtime_element(&tbl, "__int16", "short"); - set_runtime_element(&tbl, "__int32", "int"); - set_runtime_element(&tbl, "__int64", "long"); - set_runtime_element(&tbl, "float", "float"); - set_runtime_element(&tbl, "double", "double"); - set_runtime_element(&tbl, "unsigned int", "unsignedInt"); - set_runtime_element(&tbl, "unsigned long", "unsignedInt"); - set_runtime_element(&tbl, "unsigned char", "unsignedByte"); - set_runtime_element(&tbl, "unsigned short", "unsignedShort"); - set_runtime_element(&tbl, "unsigned __int8", "unsignedByte"); - set_runtime_element(&tbl, "unsigned __int16", "unsignedShort"); - set_runtime_element(&tbl, "unsigned __int32", "unsignedInt"); -// printf("%d\n", all_hashes_unique(&tbl)); - generate_static_table(&tbl, "soap_types"); - destroy_runtime_hash(&tbl); -#endif -} -#endif \ No newline at end of file diff --git a/ATL90/source/SProxy/wsdl_rpc.srf b/ATL90/source/SProxy/wsdl_rpc.srf deleted file mode 100644 index 3e07076..0000000 --- a/ATL90/source/SProxy/wsdl_rpc.srf +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -{{if IsRpcEncoded}} -{{while GetNextFunction}} -{{while GetNextParameter}} -{{if IsArrayParameter}} - - - - - - - -{{endif}} -{{endwhile}} -{{endwhile}} -{{endif}} -{{while GetNextHeader}} -{{if IsHeaderUDT}} -{{else}} -{{if IsArrayHeader}} -{{else}} - - - -{{endif}} -{{endif}} -{{if IsRpcEncoded}} -{{if IsArrayHeader}} - - - - - - - -{{endif}} -{{endif}} -{{endwhile}} -{{if IsDocumentLiteral}} -{{while GetNextFunction}} - - - -{{while GetNextParameter}} -{{if IsInParameter}} - -{{if IsArrayParameter}} - - - - - - -{{endif}} -{{endif}} -{{endwhile}} - - - - - - -{{while GetNextParameter}} -{{if IsOutParameter}} - -{{if IsArrayParameter}} - - - - - - -{{endif}} -{{endif}} -{{endwhile}} - - - -{{endwhile}} -{{endif}} -{{while GetNextEnum}} - - -{{while GetNextEnumElement}} - -{{endwhile}} - - -{{endwhile}} -{{while GetNextStruct}} - - -{{while GetNextStructField}} - -{{if IsArrayField}} - -{{if IsRpcEncoded}} - - - - - -{{else}} - - - -{{endif}} - - -{{endif}} -{{endwhile}} - - -{{endwhile}} -{{if IsDocumentLiteral}} -{{while GetNextHeader}} - -{{if IsArrayHeader}} - - - - - - -{{endif}} -{{endwhile}} -{{endif}} - - -{{while GetNextFunction}} - -{{if IsDocumentLiteral}} - -{{endif}} -{{if IsRpcEncoded}} -{{while GetNextParameter}} -{{if IsInParameter}} - -{{endif}} -{{endwhile}} -{{endif}} - - -{{if IsDocumentLiteral}} - -{{endif}} -{{if IsRpcEncoded}} -{{while GetNextParameter}} -{{if IsOutParameter}} - -{{endif}} -{{endwhile}} -{{endif}} - -{{endwhile}} -{{while GetNextHeader}} - -{{if IsDocumentLiteral}} - -{{endif}} -{{if IsRpcEncoded}} - -{{endif}} - -{{endwhile}} - -{{while GetNextFunction}} - - - - -{{endwhile}} - - - -{{while GetNextFunction}} - - - - -{{while GetNextFunctionHeader}} -{{if IsInHeader}} - -{{endif}} -{{endwhile}} - - - -{{while GetNextFunctionHeader}} -{{if IsOutHeader}} - -{{endif}} -{{endwhile}} - - -{{endwhile}} - - - - - - - \ No newline at end of file diff --git a/ATL90/source/SProxy/xsdtypes.in b/ATL90/source/SProxy/xsdtypes.in deleted file mode 100644 index b6c080e..0000000 --- a/ATL90/source/SProxy/xsdtypes.in +++ /dev/null @@ -1,485 +0,0 @@ -%class=CXSDTypeLookup -%preamble -// -// generated with VC7Libs\Nonship\Src\Sproxy2\static_hash\static_hash /i xsdtypes.in /o XSDMappingTable.h /w -// - -enum FACET_TYPE -{ - // - // value is timeDuration - // - FACET_DURATION = 1, - - // - // value is "hex" or "base64" - // - FACET_ENCODING = 2, - - // - // specified set of values -- this constrains - // the datatype to the specified values - // - FACET_ENUMERATION = 4, - - // - // number of units of length - // units of length depends on the data type - // value is nonNegativeInteger - // - FACET_LENGTH = 8, - - // - // Upper bound value (all values are less than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MAXEXCLUSIVE = 16, - - // - // Maximum value. - // This value must be the same data type as the inherited data type. - // - FACET_MAXINCLUSIVE = 32, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MAXLENGTH = 64, - - // - // Lower bound value (all values are greater than this value). - // This value must be the same data type as the inherited data type. - // - FACET_MINEXCLUSIVE = 128, - - // - // Minimum value. - // This value must be the same data type as the inherited data type. - // - FACET_MININCLUSIVE = 256, - - // - // Maximum number of units of length. - // Units of length depends on the data type. - // This value must be nonNegativeInteger. - // - FACET_MINLENGTH = 512, - - // - // Specific pattern that the data type’s values must match. - // This constrains the data type to literals that match the - // specified pattern. - // The pattern value must be a regular expression. - // - FACET_PATTERN = 1024, - - // - // Frequency of recurrence for recurringDuration and its derivatives. - // This value must be timeDuration. - // - FACET_PERIOD = 2048, - - // - // Maximum number of digits for data types derived from decimal. - // This value must a positiveInteger. - // - FACET_PRECISION = 4096, - - // - // Maximum number of digits in the fractional portion for data types - // derived from decimal. - // This value must a nonNegativeInteger. - // - FACET_SCALE = 8192, - - // - // whiteSpace provides for: constraining a value space to the white space - // normalization rules. - // - FACET_WHITESPACE = 16384 -}; - -enum XSDTYPE -{ - XSDTYPE_ERR = -2, - XSDTYPE_UNK = -1, - - // - // string - // - XSDTYPE_STRING = 0, - - // - // boolean - // - XSDTYPE_BOOLEAN, - - // - // Represents single-precision 32-bit floating point numbers. - // - XSDTYPE_FLOAT, - - // - // Represents double-precision 64-bit floating point numbers. - // - XSDTYPE_DOUBLE, - - // - // Represents arbitrary precision numbers. - // - XSDTYPE_DECIMAL, - - // - // Represents a duration of time. - // - XSDTYPE_DURATION, - -#if 0 -/* removed */ - // - // Represents a timeDuration that recurs at a specific - // timeDuration, starting from a specific origin. - // This data type cannot be used directly in a schema. - // Only derived data types that specify duration and period can be used. - // - XSDTYPE_UNK, // abstract -#endif - - // - // Represents binary data. - // - XSDTYPE_HEXBINARY, - - // - // Represents binary data. - // - XSDTYPE_BASE64BINARY, - - // - // Represents a Uniform Resource Identifier - // (URI) as defined by RFC 2396. - // - XSDTYPE_ANYURI, - - // - // Represents the ID attribute type defined in the XML 1.0 - // Recommendation. The ID must be an NCName and must be - // unique within an XML document. - // - XSDTYPE_ID, - - // - // Represents a reference to an element that has an ID attribute - // that matches the specified ID. An IDREF must be an NCName and - // must be a value of an element or attribute of type ID within - // the XML document. - // - XSDTYPE_IDREF, - - // - // Represents the ENTITY attribute type in XML 1.0 Recommendation. - // This is a reference to an unparsed entity with a name that matches - // the specified name. An ENTITY must be an NCName and must be - // declared in the schema as an unparsed entity name. - // - XSDTYPE_ENTITY, - - // - // Represents the NOTATION attribute type in XML 1.0 Recommendation. - // This is a reference to a notation with a name that matches the - // specified name. A NOTATION must be an NCName and must be declared - // in the schema as a notation name. - // - XSDTYPE_NOTATION, - - // - // Represents a qualified name. A qualified name is composed of a prefix - // and a local name separated by a colon. Both the prefix and local names - // must be of type NCName. The prefix must be associated with a namespace - // URI reference, using a namespace declaration. - // - XSDTYPE_QNAME, - - // - // Begin Derived Types - // - - // - // CDATA represents white space normalized strings. The value space of CDATA - // is the set of strings that do not contain the carriage-return (#xD), line-feed - // (#xA), nor tab (#x9) characters. The lexical space of CDATA is the set of - // strings that do not cotain the newline (#xD) nor tab (#x9) characters - // - XSDTYPE_NORMALIZEDSTRING, - - // - // token represents tokenized strings. The value space of token is the set of - // strings that do not contain the line-feed (#xA) nor tab (#x9) characters, - // that have no leading or trailing spaces (#x20) and that have no internal sequences - // of two or more spaces. The lexical space of token is the set of strings - // that do not contain the line-feed (#xA) nor tab (#x9) characters, that have - // no trailing or leading spaces (#x20) and that have no internal sequences - // of two or more spaces - XSDTYPE_TOKEN, - - - // - // Represents natural language identifiers (defined by RFC 1766). - // - XSDTYPE_LANGUAGE, - - // - // Represents the IDREFS attribute type. IDREFS contains a - // set of values of type IDREF. - // - XSDTYPE_IDREFS, - - // - // Represents the ENTITIES attribute type. ENTITIES - // contains a set of values of type ENTITY. - // - XSDTYPE_ENTITIES, - - // - // Represents the NMTOKEN attribute type. An NMTOKEN - // is set of name characters (letters, digits, and other - // characters) in any combination. Unlike Name and NCName, - // NMTOKEN has no restrictions on the starting character. - // - XSDTYPE_NMTOKEN, - - // - // Represents the NMTOKENS attribute type. NMTOKENS contains - // a set of values of type NMTOKEN. - // - XSDTYPE_NMTOKENS, - - // - // Represents names in XML. A Name is a token that begins with - // a letter, underscore, or colon and continues with name - // characters (letters, digits, and other characters). - // - XSDTYPE_NAME, - - // - // Represents “non-colonized” names. This data type is the - // same as Name—except it cannot begin with a colon. - // - XSDTYPE_NCNAME, - - // - // Represents a sequence of decimal digits with an optional leading - // sign (+ or -). This data type is derived from decimal. - // - XSDTYPE_INTEGER, - - // - // Represents an integer that is less than or equal to zero. A - // nonPositiveInteger consists of a negative sign (-) and sequence - // of decimal digits. This data type is derived from integer. - // - XSDTYPE_NONPOSITIVEINTEGER, - - // - // Represents an integer that is less than zero. A negativeInteger - // consists of a negative sign (-) and sequence of decimal digits. - // This data type is derived from nonPositiveInteger. - // - XSDTYPE_NEGATIVEINTEGER, - - // - // Represents an integer with a minimum value of -9223372036854775808 - // and maximum of 9223372036854775807. This data type is derived from integer. - // - XSDTYPE_LONG, - - // - // Represents an integer with a minimum value of -32768 and maximum of 32767. - // This data type is derived from long. - // - XSDTYPE_INT, - - // - // Represents an integer with a minimum value of -2147483648 and maximum of 2147483647. - // This data type is derived from int. - // - XSDTYPE_SHORT, - - // - // Represents an integer with a minimum value of -128 and maximum of 127. - // This data type is derived from short. - // - XSDTYPE_BYTE, - - // - // Represents an integer that is greater than or equal to zero. - // This data type is derived from integer. - // - XSDTYPE_NONNEGATIVEINTEGER, - - // - // Represents an integer with a minimum of zero and maximum of 18446744073709551615. - // This data type is derived from nonNegativeInteger. - // - XSDTYPE_UNSIGNEDLONG, - - // - // Represents an integer with a minimum of zero and maximum of 4294967295. - // This data type is derived from unsignedLong. - // - XSDTYPE_UNSIGNEDINT, - - // - // Represents an integer with a minimum of zero and maximum of 65535. - // This data type is derived from unsignedInt. - // - XSDTYPE_UNSIGNEDSHORT, - - // - // Represents an integer with a minimum of zero and maximum of 255. - // This data type is derived from unsignedShort. - // - XSDTYPE_UNSIGNEDBYTE, - - // - // Represents an integer that is greater than zero. - // This data type is derived from nonNegativeInteger. - // - XSDTYPE_POSITIVEINTEGER, - - // - // Represents an instant of time. - // This data type is derived from recurringDuration. - // - XSDTYPE_DATETIME, - - // - // Represents the time of day. - // This data type is derived from recurringDuration. - // - XSDTYPE_TIME, - -#if 0 -/* removed ??? */ - // - // Represents a period of time with a start and an end. - // This data type is derived from recurringDuration. - // This data type cannot be used directly in a schema. - // Only derived data types that specify duration can be used. - // - XSDTYPE_TIMEPERIOD, -#endif - - // - // Represents a timePeriod that begins at midnight of the specified - // day and ends at midnight the following day. - // This data type is derived from timePeriod. - // The format of the date is CCYY-MM-DD. - // Example: 2000-09-27 - // - XSDTYPE_DATE, - - // - // Represents a timePeriod that begins at midnight of the first day of - // the specified month and ends at midnight of the last day. This data type - // is independent of the number days in the month. - // This data type is derived from timePeriod. - // - XSDTYPE_GMONTH, - XSDTYPE_GYEARMONTH, - - // - // Represents a timePeriod that begins at midnight of the first day of - // the specified year and ends at midnight of the last day. This data - // type is independent of the number days in the year. - // This data type is derived from timePeriod. - // - XSDTYPE_GYEAR, - -#if 0 -/* removed */ - // - // Represents a timePeriod that begins at midnight of the first day of the - // specified century and ends at midnight of the last day. - // This data type is derived from timePeriod. - // - XSDTYPE_CENTURY, -#endif - - // - // Represents a recurring day in the year. - // This data type is derived from recurringDuration. - // - XSDTYPE_GMONTHDAY, - - // - // Represents a recurring day in the month. - // This data type is derived from recurringDuration. - // - XSDTYPE_GDAY -}; - -enum XSDFLAGS -{ - XSDFLAG_NONE = 0, - XSDFLAG_ABSTRACT = 1, - XSDFLAG_PRIMITIVE = 2, - XSDFLAG_DERIVED = 4 -}; - -struct _xsdtypemapping -{ - XSDTYPE xsdType; - XSDTYPE baseType; - DWORD dwFlags; - DWORD dwAllowableFacets; -}; - -%type=_xsdtypemapping -%data -string,{XSDTYPE_STRING, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION} -boolean,{XSDTYPE_BOOLEAN, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_PATTERN} -float,{XSDTYPE_FLOAT, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -double,{XSDTYPE_DOUBLE, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -decimal,{XSDTYPE_DECIMAL, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -duration,{XSDTYPE_DURATION, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -hexBinary,{XSDTYPE_HEXBINARY, XSDTYPE_UNK, XSDFLAG_ABSTRACT | XSDFLAG_PRIMITIVE, FACET_ENCODING | FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} -base64Binary,{XSDTYPE_BASE64BINARY, XSDTYPE_UNK, XSDFLAG_ABSTRACT | XSDFLAG_PRIMITIVE, FACET_ENCODING | FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} -anyURI,{XSDTYPE_ANYURI, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_PATTERN | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION} -ID,{XSDTYPE_ID, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -IDREF,{XSDTYPE_IDREF, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -ENTITY,{XSDTYPE_ENTITY, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -QName,{XSDTYPE_QNAME, XSDTYPE_UNK, XSDFLAG_PRIMITIVE, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -NOTATION,{XSDTYPE_NOTATION, XSDTYPE_QNAME, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE} -normalizedString,{XSDTYPE_NORMALIZEDSTRING, XSDTYPE_STRING, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -token,{XSDTYPE_TOKEN, XSDTYPE_NORMALIZEDSTRING, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -language,{XSDTYPE_LANGUAGE, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -IDREFS,{XSDTYPE_IDREFS, XSDTYPE_IDREF, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} -ENTITIES,{XSDTYPE_ENTITIES, XSDTYPE_IDREF, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} -NMTOKEN,{XSDTYPE_NMTOKEN, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -NMTOKENS,{XSDTYPE_NMTOKENS, XSDTYPE_NMTOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_ENUMERATION | FACET_WHITESPACE} -Name,{XSDTYPE_NAME, XSDTYPE_TOKEN, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -NCName,{XSDTYPE_NMTOKEN, XSDTYPE_NAME, XSDFLAG_DERIVED, FACET_LENGTH | FACET_MINLENGTH | FACET_MAXLENGTH | FACET_PATTERN | FACET_ENUMERATION | FACET_WHITESPACE} -integer,{XSDTYPE_INTEGER, XSDTYPE_DECIMAL, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -nonPositiveInteger,{XSDTYPE_NONPOSITIVEINTEGER, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -negativeInteger,{XSDTYPE_NEGATIVEINTEGER, XSDTYPE_NONPOSITIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -long,{XSDTYPE_LONG, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -int,{XSDTYPE_INT, XSDTYPE_LONG, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -short,{XSDTYPE_SHORT, XSDTYPE_INT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -byte,{XSDTYPE_BYTE, XSDTYPE_SHORT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -nonNegativeInteger,{XSDTYPE_NONNEGATIVEINTEGER, XSDTYPE_INTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -unsignedLong,{XSDTYPE_UNSIGNEDLONG, XSDTYPE_NONNEGATIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -unsignedInt,{XSDTYPE_UNSIGNEDINT, XSDTYPE_UNSIGNEDLONG, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -unsignedShort,{XSDTYPE_UNSIGNEDSHORT, XSDTYPE_UNSIGNEDINT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -unsignedByte,{XSDTYPE_UNSIGNEDBYTE, XSDTYPE_UNSIGNEDSHORT, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -positiveInteger,{XSDTYPE_POSITIVEINTEGER, XSDTYPE_NONNEGATIVEINTEGER, XSDFLAG_DERIVED, FACET_PRECISION | FACET_SCALE | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -dateTime,{XSDTYPE_DATETIME, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -time,{XSDTYPE_TIME, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -date,{XSDTYPE_DATE, XSDTYPE_DATE, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -gMonth,{XSDTYPE_GMONTH, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -gYearMonth,{XSDTYPE_GYEARMONTH, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -gYear,{XSDTYPE_GYEAR, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -gMonthDay,{XSDTYPE_GMONTHDAY, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} -gDay,{XSDTYPE_GDAY, XSDTYPE_UNK, XSDFLAG_DERIVED, FACET_DURATION | FACET_PERIOD | FACET_PATTERN | FACET_ENUMERATION | FACET_MAXINCLUSIVE | FACET_MAXEXCLUSIVE | FACET_MININCLUSIVE | FACET_MINEXCLUSIVE | FACET_WHITESPACE} diff --git a/ATL90/source/VCDeploy/api.cpp b/ATL90/source/VCDeploy/api.cpp deleted file mode 100644 index d1a2209..0000000 --- a/ATL90/source/VCDeploy/api.cpp +++ /dev/null @@ -1,1566 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include "stdafx.h" -#include "api.h" -#include "depsettings.h" -#include "resource.h" -#include - - -#define INITGUID // must be before iadmw.h -#include // Interface header - -// for the IID_IISWebService object -#include "iiisext.h" -#include "iisext_i.c" - -#pragma warning(disable:4571) //catch(...) blocks compiled with /EHs do NOT catch or re-throw Structured Exceptions - -class CIISMutex -{ -public: - HANDLE hMutex; - CIISMutex() - { - hMutex = ::CreateMutex(NULL, FALSE, _T("VC8_VCDEPLOY")); - } - bool Lock() - { - printf("Trying to lock mutex %lx\n", (DWORD_PTR)hMutex); - DWORD dw = WaitForSingleObject(hMutex, 10000); - return (dw == WAIT_OBJECT_0); - } - ~CIISMutex() - { - printf("Releasing mutex %lx\n", (DWORD_PTR)hMutex); - ReleaseMutex(hMutex); - CloseHandle(hMutex); - } -}; - -HRESULT AddWebSvcExtention(WCHAR* wszRootWeb6, LPWSTR lpwszFileName,VARIANT_BOOL bEnabled,LPWSTR lpwszGroupID,VARIANT_BOOL bDeletableThruUI,LPWSTR lpwszGroupDescription) -{ - HRESULT hrRet = S_FALSE; - - CComPtr spWeb; - HRESULT hr = ADsGetObject(wszRootWeb6, IID_IISWebService, (void**)&spWeb); - if (SUCCEEDED(hr) && spWeb != NULL) - { - CComVariant var1, var2; - - var1.vt = VT_BOOL; - var1.boolVal = bEnabled; - - var2.vt = VT_BOOL; - var2.boolVal = bDeletableThruUI; - - CComBSTR bstrFileName(lpwszFileName); - CComBSTR bstrGroupID(lpwszGroupID); - CComBSTR bstrGroupDescription(lpwszGroupDescription); - hr = spWeb->AddExtensionFile(bstrFileName,var1,bstrGroupID,var2,bstrGroupDescription); - if (SUCCEEDED(hr)) - { - hrRet = S_OK; - } - else - { - OutputDebugString(_T("failed,probably already exists\r\n")); - } - VariantClear(&var1); - VariantClear(&var2); - } - - return hrRet; -} - -HRESULT RemoveWebSvcExtention(WCHAR* wszRootWeb6, LPWSTR lpwszFileName) -{ - HRESULT hrRet = S_FALSE; - - IISWebService * pWeb = NULL; - HRESULT hr = ADsGetObject(wszRootWeb6, IID_IISWebService, (void**)&pWeb); - if (SUCCEEDED(hr) && NULL != pWeb) - { - CComBSTR bstrFileName(lpwszFileName); - hr = pWeb->DeleteExtensionFileRecord(bstrFileName); - if (SUCCEEDED(hr)) - { - hrRet = S_OK; - } - else - { - OutputDebugString(_T("failed,probably already gone\r\n")); - } - pWeb->Release(); - } - - return hrRet; -} - -HRESULT AddApplicationDependencyUponGroup(WCHAR* wszRootWeb6, LPWSTR lpwszAppName,LPWSTR lpwszGroupID) -{ - HRESULT hrRet = S_FALSE; - - IISWebService * pWeb = NULL; - HRESULT hr = ADsGetObject(wszRootWeb6, IID_IISWebService, (void**)&pWeb); - if (SUCCEEDED(hr) && NULL != pWeb) - { - CComBSTR bstrAppName(lpwszAppName); - CComBSTR bstrGroupID(lpwszGroupID); - hr = pWeb->AddDependency(bstrAppName,bstrGroupID); - if (SUCCEEDED(hr)) - { - hrRet = S_OK; - } - else - { - OutputDebugString(_T("failed,probably already exists\r\n")); - } - pWeb->Release(); - } - - return hrRet; -} - -HRESULT RemoveApplicationDependencyUponGroup(WCHAR* wszRootWeb6, LPWSTR lpwszAppName,LPWSTR lpwszGroupID) -{ - HRESULT hrRet = S_FALSE; - - IISWebService * pWeb = NULL; - HRESULT hr = ADsGetObject(wszRootWeb6, IID_IISWebService, (void**)&pWeb); - if (SUCCEEDED(hr) && NULL != pWeb) - { - CComBSTR bstrAppName(lpwszAppName); - CComBSTR bstrGroupID(lpwszGroupID); - hr = pWeb->RemoveDependency(bstrAppName,bstrGroupID); - if (SUCCEEDED(hr)) - { - hrRet = S_OK; - } - else - { - OutputDebugString(_T("failed,probably already gone\r\n")); - } - pWeb->Release(); - } - - return hrRet; -} - -LPSTR _ReverseFind(LPSTR szStr, size_t nLen, char ch) -{ - LPSTR sz = szStr+nLen; - while (sz >= szStr) - { - if (*sz == ch) - { - return sz; - } - --sz; - } - - return NULL; -} - -BOOL RecursiveCreateDirectoryHelper(LPSTR szPath, size_t nLen) -{ - WIN32_FILE_ATTRIBUTE_DATA fad; - BOOL bRet; - LPSTR szCurrent; - char chTmp; - - memset(&fad, 0x00, sizeof(fad)); - bRet = ::GetFileAttributesExA(szPath, GetFileExInfoStandard, &fad); - if (!bRet) - { - if ((GetLastError() == ERROR_PATH_NOT_FOUND) || - (GetLastError() == ERROR_FILE_NOT_FOUND)) - { - szCurrent = _ReverseFind(szPath, nLen, '\\'); - if (szCurrent != NULL) - { - nLen -= (szPath-szCurrent); - chTmp = *szCurrent; - *szCurrent = '\0'; - bRet = RecursiveCreateDirectoryHelper(szPath, nLen); - if (!bRet) - { - return bRet; - } - - *szCurrent = chTmp; - bRet = ::CreateDirectory(szPath, NULL); - // VSW#472354 - There is a race condition where if two projects are - // building at the same time, the deployment of the other can cause - // this directory to get created after we check that it doesn't exist. - if (!bRet && (GetLastError() != ERROR_ALREADY_EXISTS)) - { - return bRet; - } - } - } - } - return TRUE; -} - -BOOL RecursiveCreateDirectory(LPCSTR szDir) -{ - char szPath[MAX_PATH]; - size_t nLen; - - nLen = strlen(szDir); - if (nLen >= MAX_PATH) - { - SetLastError(ERROR_BUFFER_OVERFLOW); - return FALSE; - } - memcpy(szPath, szDir, nLen); - szPath[nLen] = '\0'; - - return RecursiveCreateDirectoryHelper(szPath, nLen); -} - -int PrintWarning(unsigned int nMsgID) -{ - return PrintMessage(_T("warning"), nMsgID, NULL); -} - -int PrintWarning(unsigned int nMsgID, TCHAR *szExtraInfo) -{ - return PrintMessage(_T("warning"), nMsgID, szExtraInfo); -} - -int PrintWarningWithLastWin32(unsigned int nMsgID) -{ - TCHAR szMsg[512]; - if (::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - GetLastError(), - NULL, - szMsg, - 512, - NULL)) - { - return PrintWarning(nMsgID, szMsg); - } - return PrintWarning(nMsgID); -} - -int PrintWarningFormatted(LPCTSTR szWarning) -{ - return PrintMessage(_T("warning"), szWarning, NULL); -} - -int PrintError(unsigned int nMsgID) -{ - return PrintMessage(_T("error"), nMsgID, NULL); -} - -int PrintError(unsigned int nMsgID, LPCTSTR szExtraInfo) -{ - return PrintMessage(_T("error"), nMsgID, szExtraInfo); -} - -int PrintErrorWithLastWin32(unsigned int nMsgID) -{ - TCHAR szMsg[512]; - if (::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - GetLastError(), - NULL, - szMsg, - 512, - NULL)) - { - return PrintError(nMsgID, szMsg); - } - return PrintError(nMsgID); -} - -int PrintErrorFormatted(LPCTSTR szError) -{ - return PrintMessage(_T("error"), szError, NULL); -} - -int PrintMessage(LPCTSTR szPrefix, unsigned int nMsgID, LPCTSTR szExtraInfo) -{ - CString strMsg; - if (!LoadStringFromModule(nMsgID, strMsg)) - _tprintf("Failed to load error string %x\n", nMsgID); - else - { - return PrintMessage(szPrefix, (LPCTSTR)strMsg, szExtraInfo); - } - return 0; -} - -int PrintMessage(LPCTSTR szPrefix, LPCTSTR szMsg, LPCTSTR szExtraInfo) -{ - if (szExtraInfo) - _tprintf("vcdeploy : %s %s %s.\n", szPrefix, szMsg, szExtraInfo); - else - _tprintf("vcdeploy : %s %s\n", szPrefix, szMsg); - - return ATLSDPLY_SUCCESS; -} - -int PrintMessage(unsigned int nMsgID) -{ - CString strMsg; - if (!LoadStringFromModule(nMsgID, strMsg)) - _tprintf("Failed to load error string %x\n", nMsgID); - else - { - _tprintf("%s\n", static_cast(strMsg)); - } - return 0; -} - -bool FormatMsg(CString& strDest, UINT uId, ...) -{ - CString strFmt; - if (!strFmt.LoadString(uId)) - return false; - va_list argList; - va_start( argList, uId ); - strDest.FormatV(strFmt, argList); - va_end( argList ); - return true; -} - -int ProcessSettings(CDepSettings *pSettings) -{ - int result = ATLSDPLY_FAIL; - long nListLen = 0; - CComPtr spHostList; - if (!pSettings) - { - PrintError(IDS_UNEXPECTED); - return ATLSDPLY_FAIL; - } - - // Get the list of host's from the settings object - // We should have already failed loading - // settings if there was no host list. - result = pSettings->GetHostList(&spHostList); - RETURN_ON_UNEXPECTED_HRP(result, spHostList); - - result = spHostList->get_length(&nListLen); - RETURN_ON_UNEXPECTED(result); - - if (nListLen == 0) - return ATLSDPLY_SUCCESS; // nothing to do - - // start processing stuff for each host - CComPtr spHostNode; - CComBSTR bstrHost; - for (long i = 0; iget_item(i, &spHostNode); - RETURN_ON_UNEXPECTED_HRP(result, spHostNode); - - result = spHostNode->get_text(&bstrHost); - RETURN_ON_UNEXPECTED(result); - - if (bstrHost[0] == L'\0') - { - PrintWarning(IDS_WARNING_EMPTY_HOST_TAG); - continue; // empty host name, we'll just press on in this case - } - - if (S_OK == (result = CADSIHelper::FastLocalRootCheck(pSettings->GetVirtDirName()))) - { - // VRoot exists - // Unload IIS as required by settings document - if (pSettings->GetUnloadBeforeCopy()) - { - result = LocalW3svcReset(); - RETURN_ON_FAIL(result); - } - - // do filesystem updates, this includes creating directories for - // new files and copying filesystem files. - result = UpdateFileSystem(pSettings); - RETURN_ON_FAIL(result); - - // result = CheckMinVRootConfigSettings(pSettings); - // if (result == ATLSDPLY_SUCCESS) - // { - // connect to ads to configure the root - result = CheckVRootExistance(bstrHost, &adsHelper, pSettings); - RETURN_ON_FAIL(result); - - // configure the virtual directory according to the settings file. - result = ConfigureVRoot(&adsHelper, pSettings, bstrHost); - RETURN_ON_FAIL(result); - - // Commit any changes in the metabase. - result = adsHelper.SetInfo(); - RETURN_ON_UNEXPECTED(result); - - result = CADSIHelper::SaveMetabaseData(); - if (result != S_OK) - { - CString strMsg; - FormatMsg(strMsg, IDS_WARNING_FAILED_METABSESAVE, result); - PrintWarningFormatted(strMsg); - } - - // } - result = RegisterExtension(&adsHelper, pSettings); - RETURN_ON_FAIL2(result,result); - - } - else - { - // copy system files. Has to be done first so we - // don't get errors from IIS. - result = UpdateFileSystem(pSettings); - RETURN_ON_FAIL(result); - - // create the virtual directory - result = CreateVRoot(bstrHost, &adsHelper, pSettings); - RETURN_ON_FAIL(result); - - // result = CheckMinVRootConfigSettings(pSettings); - // if (result == ATLSDPLY_SUCCESS) - // { - // configure the virtual directory according to the settings file. - result = ConfigureVRoot(&adsHelper, pSettings, bstrHost); - RETURN_ON_FAIL(result); - // } - - // Commit any changes in the metabase. - result = adsHelper.SetInfo(); - RETURN_ON_UNEXPECTED(result); - - result = RegisterExtension(&adsHelper, pSettings); - RETURN_ON_FAIL2(result,result); - - // finally, we persist the metabase changes. We don't check - result = CADSIHelper::SaveMetabaseData(); - if (result != S_OK) - { - CString strMsg; - FormatMsg(strMsg, IDS_WARNING_FAILED_METABSESAVE, result); - PrintWarningFormatted(strMsg); - } - result = ATLSDPLY_SUCCESS; - - } - } - return ATLSDPLY_SUCCESS; -} - -int ConfigureRestrictionList(CADSIHelper * /*pAdsHelper*/, - CDepSettings *pSettings, - const wchar_t* wszHost) -{ - HRESULT hr = E_FAIL; - try - { - LPCTSTR szvdfspath = pSettings->GetVirtDirFSPath(); - LPCTSTR szextfilename = pSettings->GetExtensionFileName(); - - // need all of these if we are going to get anywhere! - if (szvdfspath == NULL || *szvdfspath == L'\0' || - szextfilename == NULL || *szextfilename == L'\0' || - wszHost == NULL || *wszHost == L'\0') - { - return ATLSDPLY_SUCCESS; - } - - CStringW strSvc(L"IIS://"); - strSvc += wszHost; - strSvc += L"/W3SVC"; - - if( pSettings->GetIISMajorVer() < 6 ) - return ATLSDPLY_SUCCESS; - - - // create the full path to the isapi - CPathW strIsapiPath; - CStringW strVirtDirPath(szvdfspath); - CStringW strExtFileName(szextfilename); - strIsapiPath.Combine(strVirtDirPath, strExtFileName); - - CStringW strDescription( pSettings->GetVirtDirName() ); - - LPWSTR pwszSvc = const_cast((LPCWSTR)strSvc); - LPWSTR pwszIsapiPath = const_cast((LPCWSTR)strIsapiPath); - LPWSTR pwszDescription = const_cast((LPCWSTR)strDescription); - - // Add strIsapiPath to the restrictionlist, make sure it's enabled, - // and that the user is able to remove the entry thru the UI if they wanted to - hr = AddWebSvcExtention( pwszSvc, pwszIsapiPath, VARIANT_TRUE, pwszDescription, VARIANT_TRUE, pwszDescription ); - - if( hr == S_OK ) - { - hr = AddApplicationDependencyUponGroup( pwszSvc, pwszDescription, pwszDescription ); - } - - if( hr == S_FALSE ) // the strIsapiPath has already been on the restriction list. - hr = S_OK; - } - catch(...) - { - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - } - - - return hr == S_OK ? ATLSDPLY_SUCCESS : ATLSDPLY_FAIL; -} -/* -int ConfigureRestrictionList(CADSIHelper *pAdsHelper, - CDepSettings *pSettings, - const wchar_t* wszHost) -{ - HRESULT hr = E_FAIL; - try - { - LPCTSTR szvdfspath = pSettings->GetVirtDirFSPath(); - LPCTSTR szextfilename = pSettings->GetExtensionFileName(); - - // need all of these if we are going to get anywhere! - if (szvdfspath == NULL || *szvdfspath == L'\0' || - szextfilename == NULL || *szextfilename == L'\0' || - wszHost == NULL || *wszHost == L'\0') - { - return ATLSDPLY_SUCCESS; - } - - ATLASSERT(pAdsHelper != NULL); - if (!pAdsHelper) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - CADSIHelper service; - CStringW strSvc(L"IIS://"); - strSvc += wszHost; - strSvc += L"/W3SVC"; - - if (S_OK != service.Connect(strSvc)) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - CComVariant vIRL; - hr = service.GetProperty(L"IsapiRestrictionList", vIRL); - if (hr != S_OK) - { - if (hr != E_ADS_PROPERTY_NOT_SUPPORTED && hr != DISP_E_UNKNOWNNAME) - { - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - } - else - return ATLSDPLY_SUCCESS; // Property only exists on IIS > 6 - } - - if ( !(vIRL.vt & (VT_ARRAY | VT_VARIANT)) ) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - CComSafeArray saCurrentList; - saCurrentList.Attach(vIRL.parray); - vIRL.vt = VT_EMPTY; - // The first string in the list is either "1" or "0" - // If it's one, then all ISAPI extensions are allowed to run except - // the ones in the list. Since this is a new vroot for a new extension - // we assume our isapi would not be on the list if the first string is - // "1" so if it is "1", we're done. - // If it's "0" then no isapis are allowed to run except those on the list - // so we need to add ourselves to the list. - - // look at the first string - CComVariant v = saCurrentList.GetAt(0); - if (v.vt != VT_BSTR) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - if (!wcscmp(L"1", v.bstrVal)) - return ATLSDPLY_SUCCESS; // we're done, everything is allowed to run - - // create the full path to the isapi - CPathW strIsapiPath; - CStringW strVirtDirPath(szvdfspath); - CStringW strExtFileName(szextfilename); - strIsapiPath.Combine(strVirtDirPath, strExtFileName); - - // make sure this isapi isn't already in the list and skip - // the first string because it's either "1" or "0" - int count = saCurrentList.GetCount(); // count of dim 0 - for (int i=1; i saNewList(saCurrentList); // Copies source safearray to our new array - if (!saNewList.m_psa) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - hr = E_FAIL; - CComVariant vNewItem(strIsapiPath); - hr = saNewList.Add(vNewItem); - if (hr == S_OK) - { - CComVariant vNewList(saNewList); // Copies the safearray into the variant. - hr = service.SetProperty(L"IsapiRestrictionList", vNewList); - if (hr == S_OK) - { - hr = service.SetInfo(); - if (hr == S_OK) - { - // Always notify the user that we have enabled - // their ISAPI. - CString strMsg; - CString strPath(strIsapiPath); - FormatMsg(strMsg, IDS_UPDATEIRL, (LPCTSTR)strPath); - _tprintf((LPCTSTR)strMsg); - } - } - } - } - catch(...) - { - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - } - - - return hr == S_OK ? ATLSDPLY_SUCCESS : ATLSDPLY_FAIL; -} -*/ - -int CheckVRootExistance(const CComBSTR& bstrHostName, - CADSIHelper *pAdsHelper, - CDepSettings *pSettings) -{ - ATLASSERT(pAdsHelper); - ATLASSERT(pSettings); - if (!pAdsHelper || !pSettings) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - HRESULT hr = E_FAIL; - - try - { - CStringW strVirtDirName(pSettings->GetVirtDirName()); - CFixedStringT strAdsPathRoot(L"IIS://"); - strAdsPathRoot += bstrHostName; - - TCHAR szBuf[513]; - szBuf[0] = _T('\0'); - DWORD dwBufSize = (sizeof(szBuf)/sizeof(TCHAR))-1; - // get environment variable for web site (just a number) - dwBufSize = GetEnvironmentVariable(_T("VCDEPLOY_WEBSITE"), szBuf, dwBufSize); - if ((!dwBufSize) || (dwBufSize >= (sizeof(szBuf)/sizeof(TCHAR)))) - { - szBuf[0] = _T('1'); - dwBufSize = 1; - } - szBuf[dwBufSize] = _T('\0'); - -// strAdsPathRoot += L"/W3SVC/1/ROOT"; - strAdsPathRoot.Append(L"/W3SVC/", sizeof("/W3SVC/")-1); - strAdsPathRoot.Append(CT2CW(szBuf), dwBufSize); - strAdsPathRoot.Append(L"/ROOT", sizeof("/ROOT")-1); - - CFixedStringT strAdsPathFull(strAdsPathRoot); - strAdsPathFull += _T('/'); - strAdsPathFull += strVirtDirName; - - - // first, see if we can bind to the full path, which would mean the virtual - // directory already exists - hr = pAdsHelper->Connect(strAdsPathFull); - RETURN_ON_UNEXPECTED(hr); - } - catch(...) - { - // catches CString allocation problems - RETURN_ON_FAIL2(hr, IDS_ERR_OUTOFMEM); - } - return hr; -} - - -int CreateVRoot(const CComBSTR& bstrHostName, - CADSIHelper *pAdsHelper, - CDepSettings *pSettings) -{ - HRESULT hr = E_FAIL; - ATLASSERT(pAdsHelper); - ATLASSERT(pSettings); - if (!pAdsHelper || !pSettings) - RETURN_ON_UNEXPECTED(ATLSDPLY_FAIL); - - try - { - CStringW strVirtDirName(pSettings->GetVirtDirName()); - CFixedStringT strAdsPathRoot(L"IIS://"); - strAdsPathRoot += bstrHostName; - - TCHAR szBuf[513]; - szBuf[0] = _T('\0'); - DWORD dwBufSize = (sizeof(szBuf)/sizeof(TCHAR))-1; - // get environment variable for web site (just a number) - dwBufSize = GetEnvironmentVariable(_T("VCDEPLOY_WEBSITE"), szBuf, dwBufSize); - if ((!dwBufSize) || (dwBufSize >= (sizeof(szBuf)/sizeof(TCHAR)))) - { - szBuf[0] = _T('1'); - dwBufSize = 1; - } - szBuf[dwBufSize] = _T('\0'); - -// strAdsPathRoot += L"/W3SVC/1/ROOT"; - strAdsPathRoot.Append(L"/W3SVC/", sizeof("/W3SVC/")-1); - strAdsPathRoot.Append(CT2CW(szBuf), dwBufSize); - strAdsPathRoot.Append(L"/ROOT", sizeof("/ROOT")-1); - - // Root doesn't exist, try to create it - hr = pAdsHelper->Connect(strAdsPathRoot); - RETURN_ON_FAIL2(hr, IDS_ERR_CONNECTADSFAILED); - - short nIso = (short)pSettings->GetAppIsolation(); - if( pSettings->SkipVirtDirCreation() ) - { - hr = pAdsHelper->CreateAppOnly(strVirtDirName, nIso, NULL); - RETURN_ON_FAIL2(hr, IDS_ERR_CREATEVROOTFAILED); - } - else - { - //ATLASSERT(nIso >= 0 && nIso <= 2); - hr = pAdsHelper->CreateVRoot(strVirtDirName, nIso, NULL); - RETURN_ON_FAIL2(hr, IDS_ERR_CREATEVROOTFAILED); - - // the path to the root must be set at vroot creation time - // it can't be accessed later. - CComVariant val; - val = pSettings->GetVirtDirFSPath(); - hr = pAdsHelper->SetProperty(L"Path", val); - RETURN_ON_FAIL2(hr, IDS_ERR_SETADSPROPERTY); - } - } - catch(...) - { - // catches CString allocation problems - RETURN_ON_FAIL2(hr, IDS_ERR_OUTOFMEM); - } - return ATLSDPLY_SUCCESS; -} - -int ConfigureVRoot( CADSIHelper *pAdsHelper, - CDepSettings *pSettings, - const wchar_t* wszHost) -{ - ATLASSERT(pAdsHelper); - ATLASSERT(pSettings); - if (!pAdsHelper || !pSettings) - return IDS_UNEXPECTED; - - HRESULT hr = E_FAIL; - CComVariant val; - - // Set some general properties about the vroot - val.vt = VT_BOOL; - val.boolVal = VARIANT_TRUE; - hr = pAdsHelper->SetProperty(L"AccessExecute", val); - RETURN_ON_FAIL2(hr, IDS_ERR_SETADSPROPERTY); - - val = pSettings->GetVirtDirName(); - hr = pAdsHelper->SetProperty(L"AppPackageName", val); - RETURN_ON_FAIL2(hr, IDS_ERR_SETADSPROPERTY); - - CComVariant varOrigName; - hr = pAdsHelper->GetPropertySingle(L"AppFriendlyName", varOrigName); - if (FAILED(hr) || varOrigName.vt != VT_BSTR || ::SysStringLen(varOrigName.bstrVal) == 0) - { - val = pSettings->GetVirtDirName(); - hr = pAdsHelper->SetProperty(L"AppFriendlyName", val); - RETURN_ON_FAIL2(hr, IDS_ERR_SETADSPROPERTY); - } - - hr = SetRootAppMappings(pAdsHelper, pSettings); - RETURN_ON_FAIL(hr); - hr = ConfigureRestrictionList(pAdsHelper, pSettings, wszHost); - return hr; -} - -LONG FindMapping(CComSafeArray *pArray, BSTR bstrExt) -{ - // if the array is empty, then the entry is not there - if (!pArray->m_psa) - return -1; - - // find an item that starts with bstrExt followed by ',' - CComBSTR bstrFullExt(bstrExt); - bstrFullExt.Append(","); - size_t nLen = wcslen(bstrFullExt); - - ULONG ulCount = pArray->GetCount(); - for (LONG lIndex=0; lIndex < (LONG) ulCount; lIndex++) - { - CComVariant var; - var = pArray->GetAt(lIndex); - if (var.vt == VT_BSTR && !_wcsnicmp(bstrFullExt, var.bstrVal, nLen)) - return lIndex; - } - return -1; -} - -int SetRootAppMappings( CADSIHelper *pAdsHelper, - CDepSettings *pSettings) -{ - ATLASSERT(pAdsHelper); - ATLASSERT(pSettings); - if (!pAdsHelper || !pSettings) - return IDS_UNEXPECTED; - - LPCTSTR szvdfspath = pSettings->GetVirtDirFSPath(); - LPCTSTR szextfilename = pSettings->GetExtensionFileName(); - if ((!szvdfspath || *szvdfspath == _T('\0') ) || - (!szextfilename || *szextfilename == _T('\0') ) - ) - return ATLSDPLY_SUCCESS; // not enough info! - - HRESULT hr = E_FAIL; - CStringW rgMappings[MAX_VERB_BLOCKS]; - CComPtr spMappingNodes; - CPathW strIsapiPath; - CStringW strVirtDirPath(szvdfspath); - CStringW strExtFileName(szextfilename); - strIsapiPath.Combine(strVirtDirPath, strExtFileName); - hr = pSettings->GetAppMappingList(&spMappingNodes); - RETURN_ON_UNEXPECTED(hr); - - if (!spMappingNodes) - return ATLSDPLY_SUCCESS; // nothing to do - - long nMappingCount = 0, i=0; - hr = spMappingNodes->get_length(&nMappingCount); - RETURN_ON_UNEXPECTED(hr); - - if (nMappingCount <= 0) - return ATLSDPLY_SUCCESS; // nothing to do - - if (nMappingCount > MAX_VERB_BLOCKS) - RETURN_ON_FAIL2(ATLSDPLY_FAIL, ATLS_ERR_TOOMANYVERBBLOCKS); - - // get the current script mappings - CComVariant vCurrentMappings; - CComSafeArray saCurrentMappings; - - hr = pAdsHelper->GetProperty(L"ScriptMaps", vCurrentMappings); - if (SUCCEEDED(hr) && (vCurrentMappings.vt == (VT_ARRAY|VT_VARIANT))) - { - VARIANT vVal; - VariantInit(&vVal); - vCurrentMappings.Detach(&vVal); - saCurrentMappings.Attach(vVal.parray); - } - - CComBSTR strAttrName(L"fileext"); - // loop through the nodes and register the extensions - for (i = 0; i spMappingNode, spExtAttr; - CComPtr spAttributes; - CComBSTR bstrExt; - hr = spMappingNodes->get_item(i, &spMappingNode); - RETURN_ON_UNEXPECTED_HRP(hr, spMappingNode); - - // get the fileext attribute - hr = spMappingNode->get_attributes(&spAttributes); - RETURN_ON_FAIL2_HRP(hr, spAttributes, IDS_FILEEXTATTR_NOTFOUND); - - hr = spAttributes->getNamedItem(strAttrName, &spExtAttr); - RETURN_ON_FAIL2_HRP(hr, spAttributes, IDS_FILEEXTATTR_NOTFOUND); - - hr = spExtAttr->get_text(&bstrExt); - RETURN_ON_FAIL2(hr, IDS_FILEEXTATTR_INVALID); - - if (bstrExt[0] != L'.') - { - CComBSTR bstrTemp(L"."); - bstrTemp += bstrExt; - bstrExt = bstrTemp; - } - - // get the list of verbs to map to - CComPtr spExtVerbList; - long nVerbs = 0; - CComBSTR rgVerbs[MAX_VERB_COUNT]; - - hr = spMappingNode->selectNodes(CComBSTR(L"VERB"), &spExtVerbList); - if (hr != S_OK) - continue; // no verbs, nothing to do - - RETURN_ON_UNEXPECTED_P(spExtVerbList); - - hr = spExtVerbList->get_length(&nVerbs); - RETURN_ON_UNEXPECTED(hr); - - if (nVerbs == 0) - continue; // no verbs, nothing to do - - if (nVerbs > MAX_VERB_COUNT) - { - PrintError(IDS_ERR_TOOMANYVERBS); - return ATLSDPLY_FAIL; - } - - CStringW strEntry; - strEntry = bstrExt; - strEntry += L","; - strEntry += strIsapiPath; - - - if (pSettings->GetIISMajorVer() > 4) - { - strEntry += L",0,"; // we already know nVerbs>0 - for (long z = 0; z spVerbNode; - CComBSTR bstrVerb; - hr = spExtVerbList->get_item(z, &spVerbNode); - RETURN_ON_UNEXPECTED(hr); - - hr = spVerbNode->get_text(&bstrVerb); - RETURN_ON_UNEXPECTED(hr); - - strEntry += bstrVerb; - if (z < nVerbs-1) - strEntry += L','; - } - } - else - strEntry += L",0"; - LONG lIndex = FindMapping(&saCurrentMappings, bstrExt); - if (lIndex >= 0) - { - // update the entry in the array - CComVariant v(strEntry); - saCurrentMappings.SetAt(lIndex, v, TRUE); - } - else - { - // add as a new entry - rgMappings[i] = strEntry; - } - -#ifdef _DEBUG - CString strOut; - strOut.Format("Adding mapping %s\n",CW2A(strEntry)); - printf(strOut); - ATLTRACE(L"Adding script mapping %s\n", strEntry); -#endif - } - - CComSafeArray rgsaMappings; - for ( long y = 0; ySetProperty(L"ScriptMaps", vSafearray); - } - else - { - CComVariant vSafearray(rgsaMappings); - vSafearray.vt=VT_ARRAY|VT_VARIANT; - hr = pAdsHelper->SetProperty(L"ScriptMaps", vSafearray); - } - RETURN_ON_FAIL2(hr, IDS_ERR_SETADSPROPERTY); - return hr; -} - -int LocalW3svcReset() -{ - // There is a race condition that can happen when deploying two projects - // at the same time. We need to stop/restart IIS as a single operation. - // Use a named mutex that works across processes to serialize this action. - CIISMutex iisMutex; - iisMutex.Lock(); - - DWORD dwRet = 0; - // open service control manager - SC_HANDLE hScm = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT|SC_MANAGER_ENUMERATE_SERVICE); - if (hScm==NULL) - { - PrintErrorWithLastWin32(IDS_FAILEDOPENSCM); - return ATLSDPLY_FAIL; - } - - // open W3SVC - SC_HANDLE hW3Svc = OpenService(hScm, _T("W3SVC"), SERVICE_QUERY_STATUS|SERVICE_START|SERVICE_STOP); - if (hW3Svc==NULL) - { - PrintErrorWithLastWin32(IDS_FAILEDOPENSVC); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - - // stop W3SVC - SERVICE_STATUS svcStatus; - ZeroMemory(&svcStatus, sizeof(svcStatus)); - QueryServiceStatus(hW3Svc, &svcStatus); - - if (svcStatus.dwCurrentState == SERVICE_RUNNING) - { - ZeroMemory(&svcStatus, sizeof(svcStatus)); - if (!ControlService(hW3Svc, SERVICE_CONTROL_STOP, &svcStatus) && - GetLastError() != ERROR_SERVICE_NOT_ACTIVE) - { - // couldn't send the control service command plus - // the service isn't already stopped. - PrintErrorWithLastWin32(IDS_FAILEDSTOPCOMMAND); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - } - - - if (svcStatus.dwCurrentState == SERVICE_STOP_PENDING) - { - printf("stopping W3SVC."); - // Stop is pending, we'll have to wait - for (int i=0;i<1000; i++) - { - // sleep - //Sleep(svcStatus.dwWaitHint != 0 ? svcStatus.dwWaitHint : 100); - Sleep(50); - printf("."); - - //interogate - ZeroMemory(&svcStatus, sizeof(svcStatus)); - if (!QueryServiceStatus(hW3Svc, &svcStatus)) - { - PrintErrorWithLastWin32(IDS_FAILEDQUERYSTATUS); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - if (svcStatus.dwCurrentState == SERVICE_STOPPED) - { - // service is stopped - break; - } - } - printf("\n"); - } - - int nRetryCount=0; - if (svcStatus.dwCurrentState == SERVICE_STOPPED) - { - printf("starting W3SVC."); - ZeroMemory(&svcStatus, sizeof(svcStatus)); - if (!StartService(hW3Svc, NULL, NULL)) - { - PrintErrorWithLastWin32(IDS_FAILEDSTARTSVC); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - // check for pending status - ZeroMemory(&svcStatus, sizeof(svcStatus)); - if (!QueryServiceStatus(hW3Svc, &svcStatus)) - { - PrintErrorWithLastWin32(IDS_FAILEDQUERYSTATUS); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - - if (svcStatus.dwCurrentState == SERVICE_START_PENDING) - { - - // Start is pending, we'll have to wait. - for (int i=0;i<1000; i++) - { - // sleep - // Sleep(svcStatus.dwWaitHint != 0 ? svcStatus.dwWaitHint : 100); - Sleep(50); //polling is faster than using their hint - //interogate - printf("."); - ZeroMemory(&svcStatus, sizeof(svcStatus)); - if (!QueryServiceStatus(hW3Svc, &svcStatus)) - { - PrintErrorWithLastWin32(IDS_FAILEDQUERYSTATUS); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - - //success? - if (svcStatus.dwCurrentState == SERVICE_RUNNING) - { - // service is running! We're done - printf("\n"); - break; - } - else if (svcStatus.dwCurrentState == SERVICE_STOPPED) - { - if (nRetryCount > 50) - break; - Sleep(100); - if (!StartService(hW3Svc, NULL, NULL)) - { - PrintErrorWithLastWin32(IDS_FAILEDSTARTSVC); - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return ATLSDPLY_FAIL; - } - nRetryCount++; - } - } - } - } - else - { - // it never stopped for some reason - PrintError(IDS_ERR_NOSTOPW3SVC); - dwRet = ATLSDPLY_FAIL; - } - - // final check to see if it's running - if (svcStatus.dwCurrentState != SERVICE_RUNNING) - { - // service should be running by now - ATLASSERT(FALSE); - PrintError(IDS_ERR_W3SVCFAILEDTOSTART); - dwRet = ATLSDPLY_FAIL; - } - - CloseServiceHandle(hW3Svc); - CloseServiceHandle(hScm); - return dwRet; -} - -int UpdateFileSystem(CDepSettings *pSettings) -{ - CComPtr spFileGroupsList; - HRESULT hr = E_FAIL; - long nAppFileGroups = 0, i=0; - - // Create the vroot root directory - CPath FSPath(pSettings->GetVirtDirFSPath()); - - if (FSPath.m_strPath.GetLength() != 0 && !FSPath.IsDirectory()) - { - if (!CreateDirectory(FSPath, NULL)) - { - PrintErrorWithLastWin32(IDS_ERR_CREATING_DIRECTORY); - return ATLSDPLY_FAIL; - } - } - else if (FSPath.m_strPath.GetLength() == 0) - { - PrintError(IDS_ERR_CREATING_DIRECTORY); - return ATLSDPLY_FAIL; - } - - hr = pSettings->GetFileGroups(&spFileGroupsList); - RETURN_ON_UNEXPECTED_HRP(hr, spFileGroupsList); - - //loop through each app file group - hr = spFileGroupsList->get_length(&nAppFileGroups); - RETURN_ON_UNEXPECTED(hr); - - if (nAppFileGroups <= 0) - return ATLSDPLY_SUCCESS; // nothing to do - - for (i=0; i spAppFileGroupNode; - CComPtr spFileNodeList; - long nFileNameNodes = 0; - - hr = spFileGroupsList->get_item(i, &spAppFileGroupNode); - RETURN_ON_UNEXPECTED_HRP(hr, spAppFileGroupNode); - - hr = spAppFileGroupNode->selectNodes(CComBSTR(L"APPFILENAME"), &spFileNodeList); - RETURN_ON_UNEXPECTED_HRP(hr, spFileNodeList); - - hr = spFileNodeList->get_length(&nFileNameNodes); - RETURN_ON_UNEXPECTED(hr); - - if (nFileNameNodes <=0) - continue; // no files in node. - - for (long x=0; x spFileNode, spSrc, spDest; - CComBSTR bstrSrcPath, bstrDestPath; - hr = spFileNodeList->get_item(x, &spFileNode); - RETURN_ON_UNEXPECTED_HRP(hr, spFileNode); - - hr = spFileNode->selectSingleNode(CComBSTR(L"SRC"), &spSrc); - RETURN_ON_UNEXPECTED_HRP(hr, spSrc); - - hr = spFileNode->selectSingleNode(CComBSTR(L"DEST"), &spDest); - RETURN_ON_UNEXPECTED_HRP(hr, spDest); - - hr = spSrc->get_text(&bstrSrcPath); - RETURN_ON_UNEXPECTED(hr); - - hr = spDest->get_text(&bstrDestPath); - RETURN_ON_UNEXPECTED(hr); - - // src is a full path - // dest is a path relative to the root of the vroot path - // Calculate the full path of the file, then see if the - // directory exists. If it doesn't, create it. - CPath vrDestDir; - vrDestDir.Combine(pSettings->GetVirtDirFSPath(), CW2T(bstrDestPath)); - CPath vrDestPath(vrDestDir); - vrDestDir.RemoveFileSpec(); - if (!vrDestDir.IsDirectory()) - { - if (!RecursiveCreateDirectory(vrDestDir)) - { - PrintErrorWithLastWin32(IDS_ERR_CREATING_DIRECTORY_RELATIVE); - return ATLSDPLY_FAIL; - } - } - - CW2T szDest(bstrSrcPath); - // Copy the file - int result = CheckFileDiff(szDest, vrDestPath); - if (result == S_FALSE) - { - if (!::CopyFile(szDest, vrDestPath, FALSE)) - { - PrintWarningWithLastWin32(IDS_WARN_COPYING_FILE); - } - else - { - CString strMsg; - FormatMsg(strMsg, IDS_COPYFILE_MESSAGE, (LPCTSTR)szDest, (LPCTSTR)vrDestPath); - _fputts(static_cast(strMsg),stdout); - ATLTRACE("Copied %s to %s\n", (LPCTSTR)CW2T(bstrSrcPath), (LPCTSTR)vrDestPath); - } - - // Remove the readonly attribute on the destination file - // if it is set. - DWORD dwAttrs = GetFileAttributes(vrDestPath); - if (dwAttrs != 0xFFFFFFFF) - { - if (dwAttrs & FILE_ATTRIBUTE_READONLY) - { - dwAttrs &= ~FILE_ATTRIBUTE_READONLY; - if (!SetFileAttributes(vrDestPath, dwAttrs)) - { - ATLTRACE(_T("Failed to remove readonly attribute of target file %s\n"), vrDestPath); - } - } - } - } - else if (result == S_OK) - { - CString strMsg; - FormatMsg(strMsg, IDS_FILES_IDENTICAL, (LPCTSTR) szDest); - _fputts(static_cast(strMsg), stdout); - } - } - } - return ATLSDPLY_SUCCESS; -} - -int RegisterExtension(CADSIHelper* /*pAdsHelper*/, - CDepSettings *pSettings) -{ - - if (!pSettings->GetRegIsapi()) - return ATLSDPLY_SUCCESS; // isapi doesn't need to be registered - - LPCTSTR szVirtDirPath = pSettings->GetVirtDirFSPath(); - LPCTSTR szExtFileName = pSettings->GetExtensionFileName(); - - if (!szVirtDirPath || *szVirtDirPath == _T('\0')) - { - PrintWarning(IDS_ERR_REGISTERING_NOVDIRPATH); - return ATLSDPLY_SUCCESS; - } - - if (!szExtFileName || *szExtFileName == _T('\0')) - { - PrintWarning(IDS_ERR_REGISTERING_NOEXTFILE); - return ATLSDPLY_SUCCESS; - } - CPathW strIsapiPath; - int nRet = IDS_ERR_REGISTERING_EXTENSION; - - try - { - - CStringW strVirtDirPath(szVirtDirPath); - CStringW strExtFileName(szExtFileName); - strIsapiPath.Combine(strVirtDirPath, strExtFileName); - } - catch(...) - { - // probably an allocation problem with the CStrings - return nRet; - } - - HINSTANCE hInstExtension = ::LoadLibraryW(strIsapiPath); - if (!hInstExtension) - return IDS_ERR_REGISTERING_EXTENSION; - - PFNRegisterServer pfnRegister = (PFNRegisterServer)GetProcAddress(hInstExtension, _T("DllRegisterServer")); - if (pfnRegister) - { - if (S_OK == pfnRegister()) - nRet = ATLSDPLY_SUCCESS; - } - else - return IDS_ERR_REGISTERING_EXTENSION; - FreeLibrary(hInstExtension); - return nRet; -} - -BOOL LoadStringFromModule(int nID, CString& str) -{ - if (!str.LoadString(nID)) - return FALSE; - return TRUE; -} - -int CheckMinVRootConfigSettings(CDepSettings *pSettings) -{ - if (!pSettings) - return IDS_UNEXPECTED; - - // For now, if we don't have an ISAPI extension file name - // or we don't have any script mappings, we can't create an - // atls vroot - LPCTSTR szExtensionFile = pSettings->GetExtensionFileName(); - if (!szExtensionFile || *szExtensionFile == _T('\0')) - return ATLSDPLY_FAIL; - - CComPtr spList; - HRESULT hr = pSettings->GetAppMappingList(&spList); - if (hr != S_OK && spList) - return ATLSDPLY_FAIL; - - return ATLSDPLY_SUCCESS; -} - -int RuntimeCheck() -{ - CComPtr spAdmBase; - HRESULT hr = spAdmBase.CoCreateInstance(CLSID_MSAdminBase); - if (hr != S_OK) - return ATLSDPLY_FAIL; - return ATLSDPLY_SUCCESS; -} - -// This function checks the length of the files and then does -// a binary check to see if the files are the same. Since we could -// be copying accross different file systems and the timestamp resolution -// even on our own filesystems isn't that great I decided to do a binary -// compare to see if the files are different. It's expensive in terms of -// memory usage but this process should still run pretty fast because there -// shouldn't be that many files to check and the files shouldn't be that big. -// We don't support checking of files of size greater than ULONG_MAX (4 gig). -HRESULT CheckFileDiff(LPCTSTR szSrcPath, LPCTSTR szDestPath) -{ - CAtlFile fSrc, fDest; - HRESULT hr = E_FAIL; - - if (S_OK == fSrc.Create(szSrcPath, GENERIC_READ, 0, OPEN_EXISTING)) - { - if (S_OK == fDest.Create(szDestPath, GENERIC_READ, 0, OPEN_EXISTING)) - { - ULONGLONG lenSrc=0,lenDest=0; - if (S_OK == fSrc.GetSize(lenSrc) && - S_OK == fDest.GetSize(lenDest)) - { - if (lenSrc != lenDest) - hr = S_FALSE; - else - { - if (lenSrc > ULONG_MAX || - lenDest > ULONG_MAX) - { - hr = E_FAIL; - } - else - { - if (lenSrc > ULONG_MAX || - lenDest > ULONG_MAX) - hr = E_FAIL; - else - { - CHeapPtr pBuffSrc; - CHeapPtr pBuffDest; - hr = S_OK; - if (!pBuffSrc.Allocate((DWORD)lenSrc)) - hr = S_FALSE; - if (hr == S_OK && !pBuffDest.Allocate((DWORD)lenDest)) - hr = S_FALSE; - if (hr == S_OK && S_OK != fSrc.Read((LPVOID)(BYTE*)pBuffSrc, (DWORD)lenSrc)) - hr = S_FALSE; - if (hr == S_OK && S_OK != fDest.Read((LPVOID)(BYTE*)pBuffDest, (DWORD)lenDest)) - hr = S_FALSE; - if (hr == S_OK) - hr = memcmp((LPVOID)(BYTE*)pBuffSrc, (LPVOID)(BYTE*)pBuffDest, (DWORD)lenDest) != 0 ? S_FALSE : S_OK; - } - } - - } - } - } - else - hr = S_FALSE; // dest doesn't exist - } - else - { - CString strFormat; - DWORD dwLast = GetLastError(); - if (dwLast == ERROR_FILE_NOT_FOUND && - strFormat.LoadString(IDS_WARN_SOURCE_NOT_EXIST)) - { - CString strMsg; - strMsg.Format(strFormat, szSrcPath); - PrintWarningFormatted(strMsg); - } - else - { - if (strFormat.LoadString(IDS_WARN_SOURCE_ACCESS_ERROR)) - { - CString strMsg; - strMsg.Format(strFormat, dwLast); - PrintWarningFormatted(strMsg); - } - - } - } - return hr; -} - -HRESULT ProcessAccessCheck() -{ - try - { - HANDLE hToken = NULL; - // Current token will impersonate self - if (!ImpersonateSelf(SecurityImpersonation)) - return 0; - - if(!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, FALSE, &hToken)) - { - // per Q118626, we check the process token - // if there is no thread token - if (GetLastError() != ERROR_NO_TOKEN) - return E_FAIL; - else - { - if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) - return E_FAIL; - } - } - - ATLASSERT(hToken); - CAccessToken myToken; - bool bIsMember = false; - myToken.Attach(hToken); - if (myToken.CheckTokenMembership(Sids::Admins(), &bIsMember)) - return bIsMember ? S_OK : S_FALSE; - - } - catch(...){ } - return E_UNEXPECTED; // should have returned something before here. -} - -HRESULT GetWWWRootPath(const CStringW strWebHostName,CStringW& strPath) -{ - CComPtr spEnum; - CComPtr spCont; - CStringW strIISPath=L"IIS://"; - strIISPath+=strWebHostName; - strIISPath+=L"/W3SVC"; - HRESULT hr=ADsGetObject(strIISPath.GetString(), IID_IADsContainer, (void**) &spCont); - CComPtr spDeploySite; - if (SUCCEEDED(hr) && spCont!=NULL) - { - CComPtr spUnk; - hr=spCont->get__NewEnum(&spUnk); - if (SUCCEEDED(hr)) - { - spCont.Release(); - hr=spUnk.QueryInterface(&spEnum); - if (SUCCEEDED(hr)) - { - spUnk.Release(); - CComVariant var; - CComPtr spDisp; - ULONG lFetch = 0; - // Enumerate children of IIS service, searching for absolute path to "Default Web Site" - // or if not found, the first web site. - hr = spEnum->Next(1, &var, &lFetch); - while(SUCCEEDED(hr) && lFetch > 0) - { - spDisp = V_DISPATCH(&var); - CComPtr spADs; - hr=spDisp.QueryInterface(&spADs); - if (SUCCEEDED(hr) && spADs!=NULL) - { - spDisp.Release(); - CComBSTR bstrSchemaClass; - hr=spADs->get_Class(&bstrSchemaClass); - if (SUCCEEDED(hr) && bstrSchemaClass == "IIsWebServer") - { - if (!spDeploySite) - { - spDeploySite=spADs; - } - CComVariant varSiteName; - hr=spADs->Get(L"ServerComment",&varSiteName); - if (SUCCEEDED(hr)) - { - CComBSTR bstrSiteName (V_BSTR(&varSiteName)); - if (bstrSiteName == "Default Web Site") - { - spDeploySite = spADs; - break; - } - } - } - } - var.Clear(); - hr = spEnum->Next(1, &var, &lFetch); - } //End While - } - } - } - hr=E_FAIL; - if (spDeploySite!=NULL) - { - CComBSTR bstrWebsitePath; - spDeploySite->get_ADsPath(&bstrWebsitePath); - bstrWebsitePath+=L"/ROOT"; - CComPtr spSite; - hr=ADsGetObject(bstrWebsitePath, IID_IADs, (void**) &spSite); - if (SUCCEEDED(hr)) - { - CComVariant varPath; - spSite->Get(L"Path",&varPath); - strPath = V_BSTR(&varPath); - strPath += L"\\"; - } - } - return hr; -} - diff --git a/ATL90/source/VCDeploy/api.h b/ATL90/source/VCDeploy/api.h deleted file mode 100644 index c8e6b48..0000000 --- a/ATL90/source/VCDeploy/api.h +++ /dev/null @@ -1,359 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#pragma once - -#include -#include -#include - -#define ATLSDPLY_SUCCESS 0 -#define ATLSDPLY_FAIL 0xFFFFFFFF -#define MAX_VERB_COUNT 10 -#define MAX_VERB_BLOCKS 5 -#define RETURN_ON_UNEXPECTED_HRP(hr, p) if (hr != ATLSDPLY_SUCCESS || p == NULL){PrintError(IDS_UNEXPECTED); return ATLSDPLY_FAIL;} -#define RETURN_ON_UNEXPECTED(hr) if (hr != ATLSDPLY_SUCCESS){PrintError(IDS_UNEXPECTED); return ATLSDPLY_FAIL;} -#define RETURN_ON_UNEXPECTED_P(p) if (p == NULL){PrintError(IDS_UNEXPECTED); return ATLSDPLY_FAIL;} -#define RETURN_ON_FAIL(hr) if (hr != ATLSDPLY_SUCCESS){return hr;} -#define RETURN_ON_FAIL2(hr, msgid) if (hr != ATLSDPLY_SUCCESS){PrintError(msgid); return ATLSDPLY_FAIL;} -#define RETURN_ON_FAIL2_HRP(hr, p, msgid) if (hr != ATLSDPLY_SUCCESS || p == NULL){PrintError(msgid); return ATLSDPLY_FAIL;} -#define RETURN_ON_FAIL2_P(p, msgid) if (p == NULL){PrintError(msgid); return ATLSDPLY_FAIL;} - - -typedef HRESULT (__stdcall *PFNRegisterServer)(void); - -class CDepSettings; -class CADSIHelper; -int PrintError(unsigned int nMsgID); -int PrintError(unsigned int nMsgID, LPCTSTR szExtraInfo); -int PrintErrorWithWinLast32(unsigned int nMsgID); -int PrintErrorFormatted(LPCTSTR szError); -int PrintWarning(unsigned int nMsgID); -int PrintWarning(unsigned int nMsgID, LPCTSTR szExtraInfo); -int PrintWarningWithLastWin32(unsigned int nMsgID); -int PrintWarningFormatted(LPCTSTR szWarning); -int PrintMessage(LPCTSTR szPrefix, unsigned int nMsgID, LPCTSTR szExtraInfo); -int PrintMessage(LPCTSTR szPrefix, LPCTSTR szMsg, LPCTSTR szExtraInfo); -int PrintMessage(unsigned int nMsgID); - -BOOL LoadStringFromModule(int nID, CString& str); -int ProcessSettings(CDepSettings *pSettings); -int CheckVirtualDir(const CComBSTR& bstrHostName, - CADSIHelper *pAdsHelper, - CDepSettings *pSettings); -int CreateVRoot(const CComBSTR& bstrHostName, - CADSIHelper *pAdsHelper, - CDepSettings *pSettings); - -int ConfigureRestrictionList(CADSIHelper *pAdsHelper, - CDepSettings *pSettings, - const wchar_t *wszHost); - -int SetRootAppMappings( CADSIHelper *pAdsHelper, - CDepSettings *pSettings); -int LocalW3svcReset(); - -int CheckVRootExistance(const CComBSTR& bstrHostName, - CADSIHelper *pAdsHelper, - CDepSettings *pSettings); - -int UpdateFileSystem(CDepSettings *pSettings); -int ConfigureVRoot( CADSIHelper *pAdsHelper, - CDepSettings *pSettings, - const wchar_t *wszHost); -int RegisterExtension(CADSIHelper *pAdsHelper, - CDepSettings *pSettings); -int CheckMinVRootConfigSettings(CDepSettings *pSettings); -int RuntimeCheck(); -HRESULT CheckFileDiff(LPCTSTR szSrcPath, LPCTSTR szDestPath);// returns S_OK if last update is the same - // S_FALSE if they aren't otherwise an error - // HRESULT -HRESULT ProcessAccessCheck(); // returns S_OK if process creator is a member of local admin group, S_FALSE - // if not and an error HRESULT if an error occurs. - - -class CADSIHelper -{ -public: - static HRESULT FastLocalRootCheck(LPCTSTR szVRootName) - { - CComPtr spAdmBase; - HRESULT hr = spAdmBase.CoCreateInstance(CLSID_MSAdminBase); - if (FAILED(hr)) - return E_FAIL; - - METADATA_HANDLE hRootHandle = NULL; - CString strKey(_T("/LM/W3SVC/1/ROOT/")); - strKey += szVRootName; - CT2W strPath(strKey); - - hr = spAdmBase->OpenKey(METADATA_MASTER_ROOT_HANDLE, - strPath, - METADATA_PERMISSION_READ, - 20, - &hRootHandle); - if (hr != S_OK) - return hr; - - spAdmBase->CloseKey(hRootHandle); - return hr; - - } - - static HRESULT SaveMetabaseData() - { - CComPtr spAdmBase; - HRESULT hr = spAdmBase.CoCreateInstance(CLSID_MSAdminBase); - if (FAILED(hr)) - return E_FAIL; - - return spAdmBase->SaveData(); - } - - HRESULT Connect(LPCWSTR szPath) - { - CComPtr spmkLocalHost; - CComPtr spbc; - ULONG cEaten = 0; - HRESULT hr = E_FAIL; - CComBSTR bstrApplPath(szPath); - CComPtr spDispAds; - - // try to connect to the iisadmin service - hr = CreateBindCtx(NULL, &spbc); - if (SUCCEEDED(hr)) - { - hr = MkParseDisplayName(spbc, bstrApplPath, &cEaten, &spmkLocalHost); - if (SUCCEEDED(hr)) - { - hr = BindMoniker(spmkLocalHost, 0, IID_IDispatch, (void**)&spDispAds); - } - } - if (hr != S_OK) - return hr; - - m_spAds = spDispAds; - if (!m_spAds) - hr = E_NOINTERFACE; - return hr; - } - - void Disconnect() - { - if (m_spAds) - m_spAds.Release(); - } - - HRESULT CreateApp(short nIso) - { - if (!m_spAds) - return E_UNEXPECTED; - - CComQIPtr spAdmin = m_spAds; - if (!spAdmin) - return E_NOINTERFACE; - - CComVariant vResult; - CComVariant vParam(nIso); - - HRESULT hr = spAdmin.Invoke1(L"AppCreate2", &vParam, &vResult); - if (hr == DISP_E_UNKNOWNNAME) - { - // NT4 no implement appcreate2, must try appcreate - vResult.Clear(); - vParam.vt = VT_BOOL; - vParam.boolVal = (nIso == 0 ? VARIANT_TRUE : VARIANT_FALSE); - hr = spAdmin.Invoke1(L"AppCreate", &vParam, &vResult); - } - return hr; - } - - HRESULT CreateAppOnly(LPCWSTR szRootName, short nIsolation, IADsContainer **ppAds) - { - if (!m_spAds) - return E_UNEXPECTED; - - HRESULT hr = E_FAIL; - CComPtr spDispNewContainer; - hr = m_spAds->Create(CComBSTR(L"IIsWebDirectory"), - CComBSTR(szRootName), - &spDispNewContainer); - if (hr != S_OK) - return hr; - - if (ppAds) - hr = spDispNewContainer->QueryInterface(__uuidof(IADsContainer), (void**)ppAds); - - if (m_spAds) - m_spAds.Release(); - - hr = spDispNewContainer->QueryInterface(__uuidof(IADsContainer), (void**)&m_spAds); - if (hr != S_OK) - return hr; - - return CreateApp(nIsolation); - } - - HRESULT CreateVRoot(LPCWSTR szRootName, short nIsolation, IADsContainer **ppAds) - { - if (!m_spAds) - return E_UNEXPECTED; - - HRESULT hr = E_FAIL; - CComPtr spDispNewContainer; - hr = m_spAds->Create(CComBSTR(L"IIsWebVirtualDir"), - CComBSTR(szRootName), - &spDispNewContainer); - if (hr != S_OK) - return hr; - - if (ppAds) - hr = spDispNewContainer->QueryInterface(__uuidof(IADsContainer), (void**)ppAds); - - if (m_spAds) - m_spAds.Release(); - - hr = spDispNewContainer->QueryInterface(__uuidof(IADsContainer), (void**)&m_spAds); - if (hr != S_OK) - return hr; - - return CreateApp(nIsolation); - } - - HRESULT EnableApp() - { - if (!m_spAds) - return E_UNEXPECTED; - CComQIPtr spDispContainer = m_spAds; - if (!spDispContainer) - return E_NOINTERFACE; - CComVariant vResult; - return spDispContainer.Invoke0(L"AppEnable",&vResult); - } - - HRESULT SetProperty(LPCWSTR szPropName, - const VARIANT& vPropValue) - { - if (!m_spAds) - return E_UNEXPECTED; - CComQIPtr spAds = m_spAds; - if (!spAds) - return E_NOINTERFACE; - - return spAds->Put(CComBSTR(szPropName), vPropValue); - } - - HRESULT GetProperty(LPCWSTR szPropName, - VARIANT& vPropValue) - { - if (!m_spAds) - return E_UNEXPECTED; - - CComQIPtr spAds = m_spAds; - if (!spAds) - return E_NOINTERFACE; - CComBSTR bstrName(szPropName); - CComVariant vValue; - return spAds->GetEx(bstrName, &vPropValue); - } - - HRESULT GetPropertySingle(LPCWSTR szPropName, - VARIANT& vPropValue) - { - if (!m_spAds) - return E_UNEXPECTED; - - CComQIPtr spAds = m_spAds; - if (!spAds) - return E_NOINTERFACE; - CComBSTR bstrName(szPropName); - CComVariant vValue; - return spAds->Get(bstrName, &vPropValue); - } - - HRESULT SetInfo() - { - if (!m_spAds) - return E_UNEXPECTED; - CComQIPtr spAds = m_spAds; - if (!spAds) - return E_NOINTERFACE; - return spAds->SetInfo(); - } - - HRESULT DeleteVRoot(LPCWSTR wszRoot) - { - if (!m_spAds) - return E_UNEXPECTED; - - CComQIPtr spAdmin = m_spAds; - if (!spAdmin) - return E_NOINTERFACE; - - CComVariant vResult; - CComVariant vRootName(wszRoot); - CComVariant vVirtDir(L"IISWebVirtualDir"); - return spAdmin.Invoke2(L"Delete", &vVirtDir, &vRootName, &vResult); - - } -#ifdef _DEBUG - void AssertValid() - { - ATLASSERT(m_spAds != NULL); - } -#endif -protected: - CComQIPtr m_spAds; -}; - -class CArgs -{ -public: - CArgs() - { - m_bNoLogo = false; - m_bShowUsage = false; - } - - bool Parse(int argc, char* argv[]) - { - if (argc < 2) - { - m_bShowUsage = true; - return true; - } - for (int i=1;i( lParam ); - *plangid = langid; - - return TRUE; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: GetUserDefaultUILanguage for downlevel platforms (Win9x, NT4). -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HRESULT GetUserDefaultUILanguageLegacyCompat(LANGID* pLangid) -{ - HRESULT hr=E_FAIL; - if (pLangid == NULL) { return E_POINTER; } - PFNGETUSERDEFAULTUILANGUAGE pfnGetUserDefaultUILanguage; - HINSTANCE hKernel32 = ::GetModuleHandle(_T("kernel32.dll")); - pfnGetUserDefaultUILanguage = (PFNGETUSERDEFAULTUILANGUAGE)::GetProcAddress(hKernel32, "GetUserDefaultUILanguage"); - if(pfnGetUserDefaultUILanguage != NULL) - { - *pLangid = pfnGetUserDefaultUILanguage(); - hr = S_OK; - } - - return hr; -} - -////////////////////////////////////////////////////////////////////////// -//Purpose: Searches for a resource dll in sub directories using a search order -// based on szPath - a directory to search res dll below. -// see example at . -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success (found dll) - S_OK , Failure - E_FAIL or E_UNEXPECTED -////////////////////////////////////////////////////////////////////////// -HRESULT LoadUILibrary(LPCTSTR szPath, LPCTSTR szDllName, DWORD dwExFlags, - HINSTANCE *phinstOut, LPTSTR szFullPathOut,size_t sizeInCharacters, - LCID *plcidOut) -{ - TCHAR szPathTemp[_MAX_PATH + 1] = _T(""); - HRESULT hr = E_FAIL; - LCID lcidFound = (LCID)-1; - size_t pathEnd; - - // Gotta have this stuff! - if (szPath==NULL || *szPath == '\0') { return E_POINTER; } - if (szDllName==NULL || *szDllName == '\0') { return E_POINTER; } - - if (!szPath || !*szPath || !szDllName || !*szDllName) - return E_INVALIDARG; - - if (phinstOut != NULL) - { - *phinstOut = NULL; - } - - szPathTemp[_MAX_PATH-1] = L'\0'; - - // Add \ to the end if necessary - _tcsncpy_s(szPathTemp,_countof(szPathTemp), szPath, _MAX_PATH-1); - if (szPathTemp[_TCSNLEN(szPathTemp, _MAX_PATH-1) - 1] != L'\\') - { - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - } - - // Check if given path even exists - if (GetFileAttributes(szPathTemp) == 0xFFFFFFFF) - { - return E_FAIL; - } - - pathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1); - - { - LANGID langid=0; - if (FAILED(GetUserDefaultUILanguageLegacyCompat(&langid))) - { - return E_UNEXPECTED; - } - const LCID lcidUser = MAKELCID(langid, SORT_DEFAULT); - - LCID rglcid[3]; - rglcid[0] = lcidUser; - rglcid[1] = MAKELCID(MAKELANGID(PRIMARYLANGID(lcidUser), SUBLANG_DEFAULT), SORTIDFROMLCID(lcidUser)); - rglcid[2] = 0x409; - for (int i = 0; i < _countof(rglcid); i++) - { - TCHAR szNumBuf[10]; - - // Check if it's the same as any LCID already checked, - // which is very possible - int n = 0; - for (n = 0; n < i; n++) - { - if (rglcid[n] == rglcid[i]) - break; - } - - if (n < i) - { - continue; - } - - szPathTemp[pathEnd] = L'\0'; - _itot_s(rglcid[i], szNumBuf,_countof(szNumBuf), 10); - _tcsncat_s(szPathTemp, _countof(szPathTemp),szNumBuf , PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - lcidFound = rglcid[i]; - - hr = S_OK; - goto Done; - } - } - } - - // None of the default choices exists, so now look for the dll in a folder below - //the given path (szPath) - { - WIN32_FIND_DATA wfdw; - HANDLE hDirs; - - szPathTemp[pathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("*.*"), PATHLEFT(szPathTemp)); - - hDirs = FindFirstFile(szPathTemp, &wfdw); - pathEnd = _TCSNLEN(szPathTemp, _MAX_PATH-1)-3; - if (hDirs != INVALID_HANDLE_VALUE) - { - while (FindNextFile(hDirs, &wfdw)) - { - // We are only interested in directories, since at this level, that should - // be the only thing in this directory, i.e, LCID sub dirs - if (wfdw.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - // Skip current and previous dirs, "." and ".." - if (!_tcscmp(wfdw.cFileName, _T(".")) || !_tcscmp(wfdw.cFileName, _T(".."))) - continue; - - // Does this dir have a copy of the dll? - szPathTemp[pathEnd] = L'\0'; - _tcsncat_s(szPathTemp,_countof(szPathTemp), wfdw.cFileName, PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), _T("\\"), PATHLEFT(szPathTemp)); - _tcsncat_s(szPathTemp,_countof(szPathTemp), szDllName, PATHLEFT(szPathTemp)); - - if (GetFileAttributes(szPathTemp) != 0xFFFFFFFF) - { - // Got it! - lcidFound = (LCID)_tstol(wfdw.cFileName); - - hr = S_OK; - break; - } - } - } - - FindClose(hDirs); - } - } - -Done: - if (SUCCEEDED(hr)) - { - // Set the default LCID - if (plcidOut) - { - if (lcidFound == (LCID)-1) - { - return E_UNEXPECTED; - } - *plcidOut = lcidFound; - } - - // Finally, attempt to load the library - // Beware! A dll loaded with LOAD_LIBRARY_AS_DATAFILE won't - // let you use LoadIcon and things like that (only general calls like - // FindResource and LoadResource). - if (phinstOut != NULL) - { - *phinstOut = LoadLibraryEx(szPathTemp, NULL, dwExFlags); - hr = (*phinstOut) ? S_OK : E_FAIL; - } - if ( szFullPathOut ) - { - _tcsncpy_s(szFullPathOut,sizeInCharacters, szPathTemp, _MAX_PATH-1); - } - } - - return hr; -} -////////////////////////////////////////////////////////////////////////// -//Purpose: Iterates env("PATH") directories to try to find (using LoadUILibrary) -// resource dll a directory below PATH dirs. Ex: if PATH="c:\bin;d:\win" -// and szDllName="ToolUI.dll", then the first of c:\bin\1033\ToolUI.dll -// and d:\win\SomeFolder\ToolUI.dll will be loaded. -// See LoadLocResDll doc (below) for example. -//Input: szDllName - the string resource dll name to search. Ex: ToolUI.dll -//Output: TCHAR *szPathOut - filled with absolute path to dll, if found. -// size_t sizeInCharacters - buffer size in characters -//Returns: Success - HMODULE of found dll, Failure - NULL -////////////////////////////////////////////////////////////////////////// -HMODULE LoadSearchPath(LPCTSTR szDllName,TCHAR *szPathOut, size_t sizeInCharacters) -{ - TCHAR * szEnvPATH = NULL; - TCHAR * szEnvPATHBuff = NULL; - TCHAR szPath[_MAX_PATH+1]; - TCHAR * ptry; - int pathlen; - int nPathIndex = 0; - HMODULE hmod = NULL; - if (DuplicateEnvString(&szEnvPATHBuff,NULL,_T("PATH"))==0 && (szEnvPATH=szEnvPATHBuff) != NULL) - { - while (*szEnvPATH) - { - /* skip leading white space and nop semicolons */ - for (; *szEnvPATH == L' ' || *szEnvPATH == L';'; ++szEnvPATH) - {} /* NOTHING */ - - if (*szEnvPATH == L'\0') - { - break; - } - - ++nPathIndex; - - /* copy this chunk of the path into our trypath */ - pathlen = 0; - for (ptry = szPath; *szEnvPATH != L'\0' && *szEnvPATH != L';'; ++szEnvPATH) - { - ++pathlen; - if (pathlen < _MAX_PATH) - { - *ptry++ = *szEnvPATH; - } else - { - break; - } - } - *ptry = L'\0'; - - if (pathlen == 0 || pathlen >= _MAX_PATH) - { - continue; - } - - LoadUILibrary(szPath, szDllName, LOAD_LIBRARY_AS_DATAFILE, - &hmod, szPathOut,sizeInCharacters, NULL); - if ( hmod ) - { - break; - } - } - } - if (szEnvPATHBuff!=NULL) - { - free(szEnvPATHBuff); - } - return hmod; -} -//Example: Say PATH="c:\bin;d:\win", resource dll name (szDllName) is "ToolUI.dll", -// user locale is 936, and the .exe calling LoadLocResDll is c:\MyTools\Tool.exe -// Search order: -// a) c:\MyTools\936\ToolUI.dll (exe path + user default UI lang) -// b) c:\MyTools\1033 (same with eng) -// c) c:\MyTools\*\ToolUI.dll (where * is sub folder). -// d) c:\bin\936\ToolUI.dll (first in path) -// e) c:\bin\1033\ToolUI.dll (first in path + eng) -// f) c:\bin\*\ToolUI.dll -// g) d:\win\936\ToolUI.dll (second in path) -// h) d:\win\1033\ToolUI.dll (second in path + eng) -// i) d:\win\*\ToolUI.dll (second in path + eng) -// j) if bExeDefaultModule and not found, return exe HINSTANCE. -// Note: The primary lang (without the sublang) is tested after the user ui lang. -// Main Input: szDllName - the name of the resource dll ui.dll. Ex: vcdeployUI.dll -// Main Output: HMODULE of resource dll or NULL - if not found (see bExeDefaultModule). -HMODULE LoadLocResDll(LPCTSTR szDllName,BOOL bExeDefaultModule=TRUE,DWORD dwExFlags=LOAD_LIBRARY_AS_DATAFILE,LPTSTR pszPathOut = NULL,size_t sizeInCharacters = 0 ) -{ - HMODULE hmod; - TCHAR driverpath[_MAX_PATH + 1], exepath[_MAX_PATH + 1]; - LPTSTR p; - - GetModuleFileName(GetModuleHandle(NULL), driverpath, _MAX_PATH); - // find path of tool - p = driverpath + _TCSNLEN(driverpath, _MAX_PATH-1)-1; - while ( *p != L'\\' && p != driverpath) - { - p--; - } - *p = '\0'; - - LoadUILibrary(driverpath, szDllName, dwExFlags, - &hmod, exepath,_countof(exepath), NULL); - - if ( hmod == NULL ) - { - // search PATH\ for ui.dll - hmod = LoadSearchPath(szDllName,exepath,_countof(exepath)); - } - - if ( hmod && pszPathOut ) - { - _tcsncpy_s(pszPathOut,sizeInCharacters, exepath, _MAX_PATH-1); - } - //Not found dll, return the exe HINSTANCE as a fallback. - if (hmod == NULL && bExeDefaultModule) - { - hmod=GetModuleHandle(NULL); - } - return hmod; -} -//End loc routines -//////////////////////////////////////////////////////////////////// -const TCHAR* szVcdeployUIDll=_T("vcdeployUI.dll"); - - -#ifdef _UNICODE -int wmain(int argc, wchar_t* argv[]) -#else -int main(int argc, char* argv[]) -#endif -{ - HINSTANCE hInst=LoadLocResDll(szVcdeployUIDll); - _AtlBaseModule.SetResourceInstance(hInst); - try - { - CArgs argsParser; - if (!argsParser.Parse(argc, argv)) - { - PrintError(IDS_UNEXPECTED); - return 1; - } - - if (!argsParser.m_bNoLogo) - PrintMessage(IDS_BANNER); - - if (argsParser.m_bShowUsage) - { - PrintMessage(IDS_USAGE); - return 0; - } - - HRESULT hr = E_FAIL; - CDepSettings AppSettings; - int nRet = 0; - - hr = ProcessAccessCheck(); - if (hr == S_FALSE) - { - PrintError(IDS_MUSTBEADMIN); - return 0; - } - else if (hr != S_OK) - { - CString strError; - if (strError.LoadString(IDS_CANTGETSECURITY)) - { - CString strMsg; - strMsg.Format(strError, GetLastError()); - PrintErrorFormatted(strMsg); - } - return 0; - } - - hr = CoInitialize(NULL); - if (FAILED(hr)) - { - PrintError(IDS_COMINIT_FAILED); - return 1; - } - - if (ATLSDPLY_SUCCESS != RuntimeCheck()) - { - PrintError(IDS_ERR_RUNTIME); - return 1; - } - - nRet = AppSettings.Load(argsParser.m_strSettingsFile); - if (nRet != ATLSDPLY_SUCCESS) - { - PrintError(nRet); - return 1; - } - - nRet = ProcessSettings(&AppSettings); - if (nRet != ATLSDPLY_SUCCESS) - { - return 1; - } - return 0; - } - catch(...) - { - PrintError(IDS_UNEXPECTED); - return 1; - } -} diff --git a/ATL90/source/VCDeploy/atlsdply.rc b/ATL90/source/VCDeploy/atlsdply.rc deleted file mode 100644 index 5a3daed..0000000 --- a/ATL90/source/VCDeploy/atlsdply.rc +++ /dev/null @@ -1,171 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END -#else // !APSTUDIO_INVOKED - -#define VER_FILETYPE VFT_APP - -#define VER_FILEDESCRIPTION_STR "Microsoft \256 Visual C++ Web Deployment Tool" - -#define VER_INTERNALNAME_STR "VCDEPLOY" - -#define VER_ORIGINALFILENAME_STR "VCDEPLOY.EXE" - -#define VER_COPYRIGHTSTARTYEAR_STR "1999" - -#include "ver_.rc" - -#endif // APSTUDIO_INVOKED - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDS_USAGE "VCDEPLOY.EXE [options] settings_file\nOptions:\n/?\tShow Usage\n/nologo\tSuppress startup banner" - IDS_BANNER "Visual C++ Web Deployment Tool\nCopyright (C) Microsoft Corporation. All rights reserved.\n" - IDS_COMINIT_FAILED "VCD0001: Failed to initialize COM." - IDS_UPDATEIRL "ISAPI extension %s was added to the enabled ISAPIs on the ISAPI Restriction List for this machine.\n" - IDS_UNEXPECTED "VCD0005: An unexpected error occurred." - IDS_ERR_FAILEDTOCREATEDOM - "VCD0006: Failed to load MSXML. Make sure MSXML is installed on this machine." - IDS_ERR_FAILEDTOLOAD_SETTINGS_XML - "VCD0007: MSXML could not load the specified settings file. Check that the XML syntax in the settings file is correct." - IDS_ERR_BADROOTNODE "VCD0008: The deployment settings are corrupt." - IDS_ERR_WEBHOSTNAME "VCD0009: The web server name was not specified. This information is required." - IDS_ERR_NOVIRTDIR "VCD0010: Virtual Directory Name was not specified. This information is required." -END - -STRINGTABLE -BEGIN - IDS_ERR_BADVIRTDIRNODE "VCD0011: Virtual Directory Name was empty. This information is required." - IDS_ERR_BADREGISTERISAPI - "VCD0012: Register Output was empty. Must be the string 'true' or 'false'." - IDS_ERR_INVALIDREGISTERISAPI - "VCD0013: Register Output was invalid. Must be the string 'true' or 'false'." - IDS_ERR_BADUNLOADBEFORECOPY - "VCD0014: Unload Before Copy was empty. Must be the string 'true' or 'false'." - IDS_ERR_INVALIDUNLOADBEFORECOPY - "VCD0015: Unload Before Copy was invalid. Must be the string 'true' or 'false'." - IDS_ERR_BADAPPISOLATION "VCD0016: Application Protection was empty. Must be 0, 1, or 2." - IDS_ERR_INVALIDAPPISOLATION - "VCD0017: Application Protection was invalid. Must be 0, 1, or 2." - IDS_ERR_NOVIRTDIRFSPATH "VCD0018: Virtual Directory Path was not specified. This information is required." - IDS_ERR_BADVIRTDIRSFPATHNODE - "VCD0019: Virtual Directory Path was empty. This information is required." - IDS_ERR_CONNECTADSFAILED - "VCD0020: Failed to connect to the IIS admin objects. Make sure that IIS is on the local and target machines." - IDS_ERR_CREATEVROOTFAILED - "VCD0021: Failed to create new virtual directory in the IIS metabase." - IDS_ERR_SETADSPROPERTY "VCD0022: Failed to set one or more metabase properties for the specified virtual directory." - IDS_FILEEXTATTR_NOTFOUND - "VCD0023: Application Mappings did not include a file extension." - IDS_FILEEXTATTR_INVALID "VCD0024: Failed to obtain file extension from Application Mappings." - IDS_ERR_TOOMANYVERBS "VCD0025: Too many verbs listed for Application Mappings." - ATLS_ERR_TOOMANYVERBBLOCKS "VCD0026: Too many Application Mappings." -END - -STRINGTABLE -BEGIN - IDS_ERR_NOSTOPW3SVC "VCD0028: The W3SVC failed to stop in a timely manner. You may want to run IISRESET.exe on the target machine." - IDS_ERR_W3SVCFAILEDTOSTART - "VCD0029: The W3SVC failed to restart in a timely manner. You may want to run IISRESET.exe on the target machine." - IDS_FAILEDOPENSCM "VCD0030: Failed to open the service control manager. You may not have privileges to control services on the target machine." - IDS_FAILEDOPENSVC "VCD0031: Failed to open the W3SVC. You may not have privileges to control services on the target machine." - IDS_FAILEDSTOPCOMMAND "VCD0032: Failed to send stop command to W3SVC. The service might already be stopped or you might not have privileges to control services on the target machine." - IDS_FAILEDQUERYSTATUS "VCD0033: Failed to query for W3SVC status. The service might not be running or you might not have privileges to query service status on the target machine." - IDS_FAILEDSTARTSVC "VCD0034: Failed to send the W3SVC a start command. The service might already be started, or, you might not have privileges to start services on the target machine." - IDS_ERR_CREATING_DIRECTORY - "VCD0035: Failed to create the file system directory for the virtual directory. " - IDS_ERR_CREATING_DIRECTORY_RELATIVE - "VCD0036: Failed to create the file system directory for a directory relative to the virtual directory." - IDS_WARN_COPYING_FILE "VCD0037: Failed to copy a file to the virtual directory." - IDS_ERR_REGISTERING_EXTENSION - "VCD0038: An error occurred registering the ISAPI extension. Make sure the extension is located at the correct path in the virtual directory." - IDS_ERR_REGISTERING_NOVDIRPATH - "VCD0039: Tried to register an ISAPI extension but no virtual directory path was specified." - IDS_ERR_REGISTERING_NOEXTFILE - "VCD0040: Register Output is only valid for ISAPI extensions. Registration skipped." - IDS_ERR_RUNTIME "VCD0041: IIS must be installed on this machine in order for this program to function correctly." - IDS_ERR_OUTOFMEM "VCD0042: An out of memory exception was thrown." -END - -STRINGTABLE -BEGIN - IDS_WARN_SOURCE_NOT_EXIST "VCD0043: The source file %s does not exist." - IDS_WARN_SOURCE_ACCESS_ERROR - "VCD0044: Error accessing source file. Error number: %d." - IDS_COPYFILE_MESSAGE "Copied file from %s to %s\n" - IDS_FILES_IDENTICAL "Source and destination files were identical. File not copied (%s)\n" - IDS_WARNING_FAILED_METABSESAVE - "VCD0045: Failed to save IIS metabase data. Error number %d." - IDS_WARNING_EMPTY_HOST_TAG "VCD0046: The web server name was empty." - IDS_MUSTBEADMIN "VCD0047: This program requires the caller to be a member of the local Administrators group.\n" - IDS_CANTGETSECURITY "VCD0048: An error occurred trying to determine the security context of the user creating this process. Error number: %d.\n" - IDS_ERR_BADDONOTCREATEVIRTDIR - "VCD0049: DoNotCreateVirtDir was empty. Must be the string 'true' or 'false'." - IDS_ERR_INVALIDDONOTCREATEVIRTDIR - "VCD0050: DoNotCreateVirtDir was invalid. Must be the string 'true' or 'false'." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/ATL90/source/VCDeploy/depsettings.cpp b/ATL90/source/VCDeploy/depsettings.cpp deleted file mode 100644 index 0417f3e..0000000 --- a/ATL90/source/VCDeploy/depsettings.cpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#include "stdafx.h" -#include "resource.h" -#include "depsettings.h" -#include "errno.h" -#include "api.h" -#include - -CDepSettings::CDepSettings() -{ - m_bRegIsapi = false; - m_bUnloadBeforeCopy = false; - m_bDoNotCreateVirtDir = false; - m_nAppIsolation = 0; - m_nIISMajorVer = -1; -} - -HRESULT CDepSettings::GetHostList(IXMLDOMNodeList **ppList) -{ - if (!ppList) - return E_INVALIDARG; - *ppList = NULL; - if (m_spHostList) - return m_spHostList.CopyTo(ppList); - return E_FAIL; -} - -HRESULT CDepSettings::GetAppMappingList(IXMLDOMNodeList **ppList) -{ - if (!ppList) - return E_INVALIDARG; - *ppList = NULL; - if (m_spAppMappings) - return m_spAppMappings.CopyTo(ppList); - return S_OK; -} - -HRESULT CDepSettings::GetFileGroups(IXMLDOMNodeList **ppList) -{ - if (!ppList) - return E_INVALIDARG; - *ppList = NULL; - if (m_spAppFileGroups) - return m_spAppFileGroups.CopyTo(ppList); - return E_FAIL; -} - -unsigned int CDepSettings::Load(LPCSTR szSettingsPath) -{ - HRESULT hr = E_FAIL; - - if (!szSettingsPath) - return IDS_UNEXPECTED; - - // Create the DOM - CComPtr spDOMDoc; - CComPtr spRoot; - CComPtr spResultNode; - - hr = spDOMDoc.CoCreateInstance(L"Microsoft.XMLDOM"); - if (FAILED(hr)) - return IDS_ERR_FAILEDTOCREATEDOM; - - hr = spDOMDoc->put_async(VARIANT_FALSE); - if (FAILED(hr)) - return IDS_UNEXPECTED; - - // Load the document - CComVariant varDocPath(szSettingsPath); - VARIANT_BOOL vResult = VARIANT_FALSE; - hr = spDOMDoc->load(varDocPath, &vResult); - if (FAILED(hr) || vResult == VARIANT_FALSE) - return IDS_ERR_FAILEDTOLOAD_SETTINGS_XML; - - - // find the root element - CComBSTR bstrSearch(L"ATLSINSTSETTINGS"); - hr = spDOMDoc->selectSingleNode(bstrSearch, &spRoot); - if (FAILED(hr) || !spRoot) - return IDS_ERR_BADROOTNODE; - - CStringW strWebHostNameW; - // load the list of web hosts - bstrSearch = L"WEBHOSTNAME"; - hr = spRoot->selectNodes(bstrSearch, &m_spHostList); - if (FAILED(hr) || !m_spHostList) - return IDS_ERR_WEBHOSTNAME; - else - { - long len = 0; - m_spHostList->get_length(&len); - if (len == 0) - return IDS_ERR_WEBHOSTNAME; - CComPtr spFirstWebHost; - hr = m_spHostList->get_item(0,&spFirstWebHost); - if (SUCCEEDED(hr)) - { - hr = spFirstWebHost->get_text(&bstrSearch); - strWebHostNameW=bstrSearch; - } - } - - // load the virtual directory name on the host - bstrSearch = L"VIRTDIRNAME"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (FAILED(hr) || !spResultNode) - return IDS_ERR_NOVIRTDIR; - - hr = spResultNode->get_text(&bstrSearch); - if (FAILED(hr) || *bstrSearch == L'\0') - return IDS_ERR_BADVIRTDIRNODE; - m_strVirtDirName = bstrSearch; - - // load the virtual directory file system path - spResultNode.Release(); - bstrSearch = L"VIRTDIRFSPATH"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (FAILED(hr) || !spResultNode) - return IDS_ERR_NOVIRTDIRFSPATH; - - spResultNode->get_text(&bstrSearch); - if (FAILED(hr) || *bstrSearch == L'\0') - return IDS_ERR_BADVIRTDIRSFPATHNODE; - - m_strVirtDirFSPath = bstrSearch; - if (!AtlIsFullPathT(m_strVirtDirFSPath.GetString())) - { - CStringW strPath; - hr=GetWWWRootPath(strWebHostNameW,strPath); - if (FAILED(hr) || strPath.IsEmpty() ) - { - return IDS_ERR_BADVIRTDIRSFPATHNODE; - } - m_strVirtDirFSPath=strPath; - m_strVirtDirFSPath+=m_strVirtDirName; - } - - // load the DoNotCreateVirtDir value - spResultNode.Release(); - bstrSearch = L"DONOTCREATEVIRTDIR"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (hr == S_OK && spResultNode) - { - hr = spResultNode->get_text(&bstrSearch); - if (FAILED(hr)) - PrintWarning(IDS_ERR_BADDONOTCREATEVIRTDIR); - else - { - if (!_wcsicmp(bstrSearch, L"false")) - m_bDoNotCreateVirtDir = false; - else if (!_wcsicmp(bstrSearch, L"true")) - m_bDoNotCreateVirtDir = true; - else - { - PrintWarning(IDS_ERR_INVALIDDONOTCREATEVIRTDIR); - } - } - } - - // load the registerisapi value - spResultNode.Release(); - bstrSearch = L"REGISTERISAPI"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (hr == S_OK && spResultNode) - { - hr = spResultNode->get_text(&bstrSearch); - if (FAILED(hr)) - PrintWarning(IDS_ERR_BADREGISTERISAPI); - else - { - if (!_wcsicmp(bstrSearch, L"false")) - m_bRegIsapi = false; - else if (!_wcsicmp(bstrSearch, L"true")) - m_bRegIsapi = true; - else - { - PrintWarning(IDS_ERR_INVALIDREGISTERISAPI); - } - } - } - - // load the unload before copy value - spResultNode.Release(); - bstrSearch = L"UNLOADBEFORECOPY"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (hr == S_OK && spResultNode) - { - hr = spResultNode->get_text(&bstrSearch); - if (FAILED(hr)) - PrintWarning(IDS_ERR_BADUNLOADBEFORECOPY); - else - { - if (!_wcsicmp(bstrSearch, L"false")) - m_bUnloadBeforeCopy = false; - else if (!_wcsicmp(bstrSearch, L"true")) - m_bUnloadBeforeCopy = true; - else - PrintWarning(IDS_ERR_INVALIDUNLOADBEFORECOPY); - } - } - - // load the app isolation value - spResultNode.Release(); - bstrSearch = L"APPISOLATION"; - hr = spRoot->selectSingleNode(bstrSearch, &spResultNode); - if (hr == S_OK && spResultNode) - { - hr = spResultNode->get_text(&bstrSearch); - if (FAILED(hr)) - PrintWarning(IDS_ERR_BADAPPISOLATION); - else - { - wchar_t *szEnd = NULL; - short nIso = (short)wcstol(bstrSearch, &szEnd, 10); - if (errno == ERANGE || nIso < 0 || nIso > 2) - { - PrintWarning(IDS_ERR_INVALIDAPPISOLATION); - } - else - { - switch(nIso) - { - case 0: - m_nAppIsolation = nIso; - break; - case 1: - m_nAppIsolation = 2; - break; - case 2: - m_nAppIsolation = 1; - break; - } - } - } - } - - // load the list of APPMAPPING nodes - bstrSearch = L"APPMAPPING"; - hr = spRoot->selectNodes(bstrSearch, &m_spAppMappings); - - // load list of APPFILEGROUP nodes - bstrSearch = L"APPFILEGROUP"; - hr = spRoot->selectNodes(bstrSearch, &m_spAppFileGroups); - - // see if there is a node for the extension. There better be only one because - // we will only select the first one we run into. - CComPtr spIsapiNode; - hr = spRoot->selectSingleNode(CComBSTR(L"//APPFILENAME[@type=\"extension\"] "), &spIsapiNode); - if (hr == S_OK && spIsapiNode) - { - // select the node - CComPtr spDestNode; - hr = spIsapiNode->selectSingleNode(CComBSTR(L"DEST"), &spDestNode); - if (hr == S_OK && spDestNode) - { - CComBSTR bstrPath; - hr = spDestNode->get_text(&bstrPath); - if (hr == S_OK && bstrPath[0] != L'\0') - { - m_strExtFileName = bstrPath; - } - } - } - - GetIISMajorVer(); -#ifdef _DEBUG - // dump the settings - printf("loaded settings:\n"); - printf("Virtual directory name: %s\n", m_strVirtDirName); - printf("Virtual directory fs path: %s\n", m_strVirtDirFSPath); - printf("Virtual directory isapi extension name: %s\n",m_strExtFileName); - printf("Do not create virtual directory: %s\n", m_bDoNotCreateVirtDir ? "true" : "false"); - printf("Register ISAPI: %s\n", m_bRegIsapi ? "true" : "false"); - printf("Unload before copy: %s\n", m_bUnloadBeforeCopy ? "true" : "false"); - printf("App Isolation: %d\n", m_nAppIsolation); - long lCount = 0; - - if (m_spHostList) - { - m_spHostList->get_length(&lCount); - printf("Host count: %d\n", lCount); - } - else - { - printf("no hosts encountered\n"); - } - - if (m_spAppMappings) - { - lCount = 0; - m_spAppMappings->get_length(&lCount); - printf("App Mapping count: %d\n", lCount); - } - else - { - printf("no app mappings\n"); - } - - if (m_spAppFileGroups) - { - lCount = 0; - m_spAppFileGroups->get_length(&lCount); - printf("App file group count: %d\n", lCount); - } -#endif - return S_OK; -} - -short CDepSettings::GetIISMajorVer() -{ - if (m_nIISMajorVer != -1) - return m_nIISMajorVer; - - CRegKey verKey; - if (ERROR_SUCCESS == verKey.Open(HKEY_LOCAL_MACHINE, - _T("SOFTWARE\\Microsoft\\INetStp"), - KEY_READ)) - { - DWORD dwValue = 0xFFFFFFFF; - if (ERROR_SUCCESS == verKey.QueryDWORDValue(_T("MajorVersion"), dwValue)) - { - m_nIISMajorVer = (short)dwValue; - } - } - return m_nIISMajorVer; -} \ No newline at end of file diff --git a/ATL90/source/VCDeploy/depsettings.h b/ATL90/source/VCDeploy/depsettings.h deleted file mode 100644 index 0e00772..0000000 --- a/ATL90/source/VCDeploy/depsettings.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#pragma once - -#define INVALID_SETTING -1 - -// CDepSettings holds all of our deployment settings -class CDepSettings -{ -public: - CDepSettings(); - unsigned int Load(LPCSTR szSettingsPath); - HRESULT GetHostList(IXMLDOMNodeList **ppList); - HRESULT GetAppMappingList(IXMLDOMNodeList **ppList); - HRESULT GetFileGroups(IXMLDOMNodeList **ppList); - LPCTSTR GetVirtDirName(){ return m_strVirtDirName; } - LPCTSTR GetVirtDirFSPath(){ return m_strVirtDirFSPath; } - LPCTSTR GetExtensionFileName(){ return m_strExtFileName; } - bool GetRegIsapi(){ return m_bRegIsapi; } - bool GetUnloadBeforeCopy(){ return m_bUnloadBeforeCopy; } - bool SkipVirtDirCreation(){ return m_bDoNotCreateVirtDir; } - int GetAppIsolation(){ return m_nAppIsolation == INVALID_SETTING ? 0 : m_nAppIsolation; } - short GetIISMajorVer(); -private: - CComPtr m_spHostList; - CComPtr m_spAppMappings; - CComPtr m_spAppFileGroups; - CString m_strVirtDirName; - CString m_strVirtDirFSPath; - CString m_strExtFileName; - bool m_bRegIsapi; - bool m_bDoNotCreateVirtDir; - bool m_bUnloadBeforeCopy; - short m_nAppIsolation; - short m_nIISMajorVer; - -}; \ No newline at end of file diff --git a/ATL90/source/VCDeploy/iiisext.h b/ATL90/source/VCDeploy/iiisext.h deleted file mode 100644 index 6003901..0000000 --- a/ATL90/source/VCDeploy/iiisext.h +++ /dev/null @@ -1,3628 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ -#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */ -#pragma warning( disable: 4211 ) /* redefine extent to static */ - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 6.00.0358 */ -/* at Mon May 06 20:13:17 2002 - */ -/* Compiler settings for iisext.odl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __iiisext_h__ -#define __iiisext_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IISApplicationPool_FWD_DEFINED__ -#define __IISApplicationPool_FWD_DEFINED__ -typedef interface IISApplicationPool IISApplicationPool; -#endif /* __IISApplicationPool_FWD_DEFINED__ */ - - -#ifndef __IISApplicationPools_FWD_DEFINED__ -#define __IISApplicationPools_FWD_DEFINED__ -typedef interface IISApplicationPools IISApplicationPools; -#endif /* __IISApplicationPools_FWD_DEFINED__ */ - - -#ifndef __IISWebService_FWD_DEFINED__ -#define __IISWebService_FWD_DEFINED__ -typedef interface IISWebService IISWebService; -#endif /* __IISWebService_FWD_DEFINED__ */ - - -#ifndef __IISDsCrMap_FWD_DEFINED__ -#define __IISDsCrMap_FWD_DEFINED__ -typedef interface IISDsCrMap IISDsCrMap; -#endif /* __IISDsCrMap_FWD_DEFINED__ */ - - -#ifndef __IISApp_FWD_DEFINED__ -#define __IISApp_FWD_DEFINED__ -typedef interface IISApp IISApp; -#endif /* __IISApp_FWD_DEFINED__ */ - - -#ifndef __IISApp2_FWD_DEFINED__ -#define __IISApp2_FWD_DEFINED__ -typedef interface IISApp2 IISApp2; -#endif /* __IISApp2_FWD_DEFINED__ */ - - -#ifndef __IISApp3_FWD_DEFINED__ -#define __IISApp3_FWD_DEFINED__ -typedef interface IISApp3 IISApp3; -#endif /* __IISApp3_FWD_DEFINED__ */ - - -#ifndef __IISComputer_FWD_DEFINED__ -#define __IISComputer_FWD_DEFINED__ -typedef interface IISComputer IISComputer; -#endif /* __IISComputer_FWD_DEFINED__ */ - - -#ifndef __IISComputer2_FWD_DEFINED__ -#define __IISComputer2_FWD_DEFINED__ -typedef interface IISComputer2 IISComputer2; -#endif /* __IISComputer2_FWD_DEFINED__ */ - - -#ifndef __IISExtComputer_FWD_DEFINED__ -#define __IISExtComputer_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtComputer IISExtComputer; -#else -typedef struct IISExtComputer IISExtComputer; -#endif /* __cplusplus */ - -#endif /* __IISExtComputer_FWD_DEFINED__ */ - - -#ifndef __IISExtApp_FWD_DEFINED__ -#define __IISExtApp_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtApp IISExtApp; -#else -typedef struct IISExtApp IISExtApp; -#endif /* __cplusplus */ - -#endif /* __IISExtApp_FWD_DEFINED__ */ - - -#ifndef __IISExtServer_FWD_DEFINED__ -#define __IISExtServer_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtServer IISExtServer; -#else -typedef struct IISExtServer IISExtServer; -#endif /* __cplusplus */ - -#endif /* __IISExtServer_FWD_DEFINED__ */ - - -#ifndef __IISExtDsCrMap_FWD_DEFINED__ -#define __IISExtDsCrMap_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtDsCrMap IISExtDsCrMap; -#else -typedef struct IISExtDsCrMap IISExtDsCrMap; -#endif /* __cplusplus */ - -#endif /* __IISExtDsCrMap_FWD_DEFINED__ */ - - -#ifndef __IISExtApplicationPool_FWD_DEFINED__ -#define __IISExtApplicationPool_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtApplicationPool IISExtApplicationPool; -#else -typedef struct IISExtApplicationPool IISExtApplicationPool; -#endif /* __cplusplus */ - -#endif /* __IISExtApplicationPool_FWD_DEFINED__ */ - - -#ifndef __IISExtApplicationPools_FWD_DEFINED__ -#define __IISExtApplicationPools_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtApplicationPools IISExtApplicationPools; -#else -typedef struct IISExtApplicationPools IISExtApplicationPools; -#endif /* __cplusplus */ - -#endif /* __IISExtApplicationPools_FWD_DEFINED__ */ - - -#ifndef __IISExtWebService_FWD_DEFINED__ -#define __IISExtWebService_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class IISExtWebService IISExtWebService; -#else -typedef struct IISExtWebService IISExtWebService; -#endif /* __cplusplus */ - -#endif /* __IISExtWebService_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void * ); - - -#ifndef __IISExt_LIBRARY_DEFINED__ -#define __IISExt_LIBRARY_DEFINED__ - -/* library IISExt */ -/* [helpstring][version][uuid] */ - - -EXTERN_C const IID LIBID_IISExt; - -#ifndef __IISApplicationPool_INTERFACE_DEFINED__ -#define __IISApplicationPool_INTERFACE_DEFINED__ - -/* interface IISApplicationPool */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISApplicationPool; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0B3CB1E1-829A-4c06-8B09-F56DA1894C88") - IISApplicationPool : public IADs - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Recycle( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnumAppsInPool( - /* [retval][out] */ VARIANT *bstrBuffer) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Start( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Stop( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISApplicationPoolVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISApplicationPool * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISApplicationPool * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISApplicationPool * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISApplicationPool * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISApplicationPool * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISApplicationPool * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISApplicationPool * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISApplicationPool * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISApplicationPool * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISApplicationPool * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISApplicationPool * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISApplicationPool * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISApplicationPool * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISApplicationPool * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISApplicationPool * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Recycle )( - IISApplicationPool * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnumAppsInPool )( - IISApplicationPool * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Start )( - IISApplicationPool * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Stop )( - IISApplicationPool * This); - - END_INTERFACE - } IISApplicationPoolVtbl; - - interface IISApplicationPool - { - CONST_VTBL struct IISApplicationPoolVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISApplicationPool_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISApplicationPool_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISApplicationPool_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISApplicationPool_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISApplicationPool_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISApplicationPool_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISApplicationPool_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISApplicationPool_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISApplicationPool_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISApplicationPool_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISApplicationPool_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISApplicationPool_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISApplicationPool_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISApplicationPool_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISApplicationPool_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISApplicationPool_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISApplicationPool_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISApplicationPool_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISApplicationPool_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISApplicationPool_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISApplicationPool_Recycle(This) \ - (This)->lpVtbl -> Recycle(This) - -#define IISApplicationPool_EnumAppsInPool(This,bstrBuffer) \ - (This)->lpVtbl -> EnumAppsInPool(This,bstrBuffer) - -#define IISApplicationPool_Start(This) \ - (This)->lpVtbl -> Start(This) - -#define IISApplicationPool_Stop(This) \ - (This)->lpVtbl -> Stop(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApplicationPool_Recycle_Proxy( - IISApplicationPool * This); - - -void __RPC_STUB IISApplicationPool_Recycle_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApplicationPool_EnumAppsInPool_Proxy( - IISApplicationPool * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - -void __RPC_STUB IISApplicationPool_EnumAppsInPool_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApplicationPool_Start_Proxy( - IISApplicationPool * This); - - -void __RPC_STUB IISApplicationPool_Start_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApplicationPool_Stop_Proxy( - IISApplicationPool * This); - - -void __RPC_STUB IISApplicationPool_Stop_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISApplicationPool_INTERFACE_DEFINED__ */ - - -#ifndef __IISApplicationPools_INTERFACE_DEFINED__ -#define __IISApplicationPools_INTERFACE_DEFINED__ - -/* interface IISApplicationPools */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISApplicationPools; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("587F123F-49B4-49dd-939E-F4547AA3FA75") - IISApplicationPools : public IADs - { - public: - }; - -#else /* C style interface */ - - typedef struct IISApplicationPoolsVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISApplicationPools * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISApplicationPools * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISApplicationPools * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISApplicationPools * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISApplicationPools * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISApplicationPools * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISApplicationPools * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISApplicationPools * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISApplicationPools * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISApplicationPools * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISApplicationPools * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISApplicationPools * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISApplicationPools * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISApplicationPools * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISApplicationPools * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - END_INTERFACE - } IISApplicationPoolsVtbl; - - interface IISApplicationPools - { - CONST_VTBL struct IISApplicationPoolsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISApplicationPools_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISApplicationPools_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISApplicationPools_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISApplicationPools_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISApplicationPools_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISApplicationPools_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISApplicationPools_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISApplicationPools_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISApplicationPools_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISApplicationPools_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISApplicationPools_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISApplicationPools_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISApplicationPools_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISApplicationPools_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISApplicationPools_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISApplicationPools_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISApplicationPools_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISApplicationPools_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISApplicationPools_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISApplicationPools_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IISApplicationPools_INTERFACE_DEFINED__ */ - - -#ifndef __IISWebService_INTERFACE_DEFINED__ -#define __IISWebService_INTERFACE_DEFINED__ - -/* interface IISWebService */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISWebService; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("EE46D40C-1B38-4a02-898D-358E74DFC9D2") - IISWebService : public IADs - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetCurrentMode( - /* [retval][out] */ VARIANT *pvServerMode) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateNewSite( - /* [in] */ BSTR bstrServerComment, - /* [in] */ VARIANT *pvServerBindings, - /* [in] */ BSTR bstrRootVDirPath, - /* [optional][in] */ VARIANT vServerID, - /* [retval][out] */ VARIANT *pvActualID) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnableApplication( - /* [in] */ BSTR bstrAppName) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE RemoveApplication( - /* [in] */ BSTR bstrAppName) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE ListApplications( - /* [retval][out] */ VARIANT *bstrBuffer) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddDependency( - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE RemoveDependency( - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnableWebServiceExtension( - /* [in] */ BSTR bstrExtension) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE DisableWebServiceExtension( - /* [in] */ BSTR bstrExtension) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE ListWebServiceExtensions( - /* [retval][out] */ VARIANT *bstrBuffer) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnableExtensionFile( - /* [in] */ BSTR bstrExtensionFile) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE DisableExtensionFile( - /* [in] */ BSTR bstrExtensionFile) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddExtensionFile( - /* [in] */ BSTR bstrExtensionFile, - /* [in] */ VARIANT bAccess, - /* [in] */ BSTR bstrGroupID, - /* [in] */ VARIANT bCanDelete, - /* [in] */ BSTR bstrDescription) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE DeleteExtensionFileRecord( - /* [in] */ BSTR bstrExtensionFile) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE ListExtensionFiles( - /* [retval][out] */ VARIANT *bstrBuffer) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE QueryGroupIDStatus( - /* [in] */ BSTR bstrGroupID, - /* [retval][out] */ VARIANT *bstrBuffer) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISWebServiceVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISWebService * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISWebService * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISWebService * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISWebService * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISWebService * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISWebService * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISWebService * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISWebService * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISWebService * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISWebService * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISWebService * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISWebService * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISWebService * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISWebService * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISWebService * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetCurrentMode )( - IISWebService * This, - /* [retval][out] */ VARIANT *pvServerMode); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateNewSite )( - IISWebService * This, - /* [in] */ BSTR bstrServerComment, - /* [in] */ VARIANT *pvServerBindings, - /* [in] */ BSTR bstrRootVDirPath, - /* [optional][in] */ VARIANT vServerID, - /* [retval][out] */ VARIANT *pvActualID); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnableApplication )( - IISWebService * This, - /* [in] */ BSTR bstrAppName); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RemoveApplication )( - IISWebService * This, - /* [in] */ BSTR bstrAppName); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *ListApplications )( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddDependency )( - IISWebService * This, - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RemoveDependency )( - IISWebService * This, - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnableWebServiceExtension )( - IISWebService * This, - /* [in] */ BSTR bstrExtension); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DisableWebServiceExtension )( - IISWebService * This, - /* [in] */ BSTR bstrExtension); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *ListWebServiceExtensions )( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnableExtensionFile )( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DisableExtensionFile )( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddExtensionFile )( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile, - /* [in] */ VARIANT bAccess, - /* [in] */ BSTR bstrGroupID, - /* [in] */ VARIANT bCanDelete, - /* [in] */ BSTR bstrDescription); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteExtensionFileRecord )( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *ListExtensionFiles )( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *QueryGroupIDStatus )( - IISWebService * This, - /* [in] */ BSTR bstrGroupID, - /* [retval][out] */ VARIANT *bstrBuffer); - - END_INTERFACE - } IISWebServiceVtbl; - - interface IISWebService - { - CONST_VTBL struct IISWebServiceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISWebService_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISWebService_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISWebService_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISWebService_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISWebService_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISWebService_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISWebService_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISWebService_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISWebService_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISWebService_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISWebService_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISWebService_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISWebService_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISWebService_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISWebService_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISWebService_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISWebService_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISWebService_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISWebService_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISWebService_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISWebService_GetCurrentMode(This,pvServerMode) \ - (This)->lpVtbl -> GetCurrentMode(This,pvServerMode) - -#define IISWebService_CreateNewSite(This,bstrServerComment,pvServerBindings,bstrRootVDirPath,vServerID,pvActualID) \ - (This)->lpVtbl -> CreateNewSite(This,bstrServerComment,pvServerBindings,bstrRootVDirPath,vServerID,pvActualID) - -#define IISWebService_EnableApplication(This,bstrAppName) \ - (This)->lpVtbl -> EnableApplication(This,bstrAppName) - -#define IISWebService_RemoveApplication(This,bstrAppName) \ - (This)->lpVtbl -> RemoveApplication(This,bstrAppName) - -#define IISWebService_ListApplications(This,bstrBuffer) \ - (This)->lpVtbl -> ListApplications(This,bstrBuffer) - -#define IISWebService_AddDependency(This,bstrApplication,bstrGroupID) \ - (This)->lpVtbl -> AddDependency(This,bstrApplication,bstrGroupID) - -#define IISWebService_RemoveDependency(This,bstrApplication,bstrGroupID) \ - (This)->lpVtbl -> RemoveDependency(This,bstrApplication,bstrGroupID) - -#define IISWebService_EnableWebServiceExtension(This,bstrExtension) \ - (This)->lpVtbl -> EnableWebServiceExtension(This,bstrExtension) - -#define IISWebService_DisableWebServiceExtension(This,bstrExtension) \ - (This)->lpVtbl -> DisableWebServiceExtension(This,bstrExtension) - -#define IISWebService_ListWebServiceExtensions(This,bstrBuffer) \ - (This)->lpVtbl -> ListWebServiceExtensions(This,bstrBuffer) - -#define IISWebService_EnableExtensionFile(This,bstrExtensionFile) \ - (This)->lpVtbl -> EnableExtensionFile(This,bstrExtensionFile) - -#define IISWebService_DisableExtensionFile(This,bstrExtensionFile) \ - (This)->lpVtbl -> DisableExtensionFile(This,bstrExtensionFile) - -#define IISWebService_AddExtensionFile(This,bstrExtensionFile,bAccess,bstrGroupID,bCanDelete,bstrDescription) \ - (This)->lpVtbl -> AddExtensionFile(This,bstrExtensionFile,bAccess,bstrGroupID,bCanDelete,bstrDescription) - -#define IISWebService_DeleteExtensionFileRecord(This,bstrExtensionFile) \ - (This)->lpVtbl -> DeleteExtensionFileRecord(This,bstrExtensionFile) - -#define IISWebService_ListExtensionFiles(This,bstrBuffer) \ - (This)->lpVtbl -> ListExtensionFiles(This,bstrBuffer) - -#define IISWebService_QueryGroupIDStatus(This,bstrGroupID,bstrBuffer) \ - (This)->lpVtbl -> QueryGroupIDStatus(This,bstrGroupID,bstrBuffer) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_GetCurrentMode_Proxy( - IISWebService * This, - /* [retval][out] */ VARIANT *pvServerMode); - - -void __RPC_STUB IISWebService_GetCurrentMode_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_CreateNewSite_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrServerComment, - /* [in] */ VARIANT *pvServerBindings, - /* [in] */ BSTR bstrRootVDirPath, - /* [optional][in] */ VARIANT vServerID, - /* [retval][out] */ VARIANT *pvActualID); - - -void __RPC_STUB IISWebService_CreateNewSite_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_EnableApplication_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrAppName); - - -void __RPC_STUB IISWebService_EnableApplication_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_RemoveApplication_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrAppName); - - -void __RPC_STUB IISWebService_RemoveApplication_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_ListApplications_Proxy( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - -void __RPC_STUB IISWebService_ListApplications_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_AddDependency_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID); - - -void __RPC_STUB IISWebService_AddDependency_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_RemoveDependency_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrApplication, - /* [in] */ BSTR bstrGroupID); - - -void __RPC_STUB IISWebService_RemoveDependency_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_EnableWebServiceExtension_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtension); - - -void __RPC_STUB IISWebService_EnableWebServiceExtension_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_DisableWebServiceExtension_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtension); - - -void __RPC_STUB IISWebService_DisableWebServiceExtension_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_ListWebServiceExtensions_Proxy( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - -void __RPC_STUB IISWebService_ListWebServiceExtensions_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_EnableExtensionFile_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - -void __RPC_STUB IISWebService_EnableExtensionFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_DisableExtensionFile_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - -void __RPC_STUB IISWebService_DisableExtensionFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_AddExtensionFile_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile, - /* [in] */ VARIANT bAccess, - /* [in] */ BSTR bstrGroupID, - /* [in] */ VARIANT bCanDelete, - /* [in] */ BSTR bstrDescription); - - -void __RPC_STUB IISWebService_AddExtensionFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_DeleteExtensionFileRecord_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrExtensionFile); - - -void __RPC_STUB IISWebService_DeleteExtensionFileRecord_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_ListExtensionFiles_Proxy( - IISWebService * This, - /* [retval][out] */ VARIANT *bstrBuffer); - - -void __RPC_STUB IISWebService_ListExtensionFiles_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISWebService_QueryGroupIDStatus_Proxy( - IISWebService * This, - /* [in] */ BSTR bstrGroupID, - /* [retval][out] */ VARIANT *bstrBuffer); - - -void __RPC_STUB IISWebService_QueryGroupIDStatus_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISWebService_INTERFACE_DEFINED__ */ - - -#ifndef __IISDsCrMap_INTERFACE_DEFINED__ -#define __IISDsCrMap_INTERFACE_DEFINED__ - -/* interface IISDsCrMap */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISDsCrMap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("edcd6a60-b053-11d0-a62f-00a0c922e752") - IISDsCrMap : public IADs - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateMapping( - /* [in] */ VARIANT vCert, - /* [in] */ BSTR bstrNtAcct, - /* [in] */ BSTR bstrNtPwd, - /* [in] */ BSTR bstrName, - /* [in] */ LONG lEnabled) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetMapping( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [out] */ VARIANT *pvCert, - /* [out] */ VARIANT *pbstrNtAcct, - /* [out] */ VARIANT *pbstrNtPwd, - /* [out] */ VARIANT *pbstrName, - /* [out] */ VARIANT *plEnabled) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE DeleteMapping( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetEnabled( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ LONG lEnabled) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetName( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrName) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetPwd( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrPwd) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetAcct( - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrAcct) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISDsCrMapVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISDsCrMap * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISDsCrMap * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISDsCrMap * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISDsCrMap * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISDsCrMap * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISDsCrMap * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISDsCrMap * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISDsCrMap * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISDsCrMap * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISDsCrMap * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISDsCrMap * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISDsCrMap * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISDsCrMap * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISDsCrMap * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISDsCrMap * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateMapping )( - IISDsCrMap * This, - /* [in] */ VARIANT vCert, - /* [in] */ BSTR bstrNtAcct, - /* [in] */ BSTR bstrNtPwd, - /* [in] */ BSTR bstrName, - /* [in] */ LONG lEnabled); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetMapping )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [out] */ VARIANT *pvCert, - /* [out] */ VARIANT *pbstrNtAcct, - /* [out] */ VARIANT *pbstrNtPwd, - /* [out] */ VARIANT *pbstrName, - /* [out] */ VARIANT *plEnabled); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteMapping )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetEnabled )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ LONG lEnabled); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetName )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrName); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetPwd )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrPwd); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetAcct )( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrAcct); - - END_INTERFACE - } IISDsCrMapVtbl; - - interface IISDsCrMap - { - CONST_VTBL struct IISDsCrMapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISDsCrMap_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISDsCrMap_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISDsCrMap_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISDsCrMap_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISDsCrMap_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISDsCrMap_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISDsCrMap_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISDsCrMap_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISDsCrMap_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISDsCrMap_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISDsCrMap_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISDsCrMap_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISDsCrMap_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISDsCrMap_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISDsCrMap_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISDsCrMap_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISDsCrMap_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISDsCrMap_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISDsCrMap_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISDsCrMap_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISDsCrMap_CreateMapping(This,vCert,bstrNtAcct,bstrNtPwd,bstrName,lEnabled) \ - (This)->lpVtbl -> CreateMapping(This,vCert,bstrNtAcct,bstrNtPwd,bstrName,lEnabled) - -#define IISDsCrMap_GetMapping(This,lMethod,vKey,pvCert,pbstrNtAcct,pbstrNtPwd,pbstrName,plEnabled) \ - (This)->lpVtbl -> GetMapping(This,lMethod,vKey,pvCert,pbstrNtAcct,pbstrNtPwd,pbstrName,plEnabled) - -#define IISDsCrMap_DeleteMapping(This,lMethod,vKey) \ - (This)->lpVtbl -> DeleteMapping(This,lMethod,vKey) - -#define IISDsCrMap_SetEnabled(This,lMethod,vKey,lEnabled) \ - (This)->lpVtbl -> SetEnabled(This,lMethod,vKey,lEnabled) - -#define IISDsCrMap_SetName(This,lMethod,vKey,bstrName) \ - (This)->lpVtbl -> SetName(This,lMethod,vKey,bstrName) - -#define IISDsCrMap_SetPwd(This,lMethod,vKey,bstrPwd) \ - (This)->lpVtbl -> SetPwd(This,lMethod,vKey,bstrPwd) - -#define IISDsCrMap_SetAcct(This,lMethod,vKey,bstrAcct) \ - (This)->lpVtbl -> SetAcct(This,lMethod,vKey,bstrAcct) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_CreateMapping_Proxy( - IISDsCrMap * This, - /* [in] */ VARIANT vCert, - /* [in] */ BSTR bstrNtAcct, - /* [in] */ BSTR bstrNtPwd, - /* [in] */ BSTR bstrName, - /* [in] */ LONG lEnabled); - - -void __RPC_STUB IISDsCrMap_CreateMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_GetMapping_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [out] */ VARIANT *pvCert, - /* [out] */ VARIANT *pbstrNtAcct, - /* [out] */ VARIANT *pbstrNtPwd, - /* [out] */ VARIANT *pbstrName, - /* [out] */ VARIANT *plEnabled); - - -void __RPC_STUB IISDsCrMap_GetMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_DeleteMapping_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey); - - -void __RPC_STUB IISDsCrMap_DeleteMapping_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_SetEnabled_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ LONG lEnabled); - - -void __RPC_STUB IISDsCrMap_SetEnabled_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_SetName_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrName); - - -void __RPC_STUB IISDsCrMap_SetName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_SetPwd_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrPwd); - - -void __RPC_STUB IISDsCrMap_SetPwd_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISDsCrMap_SetAcct_Proxy( - IISDsCrMap * This, - /* [in] */ LONG lMethod, - /* [in] */ VARIANT vKey, - /* [in] */ BSTR bstrAcct); - - -void __RPC_STUB IISDsCrMap_SetAcct_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISDsCrMap_INTERFACE_DEFINED__ */ - - -#ifndef __IISApp_INTERFACE_DEFINED__ -#define __IISApp_INTERFACE_DEFINED__ - -/* interface IISApp */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISApp; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("46FBBB80-0192-11d1-9C39-00A0C922E703") - IISApp : public IADs - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppCreate( - /* [in] */ VARIANT_BOOL bSetInProcFlag) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppDelete( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppDeleteRecursive( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppUnLoad( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppUnLoadRecursive( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppDisable( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppDisableRecursive( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppEnable( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppEnableRecursive( void) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppGetStatus( - /* [out] */ DWORD *pdwStatus) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AspAppRestart( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISAppVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISApp * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISApp * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISApp * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISApp * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISApp * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISApp * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISApp * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISApp * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISApp * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISApp * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISApp * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISApp * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISApp * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISApp * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISApp * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate )( - IISApp * This, - /* [in] */ VARIANT_BOOL bSetInProcFlag); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDelete )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDeleteRecursive )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoad )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoadRecursive )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisable )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisableRecursive )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnable )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnableRecursive )( - IISApp * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppGetStatus )( - IISApp * This, - /* [out] */ DWORD *pdwStatus); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AspAppRestart )( - IISApp * This); - - END_INTERFACE - } IISAppVtbl; - - interface IISApp - { - CONST_VTBL struct IISAppVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISApp_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISApp_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISApp_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISApp_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISApp_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISApp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISApp_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISApp_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISApp_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISApp_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISApp_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISApp_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISApp_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISApp_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISApp_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISApp_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISApp_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISApp_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISApp_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISApp_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISApp_AppCreate(This,bSetInProcFlag) \ - (This)->lpVtbl -> AppCreate(This,bSetInProcFlag) - -#define IISApp_AppDelete(This) \ - (This)->lpVtbl -> AppDelete(This) - -#define IISApp_AppDeleteRecursive(This) \ - (This)->lpVtbl -> AppDeleteRecursive(This) - -#define IISApp_AppUnLoad(This) \ - (This)->lpVtbl -> AppUnLoad(This) - -#define IISApp_AppUnLoadRecursive(This) \ - (This)->lpVtbl -> AppUnLoadRecursive(This) - -#define IISApp_AppDisable(This) \ - (This)->lpVtbl -> AppDisable(This) - -#define IISApp_AppDisableRecursive(This) \ - (This)->lpVtbl -> AppDisableRecursive(This) - -#define IISApp_AppEnable(This) \ - (This)->lpVtbl -> AppEnable(This) - -#define IISApp_AppEnableRecursive(This) \ - (This)->lpVtbl -> AppEnableRecursive(This) - -#define IISApp_AppGetStatus(This,pdwStatus) \ - (This)->lpVtbl -> AppGetStatus(This,pdwStatus) - -#define IISApp_AspAppRestart(This) \ - (This)->lpVtbl -> AspAppRestart(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppCreate_Proxy( - IISApp * This, - /* [in] */ VARIANT_BOOL bSetInProcFlag); - - -void __RPC_STUB IISApp_AppCreate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppDelete_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppDelete_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppDeleteRecursive_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppDeleteRecursive_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppUnLoad_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppUnLoad_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppUnLoadRecursive_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppUnLoadRecursive_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppDisable_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppDisable_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppDisableRecursive_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppDisableRecursive_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppEnable_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppEnable_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppEnableRecursive_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AppEnableRecursive_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AppGetStatus_Proxy( - IISApp * This, - /* [out] */ DWORD *pdwStatus); - - -void __RPC_STUB IISApp_AppGetStatus_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp_AspAppRestart_Proxy( - IISApp * This); - - -void __RPC_STUB IISApp_AspAppRestart_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISApp_INTERFACE_DEFINED__ */ - - -#ifndef __IISApp2_INTERFACE_DEFINED__ -#define __IISApp2_INTERFACE_DEFINED__ - -/* interface IISApp2 */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISApp2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("603DCBEA-7350-11d2-A7BE-0000F8085B95") - IISApp2 : public IISApp - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppCreate2( - /* [in] */ LONG lAppMode) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppGetStatus2( - /* [retval][out] */ LONG *lpStatus) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISApp2Vtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISApp2 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISApp2 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISApp2 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISApp2 * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISApp2 * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISApp2 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISApp2 * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISApp2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISApp2 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISApp2 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISApp2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISApp2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISApp2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISApp2 * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISApp2 * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate )( - IISApp2 * This, - /* [in] */ VARIANT_BOOL bSetInProcFlag); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDelete )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDeleteRecursive )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoad )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoadRecursive )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisable )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisableRecursive )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnable )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnableRecursive )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppGetStatus )( - IISApp2 * This, - /* [out] */ DWORD *pdwStatus); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AspAppRestart )( - IISApp2 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate2 )( - IISApp2 * This, - /* [in] */ LONG lAppMode); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppGetStatus2 )( - IISApp2 * This, - /* [retval][out] */ LONG *lpStatus); - - END_INTERFACE - } IISApp2Vtbl; - - interface IISApp2 - { - CONST_VTBL struct IISApp2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISApp2_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISApp2_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISApp2_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISApp2_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISApp2_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISApp2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISApp2_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISApp2_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISApp2_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISApp2_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISApp2_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISApp2_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISApp2_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISApp2_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISApp2_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISApp2_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISApp2_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISApp2_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISApp2_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISApp2_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISApp2_AppCreate(This,bSetInProcFlag) \ - (This)->lpVtbl -> AppCreate(This,bSetInProcFlag) - -#define IISApp2_AppDelete(This) \ - (This)->lpVtbl -> AppDelete(This) - -#define IISApp2_AppDeleteRecursive(This) \ - (This)->lpVtbl -> AppDeleteRecursive(This) - -#define IISApp2_AppUnLoad(This) \ - (This)->lpVtbl -> AppUnLoad(This) - -#define IISApp2_AppUnLoadRecursive(This) \ - (This)->lpVtbl -> AppUnLoadRecursive(This) - -#define IISApp2_AppDisable(This) \ - (This)->lpVtbl -> AppDisable(This) - -#define IISApp2_AppDisableRecursive(This) \ - (This)->lpVtbl -> AppDisableRecursive(This) - -#define IISApp2_AppEnable(This) \ - (This)->lpVtbl -> AppEnable(This) - -#define IISApp2_AppEnableRecursive(This) \ - (This)->lpVtbl -> AppEnableRecursive(This) - -#define IISApp2_AppGetStatus(This,pdwStatus) \ - (This)->lpVtbl -> AppGetStatus(This,pdwStatus) - -#define IISApp2_AspAppRestart(This) \ - (This)->lpVtbl -> AspAppRestart(This) - - -#define IISApp2_AppCreate2(This,lAppMode) \ - (This)->lpVtbl -> AppCreate2(This,lAppMode) - -#define IISApp2_AppGetStatus2(This,lpStatus) \ - (This)->lpVtbl -> AppGetStatus2(This,lpStatus) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp2_AppCreate2_Proxy( - IISApp2 * This, - /* [in] */ LONG lAppMode); - - -void __RPC_STUB IISApp2_AppCreate2_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp2_AppGetStatus2_Proxy( - IISApp2 * This, - /* [retval][out] */ LONG *lpStatus); - - -void __RPC_STUB IISApp2_AppGetStatus2_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISApp2_INTERFACE_DEFINED__ */ - - -#ifndef __IISApp3_INTERFACE_DEFINED__ -#define __IISApp3_INTERFACE_DEFINED__ - -/* interface IISApp3 */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISApp3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2812B639-8FAC-4510-96C5-71DDBD1F54FC") - IISApp3 : public IISApp2 - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE AppCreate3( - /* [in] */ LONG lAppMode, - /* [in] */ VARIANT bstrAppPooI, - /* [in] */ VARIANT bCreatePool) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISApp3Vtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISApp3 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISApp3 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISApp3 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISApp3 * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISApp3 * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISApp3 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISApp3 * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISApp3 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISApp3 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISApp3 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISApp3 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISApp3 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISApp3 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISApp3 * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISApp3 * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate )( - IISApp3 * This, - /* [in] */ VARIANT_BOOL bSetInProcFlag); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDelete )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDeleteRecursive )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoad )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppUnLoadRecursive )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisable )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppDisableRecursive )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnable )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppEnableRecursive )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppGetStatus )( - IISApp3 * This, - /* [out] */ DWORD *pdwStatus); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AspAppRestart )( - IISApp3 * This); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate2 )( - IISApp3 * This, - /* [in] */ LONG lAppMode); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppGetStatus2 )( - IISApp3 * This, - /* [retval][out] */ LONG *lpStatus); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *AppCreate3 )( - IISApp3 * This, - /* [in] */ LONG lAppMode, - /* [in] */ VARIANT bstrAppPooI, - /* [in] */ VARIANT bCreatePool); - - END_INTERFACE - } IISApp3Vtbl; - - interface IISApp3 - { - CONST_VTBL struct IISApp3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISApp3_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISApp3_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISApp3_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISApp3_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISApp3_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISApp3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISApp3_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISApp3_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISApp3_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISApp3_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISApp3_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISApp3_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISApp3_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISApp3_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISApp3_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISApp3_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISApp3_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISApp3_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISApp3_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISApp3_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISApp3_AppCreate(This,bSetInProcFlag) \ - (This)->lpVtbl -> AppCreate(This,bSetInProcFlag) - -#define IISApp3_AppDelete(This) \ - (This)->lpVtbl -> AppDelete(This) - -#define IISApp3_AppDeleteRecursive(This) \ - (This)->lpVtbl -> AppDeleteRecursive(This) - -#define IISApp3_AppUnLoad(This) \ - (This)->lpVtbl -> AppUnLoad(This) - -#define IISApp3_AppUnLoadRecursive(This) \ - (This)->lpVtbl -> AppUnLoadRecursive(This) - -#define IISApp3_AppDisable(This) \ - (This)->lpVtbl -> AppDisable(This) - -#define IISApp3_AppDisableRecursive(This) \ - (This)->lpVtbl -> AppDisableRecursive(This) - -#define IISApp3_AppEnable(This) \ - (This)->lpVtbl -> AppEnable(This) - -#define IISApp3_AppEnableRecursive(This) \ - (This)->lpVtbl -> AppEnableRecursive(This) - -#define IISApp3_AppGetStatus(This,pdwStatus) \ - (This)->lpVtbl -> AppGetStatus(This,pdwStatus) - -#define IISApp3_AspAppRestart(This) \ - (This)->lpVtbl -> AspAppRestart(This) - - -#define IISApp3_AppCreate2(This,lAppMode) \ - (This)->lpVtbl -> AppCreate2(This,lAppMode) - -#define IISApp3_AppGetStatus2(This,lpStatus) \ - (This)->lpVtbl -> AppGetStatus2(This,lpStatus) - - -#define IISApp3_AppCreate3(This,lAppMode,bstrAppPooI,bCreatePool) \ - (This)->lpVtbl -> AppCreate3(This,lAppMode,bstrAppPooI,bCreatePool) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISApp3_AppCreate3_Proxy( - IISApp3 * This, - /* [in] */ LONG lAppMode, - /* [in] */ VARIANT bstrAppPooI, - /* [in] */ VARIANT bCreatePool); - - -void __RPC_STUB IISApp3_AppCreate3_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISApp3_INTERFACE_DEFINED__ */ - - -#ifndef __IISComputer_INTERFACE_DEFINED__ -#define __IISComputer_INTERFACE_DEFINED__ - -/* interface IISComputer */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISComputer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("CF87A2E0-078B-11d1-9C3D-00A0C922E703") - IISComputer : public IADs - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Backup( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Restore( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnumBackups( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lIndex, - /* [out] */ VARIANT *pvVersion, - /* [out] */ VARIANT *pvLocations, - /* [out] */ VARIANT *pvDate) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE DeleteBackup( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISComputerVtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISComputer * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISComputer * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISComputer * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISComputer * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISComputer * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISComputer * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISComputer * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISComputer * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISComputer * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISComputer * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISComputer * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISComputer * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISComputer * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISComputer * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISComputer * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Backup )( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Restore )( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnumBackups )( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lIndex, - /* [out] */ VARIANT *pvVersion, - /* [out] */ VARIANT *pvLocations, - /* [out] */ VARIANT *pvDate); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteBackup )( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion); - - END_INTERFACE - } IISComputerVtbl; - - interface IISComputer - { - CONST_VTBL struct IISComputerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISComputer_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISComputer_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISComputer_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISComputer_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISComputer_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISComputer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISComputer_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISComputer_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISComputer_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISComputer_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISComputer_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISComputer_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISComputer_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISComputer_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISComputer_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISComputer_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISComputer_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISComputer_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISComputer_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISComputer_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISComputer_Backup(This,bstrLocation,lVersion,lFlags) \ - (This)->lpVtbl -> Backup(This,bstrLocation,lVersion,lFlags) - -#define IISComputer_Restore(This,bstrLocation,lVersion,lFlags) \ - (This)->lpVtbl -> Restore(This,bstrLocation,lVersion,lFlags) - -#define IISComputer_EnumBackups(This,bstrLocation,lIndex,pvVersion,pvLocations,pvDate) \ - (This)->lpVtbl -> EnumBackups(This,bstrLocation,lIndex,pvVersion,pvLocations,pvDate) - -#define IISComputer_DeleteBackup(This,bstrLocation,lVersion) \ - (This)->lpVtbl -> DeleteBackup(This,bstrLocation,lVersion) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer_Backup_Proxy( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - -void __RPC_STUB IISComputer_Backup_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer_Restore_Proxy( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - -void __RPC_STUB IISComputer_Restore_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer_EnumBackups_Proxy( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lIndex, - /* [out] */ VARIANT *pvVersion, - /* [out] */ VARIANT *pvLocations, - /* [out] */ VARIANT *pvDate); - - -void __RPC_STUB IISComputer_EnumBackups_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer_DeleteBackup_Proxy( - IISComputer * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion); - - -void __RPC_STUB IISComputer_DeleteBackup_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISComputer_INTERFACE_DEFINED__ */ - - -#ifndef __IISComputer2_INTERFACE_DEFINED__ -#define __IISComputer2_INTERFACE_DEFINED__ - -/* interface IISComputer2 */ -/* [object][dual][oleautomation][uuid] */ - - -EXTERN_C const IID IID_IISComputer2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("63d89839-5762-4a68-b1b9-3507ea76cbbf") - IISComputer2 : public IISComputer - { - public: - virtual /* [id] */ HRESULT STDMETHODCALLTYPE BackupWithPassword( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE RestoreWithPassword( - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Export( - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ LONG lFlags) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE Import( - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ BSTR bstrDestPath, - /* [in] */ LONG lFlags) = 0; - - virtual /* [id] */ HRESULT STDMETHODCALLTYPE SaveData( void) = 0; - - }; - -#else /* C style interface */ - - typedef struct IISComputer2Vtbl - { - BEGIN_INTERFACE - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IISComputer2 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [out][idldescattr] */ void **ppvObj, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *AddRef )( - IISComputer2 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Release )( - IISComputer2 * This, - /* [retval][out] */ unsigned long *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - IISComputer2 * This, - /* [out][idldescattr] */ unsigned UINT *pctinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - IISComputer2 * This, - /* [in][idldescattr] */ unsigned UINT itinfo, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ void **pptinfo, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - IISComputer2 * This, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ signed char **rgszNames, - /* [in][idldescattr] */ unsigned UINT cNames, - /* [in][idldescattr] */ unsigned long lcid, - /* [out][idldescattr] */ signed long *rgdispid, - /* [retval][out] */ void *retval); - - /* [id][restricted][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - IISComputer2 * This, - /* [in][idldescattr] */ signed long dispidMember, - /* [in][idldescattr] */ struct GUID *riid, - /* [in][idldescattr] */ unsigned long lcid, - /* [in][idldescattr] */ unsigned short wFlags, - /* [in][idldescattr] */ struct DISPPARAMS *pdispparams, - /* [out][idldescattr] */ VARIANT *pvarResult, - /* [out][idldescattr] */ struct EXCEPINFO *pexcepinfo, - /* [out][idldescattr] */ unsigned UINT *puArgErr, - /* [retval][out] */ void *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Class )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_GUID )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_ADsPath )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][propget][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *get_Schema )( - IISComputer2 * This, - /* [retval][out] */ BSTR *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )( - IISComputer2 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *SetInfo )( - IISComputer2 * This, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Get )( - IISComputer2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *Put )( - IISComputer2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetEx )( - IISComputer2 * This, - /* [in][idldescattr] */ BSTR bstrName, - /* [retval][out] */ VARIANT *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *PutEx )( - IISComputer2 * This, - /* [in][idldescattr] */ signed long lnControlCode, - /* [in][idldescattr] */ BSTR bstrName, - /* [in][idldescattr] */ VARIANT vProp, - /* [retval][out] */ void *retval); - - /* [id][funcdescattr] */ HRESULT ( STDMETHODCALLTYPE *GetInfoEx )( - IISComputer2 * This, - /* [in][idldescattr] */ VARIANT vProperties, - /* [in][idldescattr] */ signed long lnReserved, - /* [retval][out] */ void *retval); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Backup )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Restore )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnumBackups )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lIndex, - /* [out] */ VARIANT *pvVersion, - /* [out] */ VARIANT *pvLocations, - /* [out] */ VARIANT *pvDate); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *DeleteBackup )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *BackupWithPassword )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *RestoreWithPassword )( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Export )( - IISComputer2 * This, - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *Import )( - IISComputer2 * This, - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ BSTR bstrDestPath, - /* [in] */ LONG lFlags); - - /* [id] */ HRESULT ( STDMETHODCALLTYPE *SaveData )( - IISComputer2 * This); - - END_INTERFACE - } IISComputer2Vtbl; - - interface IISComputer2 - { - CONST_VTBL struct IISComputer2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IISComputer2_QueryInterface(This,riid,ppvObj,retval) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObj,retval) - -#define IISComputer2_AddRef(This,retval) \ - (This)->lpVtbl -> AddRef(This,retval) - -#define IISComputer2_Release(This,retval) \ - (This)->lpVtbl -> Release(This,retval) - -#define IISComputer2_GetTypeInfoCount(This,pctinfo,retval) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo,retval) - -#define IISComputer2_GetTypeInfo(This,itinfo,lcid,pptinfo,retval) \ - (This)->lpVtbl -> GetTypeInfo(This,itinfo,lcid,pptinfo,retval) - -#define IISComputer2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgdispid,retval) - -#define IISComputer2_Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) \ - (This)->lpVtbl -> Invoke(This,dispidMember,riid,lcid,wFlags,pdispparams,pvarResult,pexcepinfo,puArgErr,retval) - -#define IISComputer2_get_Name(This,retval) \ - (This)->lpVtbl -> get_Name(This,retval) - -#define IISComputer2_get_Class(This,retval) \ - (This)->lpVtbl -> get_Class(This,retval) - -#define IISComputer2_get_GUID(This,retval) \ - (This)->lpVtbl -> get_GUID(This,retval) - -#define IISComputer2_get_ADsPath(This,retval) \ - (This)->lpVtbl -> get_ADsPath(This,retval) - -#define IISComputer2_get_Parent(This,retval) \ - (This)->lpVtbl -> get_Parent(This,retval) - -#define IISComputer2_get_Schema(This,retval) \ - (This)->lpVtbl -> get_Schema(This,retval) - -#define IISComputer2_GetInfo(This,retval) \ - (This)->lpVtbl -> GetInfo(This,retval) - -#define IISComputer2_SetInfo(This,retval) \ - (This)->lpVtbl -> SetInfo(This,retval) - -#define IISComputer2_Get(This,bstrName,retval) \ - (This)->lpVtbl -> Get(This,bstrName,retval) - -#define IISComputer2_Put(This,bstrName,vProp,retval) \ - (This)->lpVtbl -> Put(This,bstrName,vProp,retval) - -#define IISComputer2_GetEx(This,bstrName,retval) \ - (This)->lpVtbl -> GetEx(This,bstrName,retval) - -#define IISComputer2_PutEx(This,lnControlCode,bstrName,vProp,retval) \ - (This)->lpVtbl -> PutEx(This,lnControlCode,bstrName,vProp,retval) - -#define IISComputer2_GetInfoEx(This,vProperties,lnReserved,retval) \ - (This)->lpVtbl -> GetInfoEx(This,vProperties,lnReserved,retval) - - -#define IISComputer2_Backup(This,bstrLocation,lVersion,lFlags) \ - (This)->lpVtbl -> Backup(This,bstrLocation,lVersion,lFlags) - -#define IISComputer2_Restore(This,bstrLocation,lVersion,lFlags) \ - (This)->lpVtbl -> Restore(This,bstrLocation,lVersion,lFlags) - -#define IISComputer2_EnumBackups(This,bstrLocation,lIndex,pvVersion,pvLocations,pvDate) \ - (This)->lpVtbl -> EnumBackups(This,bstrLocation,lIndex,pvVersion,pvLocations,pvDate) - -#define IISComputer2_DeleteBackup(This,bstrLocation,lVersion) \ - (This)->lpVtbl -> DeleteBackup(This,bstrLocation,lVersion) - - -#define IISComputer2_BackupWithPassword(This,bstrLocation,lVersion,lFlags,bstrPassword) \ - (This)->lpVtbl -> BackupWithPassword(This,bstrLocation,lVersion,lFlags,bstrPassword) - -#define IISComputer2_RestoreWithPassword(This,bstrLocation,lVersion,lFlags,bstrPassword) \ - (This)->lpVtbl -> RestoreWithPassword(This,bstrLocation,lVersion,lFlags,bstrPassword) - -#define IISComputer2_Export(This,bstrPassword,bstrFilename,bstrSourcePath,lFlags) \ - (This)->lpVtbl -> Export(This,bstrPassword,bstrFilename,bstrSourcePath,lFlags) - -#define IISComputer2_Import(This,bstrPassword,bstrFilename,bstrSourcePath,bstrDestPath,lFlags) \ - (This)->lpVtbl -> Import(This,bstrPassword,bstrFilename,bstrSourcePath,bstrDestPath,lFlags) - -#define IISComputer2_SaveData(This) \ - (This)->lpVtbl -> SaveData(This) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer2_BackupWithPassword_Proxy( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword); - - -void __RPC_STUB IISComputer2_BackupWithPassword_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer2_RestoreWithPassword_Proxy( - IISComputer2 * This, - /* [in] */ BSTR bstrLocation, - /* [in] */ LONG lVersion, - /* [in] */ LONG lFlags, - /* [in] */ BSTR bstrPassword); - - -void __RPC_STUB IISComputer2_RestoreWithPassword_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer2_Export_Proxy( - IISComputer2 * This, - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ LONG lFlags); - - -void __RPC_STUB IISComputer2_Export_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer2_Import_Proxy( - IISComputer2 * This, - /* [in] */ BSTR bstrPassword, - /* [in] */ BSTR bstrFilename, - /* [in] */ BSTR bstrSourcePath, - /* [in] */ BSTR bstrDestPath, - /* [in] */ LONG lFlags); - - -void __RPC_STUB IISComputer2_Import_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id] */ HRESULT STDMETHODCALLTYPE IISComputer2_SaveData_Proxy( - IISComputer2 * This); - - -void __RPC_STUB IISComputer2_SaveData_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IISComputer2_INTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_IISExtComputer; - -#ifdef __cplusplus - -class DECLSPEC_UUID("91ef9258-afec-11d1-9868-00a0c922e703") -IISExtComputer; -#endif - -EXTERN_C const CLSID CLSID_IISExtApp; - -#ifdef __cplusplus - -class DECLSPEC_UUID("b4f34438-afec-11d1-9868-00a0c922e703") -IISExtApp; -#endif - -EXTERN_C const CLSID CLSID_IISExtServer; - -#ifdef __cplusplus - -class DECLSPEC_UUID("c3b32488-afec-11d1-9868-00a0c922e703") -IISExtServer; -#endif - -EXTERN_C const CLSID CLSID_IISExtDsCrMap; - -#ifdef __cplusplus - -class DECLSPEC_UUID("bc36cde8-afeb-11d1-9868-00a0c922e703") -IISExtDsCrMap; -#endif - -EXTERN_C const CLSID CLSID_IISExtApplicationPool; - -#ifdef __cplusplus - -class DECLSPEC_UUID("E99F9D0C-FB39-402b-9EEB-AA185237BD34") -IISExtApplicationPool; -#endif - -EXTERN_C const CLSID CLSID_IISExtApplicationPools; - -#ifdef __cplusplus - -class DECLSPEC_UUID("95863074-A389-406a-A2D7-D98BFC95B905") -IISExtApplicationPools; -#endif - -EXTERN_C const CLSID CLSID_IISExtWebService; - -#ifdef __cplusplus - -class DECLSPEC_UUID("40B8F873-B30E-475d-BEC5-4D0EBB0DBAF3") -IISExtWebService; -#endif -#endif /* __IISExt_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/ATL90/source/VCDeploy/iisext_i.c b/ATL90/source/VCDeploy/iisext_i.c deleted file mode 100644 index dab8957..0000000 --- a/ATL90/source/VCDeploy/iisext_i.c +++ /dev/null @@ -1,265 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ -#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */ -#pragma warning( disable: 4211 ) /* redefine extent to static */ - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 6.00.0358 */ -/* at Mon May 06 20:13:17 2002 - */ -/* Compiler settings for iisext.odl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#if !defined(_M_IA64) && !defined(_M_AMD64) - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_IISExt,0x2a56ea30,0xafeb,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISApplicationPool,0x0B3CB1E1,0x829A,0x4c06,0x8B,0x09,0xF5,0x6D,0xA1,0x89,0x4C,0x88); - - -MIDL_DEFINE_GUID(IID, IID_IISApplicationPools,0x587F123F,0x49B4,0x49dd,0x93,0x9E,0xF4,0x54,0x7A,0xA3,0xFA,0x75); - - -MIDL_DEFINE_GUID(IID, IID_IISWebService,0xEE46D40C,0x1B38,0x4a02,0x89,0x8D,0x35,0x8E,0x74,0xDF,0xC9,0xD2); - - -MIDL_DEFINE_GUID(IID, IID_IISDsCrMap,0xedcd6a60,0xb053,0x11d0,0xa6,0x2f,0x00,0xa0,0xc9,0x22,0xe7,0x52); - - -MIDL_DEFINE_GUID(IID, IID_IISApp,0x46FBBB80,0x0192,0x11d1,0x9C,0x39,0x00,0xA0,0xC9,0x22,0xE7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISApp2,0x603DCBEA,0x7350,0x11d2,0xA7,0xBE,0x00,0x00,0xF8,0x08,0x5B,0x95); - - -MIDL_DEFINE_GUID(IID, IID_IISApp3,0x2812B639,0x8FAC,0x4510,0x96,0xC5,0x71,0xDD,0xBD,0x1F,0x54,0xFC); - - -MIDL_DEFINE_GUID(IID, IID_IISComputer,0xCF87A2E0,0x078B,0x11d1,0x9C,0x3D,0x00,0xA0,0xC9,0x22,0xE7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISComputer2,0x63d89839,0x5762,0x4a68,0xb1,0xb9,0x35,0x07,0xea,0x76,0xcb,0xbf); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtComputer,0x91ef9258,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApp,0xb4f34438,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtServer,0xc3b32488,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtDsCrMap,0xbc36cde8,0xafeb,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApplicationPool,0xE99F9D0C,0xFB39,0x402b,0x9E,0xEB,0xAA,0x18,0x52,0x37,0xBD,0x34); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApplicationPools,0x95863074,0xA389,0x406a,0xA2,0xD7,0xD9,0x8B,0xFC,0x95,0xB9,0x05); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtWebService,0x40B8F873,0xB30E,0x475d,0xBE,0xC5,0x4D,0x0E,0xBB,0x0D,0xBA,0xF3); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - -#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/ - - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - -#pragma warning( disable: 4211 ) /* redefine extent to static */ - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 6.00.0358 */ -/* at Mon May 06 20:13:17 2002 - */ -/* Compiler settings for iisext.odl: - Oicf, W1, Zp8, env=Win64 (32b run,appending) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#if defined(_M_IA64) || defined(_M_AMD64) - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_IISExt,0x2a56ea30,0xafeb,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISApplicationPool,0x0B3CB1E1,0x829A,0x4c06,0x8B,0x09,0xF5,0x6D,0xA1,0x89,0x4C,0x88); - - -MIDL_DEFINE_GUID(IID, IID_IISApplicationPools,0x587F123F,0x49B4,0x49dd,0x93,0x9E,0xF4,0x54,0x7A,0xA3,0xFA,0x75); - - -MIDL_DEFINE_GUID(IID, IID_IISWebService,0xEE46D40C,0x1B38,0x4a02,0x89,0x8D,0x35,0x8E,0x74,0xDF,0xC9,0xD2); - - -MIDL_DEFINE_GUID(IID, IID_IISDsCrMap,0xedcd6a60,0xb053,0x11d0,0xa6,0x2f,0x00,0xa0,0xc9,0x22,0xe7,0x52); - - -MIDL_DEFINE_GUID(IID, IID_IISApp,0x46FBBB80,0x0192,0x11d1,0x9C,0x39,0x00,0xA0,0xC9,0x22,0xE7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISApp2,0x603DCBEA,0x7350,0x11d2,0xA7,0xBE,0x00,0x00,0xF8,0x08,0x5B,0x95); - - -MIDL_DEFINE_GUID(IID, IID_IISApp3,0x2812B639,0x8FAC,0x4510,0x96,0xC5,0x71,0xDD,0xBD,0x1F,0x54,0xFC); - - -MIDL_DEFINE_GUID(IID, IID_IISComputer,0xCF87A2E0,0x078B,0x11d1,0x9C,0x3D,0x00,0xA0,0xC9,0x22,0xE7,0x03); - - -MIDL_DEFINE_GUID(IID, IID_IISComputer2,0x63d89839,0x5762,0x4a68,0xb1,0xb9,0x35,0x07,0xea,0x76,0xcb,0xbf); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtComputer,0x91ef9258,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApp,0xb4f34438,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtServer,0xc3b32488,0xafec,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtDsCrMap,0xbc36cde8,0xafeb,0x11d1,0x98,0x68,0x00,0xa0,0xc9,0x22,0xe7,0x03); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApplicationPool,0xE99F9D0C,0xFB39,0x402b,0x9E,0xEB,0xAA,0x18,0x52,0x37,0xBD,0x34); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtApplicationPools,0x95863074,0xA389,0x406a,0xA2,0xD7,0xD9,0x8B,0xFC,0x95,0xB9,0x05); - - -MIDL_DEFINE_GUID(CLSID, CLSID_IISExtWebService,0x40B8F873,0xB30E,0x475d,0xBE,0xC5,0x4D,0x0E,0xBB,0x0D,0xBA,0xF3); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - -#endif /* defined(_M_IA64) || defined(_M_AMD64)*/ - diff --git a/ATL90/source/VCDeploy/resource.h b/ATL90/source/VCDeploy/resource.h deleted file mode 100644 index 4a618a5..0000000 --- a/ATL90/source/VCDeploy/resource.h +++ /dev/null @@ -1,71 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by atlsdply.rc -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -#define IDS_USAGE 101 -#define IDS_BANNER 102 -#define IDS_COMINIT_FAILED 103 -#define IDS_UPDATEIRL 104 -#define IDS_UNEXPECTED 106 -#define IDS_ERR_FAILEDTOCREATEDOM 107 -#define IDS_ERR_FAILEDTOLOAD_SETTINGS_XML 108 -#define IDS_ERR_BADROOTNODE 109 -#define IDS_ERR_WEBHOSTNAME 110 -#define IDS_ERR_NOVIRTDIR 111 -#define IDS_ERR_BADVIRTDIRNODE 112 -#define IDS_ERR_BADREGISTERISAPI 113 -#define IDS_ERR_INVALIDREGISTERISAPI 114 -#define IDS_ERR_BADUNLOADBEFORECOPY 115 -#define IDS_ERR_INVALIDUNLOADBEFORECOPY 116 -#define IDS_ERR_BADAPPISOLATION 117 -#define IDS_ERR_INVALIDAPPISOLATION 118 -#define IDS_ERR_NOVIRTDIRFSPATH 119 -#define IDS_ERR_BADVIRTDIRSFPATHNODE 120 -#define IDS_ERR_CONNECTADSFAILED 121 -#define IDS_ERR_CREATEVROOTFAILED 122 -#define IDS_ERR_SETADSPROPERTY 123 -#define IDS_FILEEXTATTR_NOTFOUND 124 -#define IDS_FILEEXTATTR_INVALID 125 -#define IDS_ERR_TOOMANYVERBS 126 -#define ATLS_ERR_TOOMANYVERBBLOCKS 127 -#define IDS_ERR_NOSTOPW3SVC 129 -#define IDS_ERR_W3SVCFAILEDTOSTART 130 -#define IDS_FAILEDOPENSCM 131 -#define IDS_FAILEDOPENSVC 132 -#define IDS_FAILEDSTOPCOMMAND 133 -#define IDS_FAILEDQUERYSTATUS 134 -#define IDS_FAILEDSTARTSVC 135 -#define IDS_ERR_CREATING_DIRECTORY 136 -#define IDS_ERR_CREATING_DIRECTORY_RELATIVE 137 -#define IDS_WARN_COPYING_FILE 138 -#define IDS_ERR_REGISTERING_EXTENSION 139 -#define IDS_ERR_REGISTERING_NOVDIRPATH 140 -#define IDS_ERR_REGISTERING_NOEXTFILE 141 -#define IDS_ERR_RUNTIME 142 -#define IDS_ERR_OUTOFMEM 143 -#define IDS_WARN_SOURCE_NOT_EXIST 144 -#define IDS_WARN_SOURCE_ACCESS_ERROR 145 -#define IDS_COPYFILE_MESSAGE 146 -#define IDS_FILES_IDENTICAL 147 -#define IDS_WARNING_FAILED_METABSESAVE 148 -#define IDS_WARNING_EMPTY_HOST_TAG 149 -#define IDS_MUSTBEADMIN 150 -#define IDS_CANTGETSECURITY 151 -#define IDS_ERR_BADDONOTCREATEVIRTDIR 152 -#define IDS_ERR_INVALIDDONOTCREATEVIRTDIR 153 -#define VER_LANGID_HEX 0409 -#define VER_LANGID 0x0409 -#define VER_CODEPAGE 0x04b0 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 148 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/ATL90/source/VCDeploy/stdafx.cpp b/ATL90/source/VCDeploy/stdafx.cpp deleted file mode 100644 index ce2ba47..0000000 --- a/ATL90/source/VCDeploy/stdafx.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// atlsdply.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/ATL90/source/VCDeploy/stdafx.h b/ATL90/source/VCDeploy/stdafx.h deleted file mode 100644 index e09b0c8..0000000 --- a/ATL90/source/VCDeploy/stdafx.h +++ /dev/null @@ -1,37 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#pragma once - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers - -//Windows 2000 and higher -#define _WIN32_WINNT 0x0500 -#define WINVER 0x0500 - -#include -#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit - -#include - -// for adsi objects -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include diff --git a/ATL90/source/VCDeploy/vcdeploy.sln b/ATL90/source/VCDeploy/vcdeploy.sln deleted file mode 100644 index 9ed1b50..0000000 --- a/ATL90/source/VCDeploy/vcdeploy.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vcdeploy", "vcdeploy.vcproj", "{87B2D818-3996-4BAD-AAE4-74F5F3B07438}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {87B2D818-3996-4BAD-AAE4-74F5F3B07438}.Debug|Win32.ActiveCfg = Debug|Win32 - {87B2D818-3996-4BAD-AAE4-74F5F3B07438}.Debug|Win32.Build.0 = Debug|Win32 - {87B2D818-3996-4BAD-AAE4-74F5F3B07438}.Release|Win32.ActiveCfg = Release|Win32 - {87B2D818-3996-4BAD-AAE4-74F5F3B07438}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ATL90/source/VCDeploy/vcdeploy.vcproj b/ATL90/source/VCDeploy/vcdeploy.vcproj deleted file mode 100644 index 7e7044d..0000000 --- a/ATL90/source/VCDeploy/vcdeploy.vcproj +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Barcode/bblib.vcxproj b/Barcode/bblib.vcxproj index 24085b2..31a272a 100644 --- a/Barcode/bblib.vcxproj +++ b/Barcode/bblib.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -30,86 +22,62 @@ {0E49D578-377F-4C07-8339-8737AA9FA0EC} bblib MFCProj + 8.1 - - StaticLibrary - false - Static - MultiByte - v120 - - - StaticLibrary - false - Static - MultiByte - v120 - StaticLibrary false Static MultiByte - v120 + v140 StaticLibrary false Static MultiByte - v120 + v140 StaticLibrary false Static MultiByte - v120 + v140 StaticLibrary - false Static MultiByte - v120 + v140 - - - - - - + + + + <_ProjectFileVersion>10.0.40219.1 ..\lib\$(PlatformTarget)\$(Configuration)\ ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ .\..\Debug\ .\..\Debug\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ @@ -144,30 +112,17 @@ - MaxSpeed - OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true MultiThreadedDLL - true false Use - stdafx.h - .\Release/bblib.pch - .\Release/ - .\Release/ - .\Release/ Level3 - true NDEBUG;%(PreprocessorDefinitions) 0x0409 - - $(OutDir)$(ProjectName).lib - true - + true .\..\Release/bblib.bsc @@ -232,114 +187,40 @@ .\..\Debug/bblib.bsc - - - MaxSpeed - OnlyExplicitInline - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreaded - true - false - Use - stdafx.h - .\Release/bblib.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)$(ProjectName).lib - true - - - true - .\..\Release/bblib.bsc - - - - - MaxSpeed - OnlyExplicitInline - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreaded - true - false - Use - stdafx.h - .\Release/bblib.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - $(OutDir)$(ProjectName).lib - true - - - true - .\..\Release/bblib.bsc - - %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) @@ -348,10 +229,6 @@ %(PreprocessorDefinitions) Create Create - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - Create - Create %(PreprocessorDefinitions) %(PreprocessorDefinitions) Create diff --git a/CxImgLib.sln b/CxImgLib.sln index 7009b80..4823fe6 100644 --- a/CxImgLib.sln +++ b/CxImgLib.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CxImage", "SlnkDWFImpl\CxImage\CxImage\CxImage.vcxproj", "{C8E16319-530C-47D5-BED8-B18AB41FC01F}" EndProject diff --git a/QRCode/QRCode.vcxproj b/QRCode/QRCode.vcxproj index 5e59ff5..6d8cc32 100644 --- a/QRCode/QRCode.vcxproj +++ b/QRCode/QRCode.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -22,6 +22,7 @@ {3EA5B7D3-EA9B-420B-B283-0D92E620B970} QRCode Win32Proj + 8.1 @@ -29,53 +30,52 @@ Static MultiByte true - v120 + v140 StaticLibrary Static MultiByte - true - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 + + + + <_ProjectFileVersion>10.0.40219.1 $(SolutionDir)$(Configuration)\ $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ ..\lib\$(PlatformTarget)\$(Configuration)\ ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ diff --git a/RemoveAbout/RemoveAbout.vcxproj b/RemoveAbout/RemoveAbout.vcxproj deleted file mode 100644 index 4b14603..0000000 --- a/RemoveAbout/RemoveAbout.vcxproj +++ /dev/null @@ -1,230 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release MT - Win32 - - - Release MT - x64 - - - Release - Win32 - - - Release - x64 - - - - {89BE476D-6C02-4514-BFCE-256106D98713} - RemoveAbout - - - - Application - MultiByte - true - v120 - - - Application - MultiByte - true - v120 - - - Application - MultiByte - true - v120 - - - Application - MultiByte - true - v120 - - - Application - MultiByte - v120 - - - Application - MultiByte - v120 - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - - - - Disabled - true - EnableFastChecks - MultiThreadedDebugDLL - Level3 - EditAndContinue - - - true - MachineX86 - - - - - Disabled - EnableFastChecks - MultiThreadedDebugDLL - Level3 - ProgramDatabase - - - true - - - - - - - - - Forceer correcte _TIME_ - if exist $(TEMP)\Slnkdwf\SLNKDWFCom\Release\About.obj del $(TEMP)\Slnkdwf\SLNKDWFCom\Release\About.obj - - %(Inputs) - NOTEXIST;%(Outputs) - - - MultiThreadedDLL - Level3 - ProgramDatabase - - - true - true - true - MachineX86 - - - - - - - - - Forceer correcte _TIME_ - if exist $(TEMP)\Slnkdwf\SLNKDWFCom\Release\About.obj del $(TEMP)\Slnkdwf\SLNKDWFCom\Release\About.obj - - %(Inputs) - NOTEXIST;%(Outputs) - - - MultiThreadedDLL - Level3 - ProgramDatabase - - - true - true - true - - - - - - - - - Forceer correcte _TIME_ - if exist $(TargetDir)\..\SlnkdwfCom\Release\about.obj del $(TargetDir)\..\SlnkdwfCom\Release\about.obj - - %(Inputs) - NOTEXIST;%(Outputs) - - - MultiThreadedDLL - Level3 - ProgramDatabase - - - true - true - true - MachineX86 - - - - - - - - - Forceer correcte _TIME_ - if exist $(TargetDir)\..\SlnkdwfCom\Release\about.obj del $(TargetDir)\..\SlnkdwfCom\Release\about.obj - - %(Inputs) - NOTEXIST;%(Outputs) - - - MultiThreadedDLL - Level3 - ProgramDatabase - - - true - true - true - - - - - - - - \ No newline at end of file diff --git a/RemoveAbout/RemoveAbout.vcxproj.filters b/RemoveAbout/RemoveAbout.vcxproj.filters deleted file mode 100644 index 500f18a..0000000 --- a/RemoveAbout/RemoveAbout.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - \ No newline at end of file diff --git a/SLNKDWF.sln b/SLNKDWF.sln index 305938b..8ed722d 100644 --- a/SLNKDWF.sln +++ b/SLNKDWF.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B0573FCD-8E98-421C-8BA3-F47CEB1F1047}" EndProject @@ -16,12 +16,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WincmdPacker", "WincmdPacke EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SLNKDWFStaticRO", "SlnkDWFImpl\SLNKDWFStaticRO.vcxproj", "{CF524F70-4DDD-4040-803B-41B5DE7B1CF9}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SLNKDWFCom", "SlnkDWFCom\SLNKDWF.vcxproj", "{7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SLNKDWF", "SlnkDWFCom\SLNKDWF.vcxproj", "{7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SLNKDWFStaticRW", "SlnkDWFImpl\SLNKDWFStaticRW.vcxproj", "{6EA5FCEC-1DB0-4542-8E41-9423021BD460}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RemoveAbout", "RemoveAbout\RemoveAbout.vcxproj", "{89BE476D-6C02-4514-BFCE-256106D98713}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bblib", "Barcode\bblib.vcxproj", "{0E49D578-377F-4C07-8339-8737AA9FA0EC}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QRCode", "QRCode\QRCode.vcxproj", "{3EA5B7D3-EA9B-420B-B283-0D92E620B970}" @@ -31,9 +29,6 @@ Global Debug|Mixed Platforms = Debug|Mixed Platforms Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Release MT|Mixed Platforms = Release MT|Mixed Platforms - Release MT|Win32 = Release MT|Win32 - Release MT|x64 = Release MT|x64 Release|Mixed Platforms = Release|Mixed Platforms Release|Win32 = Release|Win32 Release|x64 = Release|x64 @@ -44,12 +39,6 @@ Global {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Debug|Win32.ActiveCfg = Debug|Win32 {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Debug|x64.ActiveCfg = Debug|x64 {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Debug|x64.Build.0 = Debug|x64 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|Win32.Build.0 = Release MT|Win32 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|x64.ActiveCfg = Release MT|x64 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release MT|x64.Build.0 = Release MT|x64 {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release|Mixed Platforms.Build.0 = Release|Win32 {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD}.Release|Win32.ActiveCfg = Release|Win32 @@ -61,12 +50,6 @@ Global {6DFC9788-904C-4724-A734-06634061EF00}.Debug|Win32.ActiveCfg = Debug|Win32 {6DFC9788-904C-4724-A734-06634061EF00}.Debug|x64.ActiveCfg = Debug|x64 {6DFC9788-904C-4724-A734-06634061EF00}.Debug|x64.Build.0 = Debug|x64 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|Win32.Build.0 = Release MT|Win32 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|x64.ActiveCfg = Release MT|x64 - {6DFC9788-904C-4724-A734-06634061EF00}.Release MT|x64.Build.0 = Release MT|x64 {6DFC9788-904C-4724-A734-06634061EF00}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {6DFC9788-904C-4724-A734-06634061EF00}.Release|Mixed Platforms.Build.0 = Release|Win32 {6DFC9788-904C-4724-A734-06634061EF00}.Release|Win32.ActiveCfg = Release|Win32 @@ -77,10 +60,6 @@ Global {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Debug|Win32.ActiveCfg = Debug|Win32 {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Debug|x64.ActiveCfg = Debug|x64 - {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release MT|x64.ActiveCfg = Release MT|x64 {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release|Mixed Platforms.Build.0 = Release|Win32 {92F5EB69-069C-43EA-97E7-2F6507AA5873}.Release|Win32.ActiveCfg = Release|Win32 @@ -89,10 +68,6 @@ Global {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Debug|Win32.ActiveCfg = Debug|Win32 {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Debug|x64.ActiveCfg = Debug|x64 - {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release MT|x64.ActiveCfg = Release MT|x64 {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release|Mixed Platforms.Build.0 = Release|Win32 {2F492A95-A23D-45C9-BBD9-E5B9325B22C1}.Release|Win32.ActiveCfg = Release|Win32 @@ -101,10 +76,6 @@ Global {18EC7157-E263-458C-A41C-52E9538A642F}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {18EC7157-E263-458C-A41C-52E9538A642F}.Debug|Win32.ActiveCfg = Debug|Win32 {18EC7157-E263-458C-A41C-52E9538A642F}.Debug|x64.ActiveCfg = Debug|x64 - {18EC7157-E263-458C-A41C-52E9538A642F}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {18EC7157-E263-458C-A41C-52E9538A642F}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {18EC7157-E263-458C-A41C-52E9538A642F}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {18EC7157-E263-458C-A41C-52E9538A642F}.Release MT|x64.ActiveCfg = Release MT|x64 {18EC7157-E263-458C-A41C-52E9538A642F}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {18EC7157-E263-458C-A41C-52E9538A642F}.Release|Mixed Platforms.Build.0 = Release|Win32 {18EC7157-E263-458C-A41C-52E9538A642F}.Release|Win32.ActiveCfg = Release|Win32 @@ -113,11 +84,6 @@ Global {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Debug|Win32.ActiveCfg = Debug|Win32 {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Debug|x64.ActiveCfg = Debug|x64 - {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release MT|Win32.Build.0 = Release MT|Win32 - {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release MT|x64.ActiveCfg = Release MT|x64 {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release|Mixed Platforms.Build.0 = Release|Win32 {CF524F70-4DDD-4040-803B-41B5DE7B1CF9}.Release|Win32.ActiveCfg = Release|Win32 @@ -128,11 +94,6 @@ Global {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Debug|Win32.Build.0 = Debug|Win32 {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Debug|x64.ActiveCfg = Debug|x64 {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Debug|x64.Build.0 = Debug|x64 - {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release MT|x64.ActiveCfg = Release MT|x64 - {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release MT|x64.Build.0 = Release MT|x64 {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release|Mixed Platforms.Build.0 = Release|Win32 {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E}.Release|Win32.ActiveCfg = Release|Win32 @@ -145,46 +106,18 @@ Global {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Debug|Win32.Build.0 = Debug|Win32 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Debug|x64.ActiveCfg = Debug|x64 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Debug|x64.Build.0 = Debug|x64 - {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release MT|x64.ActiveCfg = Release MT|x64 - {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release MT|x64.Build.0 = Release MT|x64 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|Mixed Platforms.Build.0 = Release|Win32 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|Win32.ActiveCfg = Release|Win32 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|Win32.Build.0 = Release|Win32 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|x64.ActiveCfg = Release|x64 {6EA5FCEC-1DB0-4542-8E41-9423021BD460}.Release|x64.Build.0 = Release|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Debug|Win32.ActiveCfg = Debug|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Debug|x64.ActiveCfg = Debug|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Debug|x64.Build.0 = Debug|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|Win32.Build.0 = Release MT|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|x64.ActiveCfg = Release MT|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release MT|x64.Build.0 = Release MT|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|Mixed Platforms.Build.0 = Release|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|Win32.ActiveCfg = Release|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|Win32.Build.0 = Release|Win32 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|x64.ActiveCfg = Release|x64 - {89BE476D-6C02-4514-BFCE-256106D98713}.Release|x64.Build.0 = Release|x64 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|Win32.ActiveCfg = Debug|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|Win32.Build.0 = Debug|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|x64.ActiveCfg = Debug|x64 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Debug|x64.Build.0 = Debug|x64 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|Mixed Platforms.ActiveCfg = Release MT|Win32 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|Mixed Platforms.Build.0 = Release MT|Win32 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|Win32.ActiveCfg = Release MT|Win32 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|Win32.Build.0 = Release MT|Win32 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|x64.ActiveCfg = Release MT|x64 - {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release MT|x64.Build.0 = Release MT|x64 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release|Mixed Platforms.Build.0 = Release|Win32 {0E49D578-377F-4C07-8339-8737AA9FA0EC}.Release|Win32.ActiveCfg = Release|Win32 @@ -197,12 +130,6 @@ Global {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Debug|Win32.Build.0 = Debug|Win32 {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Debug|x64.ActiveCfg = Debug|x64 {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Debug|x64.Build.0 = Debug|x64 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|Mixed Platforms.ActiveCfg = Release|Win32 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|Mixed Platforms.Build.0 = Release|Win32 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|Win32.ActiveCfg = Release|Win32 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|Win32.Build.0 = Release|Win32 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|x64.ActiveCfg = Release|x64 - {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release MT|x64.Build.0 = Release|x64 {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release|Mixed Platforms.ActiveCfg = Release|Win32 {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release|Mixed Platforms.Build.0 = Release|Win32 {3EA5B7D3-EA9B-420B-B283-0D92E620B970}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/SLNKDWFProps.props b/SLNKDWFProps.props index cb1e827..a5b4e1d 100644 --- a/SLNKDWFProps.props +++ b/SLNKDWFProps.props @@ -4,19 +4,26 @@ x:\Library\Dwf770\develop\global + ..\Wtl91\include <_ProjectFileVersion>12.0.30501.0 - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ + $(SolutionDir)Temp\$(ProjectName)\$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ - _CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + %(PreprocessorDefinitions) + false + $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\; $(DWFTKPATH) + + $(WTL) + \ No newline at end of file diff --git a/SlnkDWFCom/SLNKDWF.vcxproj b/SlnkDWFCom/SLNKDWF.vcxproj index ee2b3e0..963add4 100644 --- a/SlnkDWFCom/SLNKDWF.vcxproj +++ b/SlnkDWFCom/SLNKDWF.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -27,59 +19,40 @@ - SLNKDWFCom + SLNKDWF {7F9F1060-C14D-4DD5-91D3-FA7263FECF5E} SLNKDWF AtlProj + 8.1 - - DynamicLibrary - Static - MultiByte - v120 - - - DynamicLibrary - Static - MultiByte - v120 - DynamicLibrary Static MultiByte - v120 + v140 DynamicLibrary Static MultiByte - v120 + v140 DynamicLibrary Static MultiByte - v120 + v140 DynamicLibrary Static MultiByte - v120 + v140 - - - - - - - - @@ -99,30 +72,16 @@ <_ProjectFileVersion>10.0.40219.1 - Debug\ - Debug\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ true true true true - Release\ - Release\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ true true false - false - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - true - true - false - false + + + false @@ -140,7 +99,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;_MERGE_PROXYSTUB;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -160,7 +119,6 @@ ..\SlnkdwfImpl\DebugRW\SLNKDWFStaticRW.lib;Secur32.lib;..\debug\bblib.lib;..\debug\qrcode.lib;%(AdditionalDependencies) - d:\SLNKDWF.dll $(DWFTKPATH)\lib\static\debug\vc8.0;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) .\SLNKDWF.def @@ -190,7 +148,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;_MERGE_PROXYSTUB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL false @@ -209,7 +167,6 @@ ..\SlnkdwfImpl\DebugRW\SLNKDWFStaticRW.lib;Secur32.lib;..\debug\bblib.lib;..\debug\qrcode.lib;%(AdditionalDependencies) - d:\SLNKDWF.dll $(DWFTKPATH)\lib\static\debug\vc8.0;%(AdditionalLibraryDirectories) %(IgnoreSpecificDefaultLibraries) .\SLNKDWF.def @@ -244,7 +201,7 @@ true true $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;SHA1_NO_STL_FUNCTIONS;%(PreprocessorDefinitions) + WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;SHA1_NO_STL_FUNCTIONS;%(PreprocessorDefinitions) false false true @@ -268,7 +225,6 @@ SLNKDWFStaticRW.lib;Secur32.lib;bblib.lib;qrcode.lib;w3dtk.1.7.1555.lib;%(AdditionalDependencies) - ..\SLNKDWF.dll $(DWFTKPATH)\lib\static\release\vc12.0;.\CxImage\;..\lib\x86\release\;%(AdditionalLibraryDirectories) .\SLNKDWF.def false @@ -297,25 +253,19 @@ SLNKDWF_p.c - MaxSpeed - AnySuitable true Speed true true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;SHA1_NO_STL_FUNCTIONS;%(PreprocessorDefinitions) + ..\SlnkDWFImpl;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;SHA1_NO_STL_FUNCTIONS;%(PreprocessorDefinitions) false false - true MultiThreadedDLL - true - false Use Level3 - ProgramDatabase NDEBUG;%(PreprocessorDefinitions) @@ -328,139 +278,21 @@ SLNKDWFStaticRW.lib;Secur32.lib;bblib.lib;qrcode.lib;w3dtk.1.7.1555.lib;%(AdditionalDependencies) - ..\SLNKDWFx64.dll - $(DWFTKPATH)\lib\x64\static\release\vc12.0;.\CxImage\;..\lib\x64\release\;%(AdditionalLibraryDirectories) + $(DWFTKPATH)\lib\x64\static\release\vc14.0;.\CxImage\;..\lib\x64\release\;$(OutDir);%(AdditionalLibraryDirectories) .\SLNKDWF.def - false + No Windows true true UseLinkTimeCodeGeneration $(OutDir)SLNKDWF.lib + - Performing registration - regsvr32 /s /c "$(TargetPath)" + del $(IntDir)\About.obj - - - - NDEBUG;%(PreprocessorDefinitions) - false - Win32 - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - false - false - true - MultiThreaded - true - false - Use - - - Level3 - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - not Unloading IIS... - rem unloadIIS.bat - - - ..\SlnkdwfImpl\Release MT\SLNKDWFStaticRW.lib;Secur32.lib;..\Barcode\Release MT\bblib.lib;%(AdditionalDependencies) - D:\SLNKDWF.dll - $(DWFTKPATH)\lib\static\release\vc8.0;.\CxImage\;%(AdditionalLibraryDirectories) - .\SLNKDWF.def - false - Windows - true - true - UseLinkTimeCodeGeneration - $(OutDir)SLNKDWF.lib - MachineX86 - - Performing registration - regsvr32 /s /c "$(TargetPath)" - - - - - NDEBUG;%(PreprocessorDefinitions) - false - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;..\SlnkDWFImpl;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_MERGE_PROXYSTUB;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - false - false - true - MultiThreaded - true - false - Use - - - Level3 - ProgramDatabase - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - not Unloading IIS... - rem unloadIIS.bat - - - ..\SlnkdwfImpl\Release MT\SLNKDWFStaticRW.lib;Secur32.lib;..\Barcode\Release MT\bblib.lib;%(AdditionalDependencies) - D:\SLNKDWF.dll - $(DWFTKPATH)\lib\static\release\vc8.0;.\CxImage\;%(AdditionalLibraryDirectories) - .\SLNKDWF.def - false - Windows - true - true - UseLinkTimeCodeGeneration - $(OutDir)SLNKDWF.lib - - - Performing registration - regsvr32 /s /c "$(TargetPath)" + Zodat volgende keer buildtime bijgewerkt @@ -475,12 +307,6 @@ ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) - - - - - ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) - ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) @@ -508,8 +334,6 @@ Create Create - Create - Create Create Create @@ -525,12 +349,6 @@ ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) - - - - - ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) - ../SlnkDWFImpl\targetsxs.h;%(ForcedIncludeFiles) @@ -614,10 +432,6 @@ {3ea5b7d3-ea9b-420b-b283-0d92e620b970} false - - {89be476d-6c02-4514-bfce-256106d98713} - false - {6ea5fcec-1db0-4542-8e41-9423021bd460} false diff --git a/SlnkDWFCom/WhipFile.cpp b/SlnkDWFCom/WhipFile.cpp index ef719a1..ed4b1ce 100644 --- a/SlnkDWFCom/WhipFile.cpp +++ b/SlnkDWFCom/WhipFile.cpp @@ -698,7 +698,7 @@ STDMETHODIMP CWhipFile::SaveAs(BSTR WhipPath) DWORD exCode = GetExceptionCode(); myDoTRACE("\nUnhandled Win32 exception 0x%x in CWhipFile::SaveAs", exCode); char err[128]; - sprintf(err, "\nUnhandled Win32 exception 0x%x", exCode); + sprintf_s(err, "\nUnhandled Win32 exception 0x%x", exCode); return myAtlReportError (GetObjectCLSID(), "\nCWhipFile::SaveAs('%ls')\n%s", (LPCSTR)WhipPath, err); } @@ -735,7 +735,7 @@ public: LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); // clear out structure. - strncpy(lf.lfFaceName, m_FontName.ascii(), LF_FACESIZE); + strcpy_s(lf.lfFaceName, LF_FACESIZE, m_FontName.ascii()); lf.lfHeight = -FONT_SIZER; fnt = CreateFontIndirect(&lf); HGDIOBJ oldfont = SelectObject(m_DC, fnt); diff --git a/SlnkDWFCom/unloadIIS.bat b/SlnkDWFCom/unloadIIS.bat deleted file mode 100644 index 7e0e256..0000000 --- a/SlnkDWFCom/unloadIIS.bat +++ /dev/null @@ -1,3 +0,0 @@ -::C:\Inetpub\AdminScripts\adsutil.vbs APPUNLOAD W3SVC/1/Root/SLNKDWF -::C:\Inetpub\AdminScripts\adsutil.vbs APPUNLOAD W3SVC/1/Root/FacilitorWork -::C:\Inetpub\AdminScripts\adsutil.vbs START_SERVER W3SVC/1 diff --git a/SlnkDWFImpl/CxImage/CxImage/cximage.vcxproj b/SlnkDWFImpl/CxImage/CxImage/cximage.vcxproj index 2b5283f..3da1fbd 100644 --- a/SlnkDWFImpl/CxImage/CxImage/cximage.vcxproj +++ b/SlnkDWFImpl/CxImage/CxImage/cximage.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -25,25 +25,25 @@ StaticLibrary - v120 + v140 Dynamic MultiByte StaticLibrary - v120 + v140 Dynamic MultiByte StaticLibrary - v120 + v140 false MultiByte StaticLibrary - v120 + v140 false MultiByte diff --git a/SlnkDWFImpl/CxImage/jpeg/Jpeg.vcxproj b/SlnkDWFImpl/CxImage/jpeg/Jpeg.vcxproj index bfbd0e7..3ca73b5 100644 --- a/SlnkDWFImpl/CxImage/jpeg/Jpeg.vcxproj +++ b/SlnkDWFImpl/CxImage/jpeg/Jpeg.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -26,22 +26,22 @@ StaticLibrary - v120 + v140 false StaticLibrary - v120 + v140 false StaticLibrary - v120 + v140 Dynamic StaticLibrary - v120 + v140 Dynamic diff --git a/SlnkDWFImpl/CxImage/png/png.vcxproj b/SlnkDWFImpl/CxImage/png/png.vcxproj index f3d0357..6db7a06 100644 --- a/SlnkDWFImpl/CxImage/png/png.vcxproj +++ b/SlnkDWFImpl/CxImage/png/png.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -25,25 +25,25 @@ StaticLibrary - v120 + v140 false MultiByte StaticLibrary - v120 + v140 false MultiByte StaticLibrary - v120 + v140 Dynamic MultiByte StaticLibrary - v120 + v140 Dynamic MultiByte diff --git a/SlnkDWFImpl/CxImage/tiff/Tiff.vcxproj b/SlnkDWFImpl/CxImage/tiff/Tiff.vcxproj index 5111d4a..b726896 100644 --- a/SlnkDWFImpl/CxImage/tiff/Tiff.vcxproj +++ b/SlnkDWFImpl/CxImage/tiff/Tiff.vcxproj @@ -1,10 +1,6 @@  - + - - Debug - ARM - Debug Win32 @@ -13,10 +9,6 @@ Debug x64 - - Release - ARM - Release Win32 @@ -35,37 +27,25 @@ StaticLibrary - v120 + v140 false MultiByte StaticLibrary - v120 - false - MultiByte - - - StaticLibrary - v120 + v140 false MultiByte StaticLibrary - v120 + v140 Dynamic MultiByte StaticLibrary - v120 - Dynamic - MultiByte - - - StaticLibrary - v120 + v140 Dynamic MultiByte @@ -82,11 +62,6 @@ - - - - - @@ -97,11 +72,6 @@ - - - - - <_ProjectFileVersion>12.0.30501.0 @@ -110,14 +80,12 @@ .\Debug\ - ..\lib\$(PlatformTarget)\$(Configuration)\ ..\lib\$(PlatformTarget)\$(Configuration)\ - Disabled @@ -175,35 +143,6 @@ .\Debug/Tiff.bsc - - - Disabled - ..\zlib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - .\Debug/Tiff.pch - .\Debug/ - .\Debug/ - .\Debug/ - Level3 - true - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - .\Debug\Tiff.lib - true - - - true - .\Debug/Tiff.bsc - - MinSpace @@ -262,35 +201,6 @@ .\Release/Tiff.bsc - - - MinSpace - OnlyExplicitInline - ..\zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - .\Release/Tiff.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - .\Release\Tiff.lib - true - - - true - .\Release/Tiff.bsc - - diff --git a/SlnkDWFImpl/Jglutil.h b/SlnkDWFImpl/Jglutil.h index 865a945..0fe1dde 100644 --- a/SlnkDWFImpl/Jglutil.h +++ b/SlnkDWFImpl/Jglutil.h @@ -39,7 +39,7 @@ class CneutralGDI public: CneutralGDI(char *msg) { - strncpy(m_msg, msg, sizeof(m_msg)); + strcpy_s(m_msg, msg); nGDI = GetGuiResources(GetCurrentProcess(), GR_GDIOBJECTS); nUSER = GetGuiResources(GetCurrentProcess(), GR_USEROBJECTS); }; @@ -73,13 +73,13 @@ class CmyTimer public: CmyTimer() { - strcpy(m_msg, "Time"); + strcpy_s(m_msg, "Time"); QueryPerformanceCounter(&startTime); CmyTimer::level++; }; CmyTimer(const char*msg) { - strncpy(m_msg, msg, sizeof(m_msg)); + strcpy_s(m_msg, msg); QueryPerformanceCounter(&startTime); CmyTimer::level++; } diff --git a/SlnkDWFImpl/SLNKContourImpl.cpp b/SlnkDWFImpl/SLNKContourImpl.cpp index 3035963..ed2dd1c 100644 --- a/SlnkDWFImpl/SLNKContourImpl.cpp +++ b/SlnkDWFImpl/SLNKContourImpl.cpp @@ -524,7 +524,7 @@ CSize CSLNKContourImpl::DrawOneLabel(WT_File &my_file, if (end >= 0) { long clr; - if (sscanf(token, "c%lx]", &clr)) + if (sscanf_s(token, "c%lx]", &clr)) { WT_Color x(clr>>16,(clr&0xff00)>>8,clr&0xff); if (width != -2) @@ -541,7 +541,7 @@ CSize CSLNKContourImpl::DrawOneLabel(WT_File &my_file, if (end >= 0) { token.Delete(0); - if (sscanf(token, "%d]", &size)) + if (sscanf_s(token, "%d]", &size)) { if (bigS) thisLineHeight = myRound(size * scale); diff --git a/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj b/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj index 6d9971c..2914fb3 100644 --- a/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj +++ b/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -30,55 +22,36 @@ {CF524F70-4DDD-4040-803B-41B5DE7B1CF9} SLNKDWF AtlProj + 8.1 - - StaticLibrary - Static - MultiByte - v120 - - - StaticLibrary - Static - MultiByte - v120 - StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 - - - - - - - - @@ -98,18 +71,6 @@ <_ProjectFileVersion>10.0.40219.1 - DebugRO\ - DebugRO\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - ReleaseRO\ - ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ @@ -127,7 +88,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;DWFTK_READ_ONLY;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -169,7 +130,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;DWFTK_READ_ONLY;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL false @@ -215,7 +176,7 @@ Speed true $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) + WIN32;_WINDOWS;NDEBUG;_USRDLL;DWFTK_READ_ONLY;%(PreprocessorDefinitions) false false true @@ -261,20 +222,14 @@ SLNKDWF_p.c - MaxSpeed - AnySuitable - true Speed true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) + .\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;NDEBUG;_USRDLL;DWFTK_READ_ONLY;%(PreprocessorDefinitions) false false - true MultiThreadedDLL - true Fast - false Use @@ -292,113 +247,8 @@ - msimg32.lib;dwfcore.1.7.0.lib;dwftk_ro.7.7.0.lib;whiptk_ro.7.13.601.lib;%(AdditionalDependencies) - $(DWFTKPATH)\lib\x64\static\release\vc12.0;%(AdditionalLibraryDirectories) - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - false - Win32 - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) - false - false - true - MultiThreadedDLL - true - Fast - false - Use - - - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - - - - - msimg32.lib;dwfcore.1.0.2.lib;dwftk_ro.7.0.2.lib;whiptk_ro.7.6.600.lib;%(AdditionalDependencies) - $(DWFTKPATH)\lib\static\release\vc8.0;%(AdditionalLibraryDirectories) - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - false - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;%(PreprocessorDefinitions) - false - false - true - MultiThreadedDLL - true - Fast - false - Use - - - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - - - - - msimg32.lib;dwfcore.1.0.2.lib;dwftk_ro.7.0.2.lib;whiptk_ro.7.6.600.lib;%(AdditionalDependencies) - $(DWFTKPATH)\lib\static\release\vc8.0;%(AdditionalLibraryDirectories) + cximage.lib;jpeg.lib;png.lib;tiff.lib;msimg32.lib;dwfcore.1.7.0.lib;dwftk_ro.7.7.0.lib;whiptk_ro.7.13.601.lib;%(AdditionalDependencies) + cximage/lib/x64/$(Configuration);$(DWFTKPATH)\lib\x64\static\release\vc14.0;%(AdditionalLibraryDirectories) @@ -409,10 +259,6 @@ - - - - @@ -424,18 +270,12 @@ Create Create - Create - Create Create Create - - - - @@ -462,12 +302,6 @@ - - - - - - diff --git a/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj.filters b/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj.filters index d08695c..9365b7a 100644 --- a/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj.filters +++ b/SlnkDWFImpl/SLNKDWFStaticRO.vcxproj.filters @@ -106,12 +106,6 @@ Header Files - - - - - - diff --git a/SlnkDWFImpl/SLNKDWFStaticRW.vcxproj b/SlnkDWFImpl/SLNKDWFStaticRW.vcxproj index c66ea82..8062772 100644 --- a/SlnkDWFImpl/SLNKDWFStaticRW.vcxproj +++ b/SlnkDWFImpl/SLNKDWFStaticRW.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -30,55 +22,36 @@ {6EA5FCEC-1DB0-4542-8E41-9423021BD460} SLNKDWF AtlProj + 8.1 - - StaticLibrary - Static - MultiByte - v120 - - - StaticLibrary - Static - MultiByte - v120 - StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 StaticLibrary Static MultiByte - v120 + v140 - - - - - - - - @@ -98,18 +71,6 @@ <_ProjectFileVersion>10.0.40219.1 - DebugRW\ - DebugRW\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - ..\lib\$(PlatformTarget)\$(Configuration)\ - ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ @@ -127,7 +88,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -169,7 +130,7 @@ Disabled $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL false @@ -215,7 +176,7 @@ Speed true $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions) false false true @@ -261,20 +222,13 @@ SLNKDWF_p.c - MaxSpeed - AnySuitable - true Speed true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - false - false - true + .\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions) MultiThreadedDLL true Fast - false Use @@ -293,112 +247,7 @@ cximage.lib;jpeg.lib;png.lib;tiff.lib;dwfcore.1.7.0.lib;dwftk.7.7.0.lib;whiptk.7.13.601.lib;msimg32.lib;%(AdditionalDependencies) - cximage/lib/x64/$(Configuration);$(DWFTKPATH)\lib\x64\static\release\vc12.0;%(AdditionalLibraryDirectories) - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - false - Win32 - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - false - false - true - MultiThreaded - true - Fast - false - Use - - - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - - - - - msimg32.lib;dwfcore.1.0.2.lib;dwftk.7.0.2.lib;whiptk.7.6.600.lib;%(AdditionalDependencies) - $(DWFTKPATH)\build\VC 8.0\DWFCore\Release (Read-Write LIB) MT;$(DWFTKPATH)\build\VC 8.0\DWFToolkit\Release (Read-Write LIB) MT;$(DWFTKPATH)\build\VC 8.0\WhipToolkit\Release (Read-Write LIB) MT;%(AdditionalLibraryDirectories) - - - - - - - - - NDEBUG;%(PreprocessorDefinitions) - false - true - $(IntDir)SLNKDWF.tlb - SLNKDWF.h - - - SLNKDWF_i.c - SLNKDWF_p.c - - - MaxSpeed - AnySuitable - true - Speed - true - $(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - false - false - true - MultiThreaded - true - Fast - false - Use - - - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);%(AdditionalIncludeDirectories) - - - - - - - msimg32.lib;dwfcore.1.0.2.lib;dwftk.7.0.2.lib;whiptk.7.6.600.lib;%(AdditionalDependencies) - $(DWFTKPATH)\build\VC 8.0\DWFCore\Release (Read-Write LIB) MT;$(DWFTKPATH)\build\VC 8.0\DWFToolkit\Release (Read-Write LIB) MT;$(DWFTKPATH)\build\VC 8.0\WhipToolkit\Release (Read-Write LIB) MT;%(AdditionalLibraryDirectories) + cximage/lib/x64/$(Configuration);$(DWFTKPATH)\lib\x64\static\release\vc14.0;%(AdditionalLibraryDirectories) @@ -409,10 +258,6 @@ - - - - @@ -424,18 +269,12 @@ Create Create - Create - Create Create Create - - - - diff --git a/SlnkDWFImpl/Whip2DCImpl.cpp b/SlnkDWFImpl/Whip2DCImpl.cpp index 782c9a6..54ba6eb 100644 --- a/SlnkDWFImpl/Whip2DCImpl.cpp +++ b/SlnkDWFImpl/Whip2DCImpl.cpp @@ -323,7 +323,7 @@ int CWhip2DCImpl::Paint(VARIANT_BOOL forceBW, VARIANT_BOOL markers /* = VARIANT_ // Toon bij sterk inzoomen een raster van DWF-punten ter referentie LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); // clear out structure. - strncpy(lf.lfFaceName, "Tahoma", LF_FACESIZE); + strcpy_s(lf.lfFaceName, LF_FACESIZE, "Tahoma"); lf.lfHeight = -10; HFONT fnt = CreateFontIndirect(&lf); HGDIOBJ oldfont = SelectObject(m_State.myDC, fnt); diff --git a/SlnkDWFImpl/Whip2DCState.cpp b/SlnkDWFImpl/Whip2DCState.cpp index 0f10b2e..9a87f19 100644 --- a/SlnkDWFImpl/Whip2DCState.cpp +++ b/SlnkDWFImpl/Whip2DCState.cpp @@ -233,11 +233,8 @@ WT_Result CWhip2DCState::my_process_font (WT_Font & font) if (fd & WT_Font::FONT_NAME_BIT) { - char* facename = new char[font.font_name().name().length()+1]; - strcpy(facename, font.font_name().name().ascii()); memset(m_logfont.lfFaceName,0,LF_FACESIZE*sizeof(char)); - strncpy(m_logfont.lfFaceName,facename,LF_FACESIZE); - delete [] facename; + strcpy_s(m_logfont.lfFaceName, font.font_name().name().ascii()); } int keep=m_logfont.lfOrientation; @@ -281,7 +278,7 @@ if (findIt || m_height*m_mul < geekFontSize if (!(TMPF_TRUETYPE & tm.tmPitchAndFamily)) { HFONT oldfont1 = m_font; - strcpy(m_logfont.lfFaceName, "Arial"); // Probeer het nog eens met een echte TrueType + strcpy_s(m_logfont.lfFaceName, "Arial"); // Probeer het nog eens met een echte TrueType m_font = CreateFontIndirect(&m_logfont); ATLASSERT(m_font); HFONT oldfont = (HFONT) SelectObject(myDC, m_font); diff --git a/SlnkDWFImpl/Whip2DCState.h b/SlnkDWFImpl/Whip2DCState.h index 2a307ff..bf1ed47 100644 --- a/SlnkDWFImpl/Whip2DCState.h +++ b/SlnkDWFImpl/Whip2DCState.h @@ -45,7 +45,7 @@ public: HRGN m_hrgn; KTextFormator m_kfm; - HBRUSH m_brush; int m_alpha; + HBRUSH m_brush; BYTE m_alpha; COLORREF m_DCclr; HDC myDC; diff --git a/SlnkDWFImpl/textformatter.h b/SlnkDWFImpl/textformatter.h index b162b29..7363010 100644 --- a/SlnkDWFImpl/textformatter.h +++ b/SlnkDWFImpl/textformatter.h @@ -1,6 +1,6 @@ class KTextFormator { - typedef enum { MaxCharNo = 256 }; + enum { MaxCharNo = 256 }; double m_fCharWidth[MaxCharNo]; double m_fHeight; diff --git a/Standalone/SLNKDWFViewer.aps b/Standalone/SLNKDWFViewer.aps index 727fac9..b274b9d 100644 Binary files a/Standalone/SLNKDWFViewer.aps and b/Standalone/SLNKDWFViewer.aps differ diff --git a/Standalone/SLNKDWFViewer.vcxproj b/Standalone/SLNKDWFViewer.vcxproj index 907ca16..36717c7 100644 --- a/Standalone/SLNKDWFViewer.vcxproj +++ b/Standalone/SLNKDWFViewer.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -25,73 +17,40 @@ Release x64 - - Template - Win32 - - - Template - x64 - {B2601E72-4FF4-4B9C-A89F-C2E7DACF36FD} SLNKDWFViewer + 8.1 - - Application - Static - MultiByte - v120 - - - Application - Static - MultiByte - v120 - Application Static MultiByte - v120 + v140 Application Static MultiByte - v120 + v140 Application Static MultiByte - v120 + v140 Application Static MultiByte - v120 - - - v120 - - - v120 + v140 - - - - - - - - @@ -111,30 +70,14 @@ <_ProjectFileVersion>10.0.40219.1 - Debug\ - Debug\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ true true false false - Release\ - ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ false false true true - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false - true - true @@ -151,8 +94,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;_DEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;_DEBUG;%(PreprocessorDefinitions) true Default MultiThreadedDebugDLL @@ -163,7 +106,7 @@ _DEBUG;%(PreprocessorDefinitions) 0x0409 - $(IntDir);..\Wtl81\include;%(AdditionalIncludeDirectories) + $(IntDir);$(WTL);%(AdditionalIncludeDirectories) ..\SlnkdwfImpl\DebugRO\SLNKDWFStaticRO.lib;..\debug\Viewer.lib;%(AdditionalDependencies) @@ -186,8 +129,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;_DEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;_DEBUG;%(PreprocessorDefinitions) Default MultiThreadedDebugDLL Use @@ -197,7 +140,7 @@ _DEBUG;%(PreprocessorDefinitions) 0x0409 - $(IntDir);..\Wtl81\include;%(AdditionalIncludeDirectories) + $(IntDir);$(WTL);%(AdditionalIncludeDirectories) ..\SlnkdwfImpl\DebugRO\SLNKDWFStaticRO.lib;..\debug\Viewer.lib;%(AdditionalDependencies) @@ -219,8 +162,8 @@ SLNKDWFViewer_p.c - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;NDEBUG;%(PreprocessorDefinitions) Sync MultiThreadedDLL Use @@ -231,7 +174,7 @@ NDEBUG;%(PreprocessorDefinitions) 0x0409 - $(IntDir);..\Wtl81\include;%(AdditionalIncludeDirectories) + $(IntDir);$(WTL);%(AdditionalIncludeDirectories) ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) @@ -255,9 +198,8 @@ SLNKDWFViewer_p.c - ..\Wtl90\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - Sync + $(WTL);.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;STRICT;NDEBUG;%(PreprocessorDefinitions) MultiThreadedDLL Use Level3 @@ -268,7 +210,7 @@ NDEBUG;%(PreprocessorDefinitions) 0x0409 - $(IntDir);..\Wtl81\include;%(AdditionalIncludeDirectories) + $(IntDir);$(WTL);%(AdditionalIncludeDirectories) SLNKDWFStaticRO.lib;Viewer.lib;w3dtk.1.7.1555.lib;%(AdditionalDependencies) @@ -276,75 +218,7 @@ false $(TargetDir)$(TargetName).pdb Windows - $(DWFTKPATH)\lib\x64\static\release\vc12.0;..\lib\x64\release\ - - - - - NDEBUG;%(PreprocessorDefinitions) - false - Win32 - true - $(IntDir)SLNKDWFViewer.tlb - SLNKDWFViewer.h - - - SLNKDWFViewer_i.c - SLNKDWFViewer_p.c - - - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - Sync - MultiThreadedDLL - Use - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) - %(IgnoreSpecificDefaultLibraries) - Windows - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - false - true - $(IntDir)SLNKDWFViewer.tlb - SLNKDWFViewer.h - - - SLNKDWFViewer_i.c - SLNKDWFViewer_p.c - - - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_WINDOWS;STRICT;NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - Sync - MultiThreadedDLL - Use - Level3 - - - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - $(IntDir);d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) - %(IgnoreSpecificDefaultLibraries) - Windows + $(DWFTKPATH)\lib\x64\static\release\vc14.0;..\lib\x64\release\;$(OutDir) @@ -357,8 +231,6 @@ false Create Create - Create - Create Create Create diff --git a/Viewer/Viewer.vcxproj b/Viewer/Viewer.vcxproj index 28ec14d..b413851 100644 --- a/Viewer/Viewer.vcxproj +++ b/Viewer/Viewer.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -29,47 +21,30 @@ {6DFC9788-904C-4724-A734-06634061EF00} WINCDMDWF + 8.1 - - StaticLibrary - false - v120 - - - StaticLibrary - false - v120 - StaticLibrary false - v120 + v140 StaticLibrary false - v120 + v140 StaticLibrary - v120 + v140 StaticLibrary - v120 + v140 - - - - - - - - @@ -89,54 +64,42 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - ..\lib\$(PlatformTarget)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ /Zm118 %(AdditionalOptions) Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL false Use EditAndContinue - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) /Zm118 %(AdditionalOptions) Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL false Use ProgramDatabase - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) /Zm118 %(AdditionalOptions) - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) MultiThreadedDLL false Use @@ -144,14 +107,14 @@ - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) /Zm118 %(AdditionalOptions) - ..\Wtl90\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) MultiThreadedDLL false Use @@ -159,64 +122,26 @@ - ..\Wtl81\include;%(AdditionalIncludeDirectories) - - - - - /Zm118 %(AdditionalOptions) - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - false - Use - - - - - d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) - - - - - /Zm118 %(AdditionalOptions) - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - false - Use - - - - - d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) - Use - Use Use Use - Use - Use Use Use - Use - Use Use Use Create Create - Create - Create Create Create diff --git a/WTL90/Include/atlapp.h b/WTL91/Include/atlapp.h similarity index 100% rename from WTL90/Include/atlapp.h rename to WTL91/Include/atlapp.h diff --git a/WTL90/Include/atlcrack.h b/WTL91/Include/atlcrack.h similarity index 100% rename from WTL90/Include/atlcrack.h rename to WTL91/Include/atlcrack.h diff --git a/WTL90/Include/atlctrls.h b/WTL91/Include/atlctrls.h similarity index 100% rename from WTL90/Include/atlctrls.h rename to WTL91/Include/atlctrls.h diff --git a/WTL90/Include/atlctrlw.h b/WTL91/Include/atlctrlw.h similarity index 100% rename from WTL90/Include/atlctrlw.h rename to WTL91/Include/atlctrlw.h diff --git a/WTL90/Include/atlctrlx.h b/WTL91/Include/atlctrlx.h similarity index 100% rename from WTL90/Include/atlctrlx.h rename to WTL91/Include/atlctrlx.h diff --git a/WTL90/Include/atlddx.h b/WTL91/Include/atlddx.h similarity index 100% rename from WTL90/Include/atlddx.h rename to WTL91/Include/atlddx.h diff --git a/WTL90/Include/atldlgs.h b/WTL91/Include/atldlgs.h similarity index 100% rename from WTL90/Include/atldlgs.h rename to WTL91/Include/atldlgs.h diff --git a/WTL90/Include/atldwm.h b/WTL91/Include/atldwm.h similarity index 100% rename from WTL90/Include/atldwm.h rename to WTL91/Include/atldwm.h diff --git a/WTL90/Include/atlfind.h b/WTL91/Include/atlfind.h similarity index 100% rename from WTL90/Include/atlfind.h rename to WTL91/Include/atlfind.h diff --git a/WTL90/Include/atlframe.h b/WTL91/Include/atlframe.h similarity index 100% rename from WTL90/Include/atlframe.h rename to WTL91/Include/atlframe.h diff --git a/WTL90/Include/atlgdi.h b/WTL91/Include/atlgdi.h similarity index 100% rename from WTL90/Include/atlgdi.h rename to WTL91/Include/atlgdi.h diff --git a/WTL90/Include/atlmisc.h b/WTL91/Include/atlmisc.h similarity index 100% rename from WTL90/Include/atlmisc.h rename to WTL91/Include/atlmisc.h diff --git a/WTL90/Include/atlprint.h b/WTL91/Include/atlprint.h similarity index 100% rename from WTL90/Include/atlprint.h rename to WTL91/Include/atlprint.h diff --git a/WTL90/Include/atlres.h b/WTL91/Include/atlres.h similarity index 100% rename from WTL90/Include/atlres.h rename to WTL91/Include/atlres.h diff --git a/WTL90/Include/atlresce.h b/WTL91/Include/atlresce.h similarity index 100% rename from WTL90/Include/atlresce.h rename to WTL91/Include/atlresce.h diff --git a/WTL90/Include/atlribbon.h b/WTL91/Include/atlribbon.h similarity index 100% rename from WTL90/Include/atlribbon.h rename to WTL91/Include/atlribbon.h diff --git a/WTL90/Include/atlscrl.h b/WTL91/Include/atlscrl.h similarity index 100% rename from WTL90/Include/atlscrl.h rename to WTL91/Include/atlscrl.h diff --git a/WTL90/Include/atlsplit.h b/WTL91/Include/atlsplit.h similarity index 100% rename from WTL90/Include/atlsplit.h rename to WTL91/Include/atlsplit.h diff --git a/WTL90/Include/atltheme.h b/WTL91/Include/atltheme.h similarity index 100% rename from WTL90/Include/atltheme.h rename to WTL91/Include/atltheme.h diff --git a/WTL90/Include/atluser.h b/WTL91/Include/atluser.h similarity index 100% rename from WTL90/Include/atluser.h rename to WTL91/Include/atluser.h diff --git a/WTL90/Include/atlwince.h b/WTL91/Include/atlwince.h similarity index 100% rename from WTL90/Include/atlwince.h rename to WTL91/Include/atlwince.h diff --git a/WTL90/Include/atlwinx.h b/WTL91/Include/atlwinx.h similarity index 100% rename from WTL90/Include/atlwinx.h rename to WTL91/Include/atlwinx.h diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.sln b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.sln new file mode 100644 index 0000000..8c7cee9 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.sln @@ -0,0 +1,80 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF Core Library", "DWFCore.vcxproj", "{8BECE007-1749-4300-87D8-267B613AAE6B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB Static)|Win32 = Debug (Read-Write LIB Static)|Win32 + Debug (Read-Write LIB Static)|x64 = Debug (Read-Write LIB Static)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB Static)|Win32 = Release (Read-Write LIB Static)|Win32 + Release (Read-Write LIB Static)|x64 = Release (Read-Write LIB Static)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.Build.0 = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.Build.0 = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj new file mode 100644 index 0000000..b6e1106 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj @@ -0,0 +1,2002 @@ + + + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB Static) + Win32 + + + Debug (Read-Write LIB Static) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB Static) + Win32 + + + Release (Read-Write LIB Static) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF Core Library + {8BECE007-1749-4300-87D8-267B613AAE6B} + DWF Core Library + Win32Proj + + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v100 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + DynamicLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + v120 + + + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write/$(VCVersion)/ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/ + ./obj/shared/release/read-write/$(VCVersion)/ + false + ../../../bin/x64/release/$(VCVersion)/ + ./obj/x64/shared/release/read-write/$(VCVersion)/ + false + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write-wt/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write-wt/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write-wt/$(VCVersion)/ + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write-st/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write-st/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write-st/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write-st/$(VCVersion)/ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/ + ./obj/shared/release/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/release/$(VCVersion)/ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt_ns.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt_ns.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + false + + + true + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebug + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebug + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + MinSpace + AnySuitable + true + Size + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreaded + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + X64 + + + MinSpace + AnySuitable + true + Size + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreaded + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + false + + + true + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt_ns.$(DWFCoreVersion).dll + + + true + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt_ns.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + + + + + + + + + + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + + + + + + + + + + + + + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + + + + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + + + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj.filters b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj.filters new file mode 100644 index 0000000..e818b78 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFCore/DWFCore.vcxproj.filters @@ -0,0 +1,772 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {96051ce0-1480-4475-9a03-77b65e0330e9} + + + {35b1c2fe-97be-4d68-9388-244d769c7b4b} + + + {670b39d7-66ba-4da7-9b0e-d78e61fc14d5} + + + {f2fd61ae-e5b1-4333-b94b-7b5b2d7a4e98} + + + {5be3657c-194b-4912-a4c5-9d75716665f2} + + + {38e7e75a-07af-4050-adb1-2d38a67d9c2d} + + + {3d30ebe2-864c-4bef-9e04-382cc493d112} + + + {e8c44988-b2bb-4536-b727-88d9fc2dd272} + + + {721fcc53-df46-46e1-bbcf-1a628a2e22f1} + + + {380727b0-9556-44d1-800f-206efb266c98} + + + {ad490938-2b42-432e-b4f3-b78589d544a8} + + + {55932975-1ae6-4114-a946-51696cb76001} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {5a39e348-cd69-4e6b-80d9-8b9c568c62c7} + + + {62720135-0f4d-45a6-bcfc-99cb38f0784e} + + + {10d0cc53-b79e-4bd5-86ca-b83b5c25436d} + + + {3ae7d627-91c8-45da-88ac-0658c8563d29} + + + {9a6cc8ce-01d2-4a6a-91f4-9acba916a71c} + + + {b2849ee6-b7c2-4a0f-b225-04c746933412} + + + {e985095b-85b5-41f9-85fa-0978871aaf27} + + + {73b9896f-d5a6-4430-a2cf-d4795427d6ad} + + + {8f60970f-cec6-419f-a096-ff05d33cb679} + + + {4a6cdba6-85cc-4bd6-99e6-42ca11eef8a9} + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {2de8997a-7ef5-4578-aae5-674913f37f1e} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\x86 + + + Source Files\x86 + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zip + + + Source Files\zip + + + Source Files\zip + + + Source Files\zip + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\digest + + + Source Files\digest + + + Source Files\x64 + + + Source Files\x64 + + + Source Files\expat + + + Source Files\expat + + + Source Files\expat + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\paging + + + Source Files\paging + + + Source Files\paging + + + Source Files\paging + + + Source Files\sqlite + + + Test Suite + + + Test Suite + + + Test Suite + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zip + + + Header Files\zip + + + Header Files\zip + + + Header Files\digest + + + Header Files\digest + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\sqlite + + + Test Suite + + + Test Suite + + + Test Suite + + + + + Resource Files + + + + + Header Files\win32 + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.sln b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.sln new file mode 100644 index 0000000..e4fe7dc --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.sln @@ -0,0 +1,348 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWFToolkit", "DWFToolkit.vcxproj", "{2D22C637-6219-4096-8399-EEA4BBD142AA}" + ProjectSection(ProjectDependencies) = postProject + {8BECE007-1749-4300-87D8-267B613AAE6B} = {8BECE007-1749-4300-87D8-267B613AAE6B} + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2} = {337A987F-97AE-46FF-98AF-6C6B9B81E3B2} + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C} = {9415DE9A-E01E-47C1-A159-EB1E1D4E518C} + {681750CF-B191-4A41-B92C-0F94599B121D} = {681750CF-B191-4A41-B92C-0F94599B121D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF Core Library", "..\DWFCore\DWFCore.vcxproj", "{8BECE007-1749-4300-87D8-267B613AAE6B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W2D (Whip) Toolkit", "..\WhipToolkit\WhipToolkit.vcxproj", "{681750CF-B191-4A41-B92C-0F94599B121D}" + ProjectSection(ProjectDependencies) = postProject + {8BECE007-1749-4300-87D8-267B613AAE6B} = {8BECE007-1749-4300-87D8-267B613AAE6B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF XAML (Whip) Toolkit", "..\XAML\XAML.vcxproj", "{337A987F-97AE-46FF-98AF-6C6B9B81E3B2}" + ProjectSection(ProjectDependencies) = postProject + {8BECE007-1749-4300-87D8-267B613AAE6B} = {8BECE007-1749-4300-87D8-267B613AAE6B} + {681750CF-B191-4A41-B92C-0F94599B121D} = {681750CF-B191-4A41-B92C-0F94599B121D} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W3D Toolkit", "..\W3DToolkit\W3DToolkit.vcxproj", "{9415DE9A-E01E-47C1-A159-EB1E1D4E518C}" + ProjectSection(ProjectDependencies) = postProject + {8BECE007-1749-4300-87D8-267B613AAE6B} = {8BECE007-1749-4300-87D8-267B613AAE6B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Only DLL)|Win32 = Debug (Read-Only DLL)|Win32 + Debug (Read-Only DLL)|x64 = Debug (Read-Only DLL)|x64 + Debug (Read-Only LIB)|Win32 = Debug (Read-Only LIB)|Win32 + Debug (Read-Only LIB)|x64 = Debug (Read-Only LIB)|x64 + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB Static)|Win32 = Debug (Read-Write LIB Static)|Win32 + Debug (Read-Write LIB Static)|x64 = Debug (Read-Write LIB Static)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Only DLL)|Win32 = Release (Read-Only DLL)|Win32 + Release (Read-Only DLL)|x64 = Release (Read-Only DLL)|x64 + Release (Read-Only LIB)|Win32 = Release (Read-Only LIB)|Win32 + Release (Read-Only LIB)|x64 = Release (Read-Only LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB Static)|Win32 = Release (Read-Write LIB Static)|Win32 + Release (Read-Write LIB Static)|x64 = Release (Read-Write LIB Static)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {2D22C637-6219-4096-8399-EEA4BBD142AA}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.Build.0 = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.Build.0 = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj new file mode 100644 index 0000000..10b2690 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj @@ -0,0 +1,2554 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + {2D22C637-6219-4096-8399-EEA4BBD142AA} + DWFToolkit + MakeFileProj + + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-only/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-only/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt_ns.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt_ns.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_BUILD_WRITE_CODE;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_BUILD_WRITE_CODE;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + false + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + false + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + false + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;_CRT_SECURE_NO_DEPRECATE;WIN32;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;_CRT_SECURE_NO_DEPRECATE;WIN32;WIN64;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;w3dtk_wt_ns.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt_ns.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;w3dtk_wt_ns.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt_ns.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + + + + + + + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + + + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj.filters new file mode 100644 index 0000000..bc80111 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/DWFToolkit/DWFToolkit.vcxproj.filters @@ -0,0 +1,1067 @@ + + + + + {4b7caf79-c822-45df-bd43-8bd5e0cb0bad} + + + {79d2d9cd-7051-46e8-9c1b-4ffcde21f735} + + + {bd0c0035-7a04-481d-bcac-695f11f633ac} + + + {ca60b6c8-e64a-4b28-97ea-4be26c6e3034} + + + {4dd05c63-f2ff-4b50-b741-84b34639c064} + + + {026c4aed-8570-4b21-ad19-be9a41eb0399} + + + {f74dbabd-b0c0-4c19-bffe-b2ad9b161559} + + + {f72bd082-96ce-401b-ada6-e92412714e41} + + + {699a3e67-9815-49c9-bac6-053187e47b77} + + + {ce370931-484e-41a6-8332-120f5ad9a642} + + + {8c387bf9-c8c4-43af-8d99-20c0b32d44ad} + + + {ea4be653-bbcc-467b-a0cb-0c5d5f71b14a} + + + {c6679763-aa83-4215-91c0-a7149e124e4c} + + + {f9be8833-facb-422f-acff-c7d8c3ae71fb} + + + {4ccfebe0-63b7-4455-86e4-cbd6132ed3d0} + + + {b385decb-f09e-4908-8990-b6a106735664} + + + {40d3d92d-561e-42b0-9bce-684978849aa4} + + + {83d9db5f-ec2d-4e75-a6b1-1c80d5e76d2a} + + + {6bd5aa2b-db02-4c2f-b278-9d2d5152e43f} + + + {8fddf869-1804-455f-a260-9aa4f29719e9} + + + {3c387120-5084-4faa-a113-5a728f476ef9} + + + {98a6b2f5-8ad9-488c-a915-a28fe94ba9ec} + + + {71032899-573e-47f3-bf78-f687a0b6147b} + + + {34751ba1-2e37-4f3b-a8b0-355e64da7361} + + + {aff958a9-22c4-4a95-801e-21e32b5a401f} + + + {da5f0fac-e670-4cbe-876f-c81c42dad4d2} + + + {5a5559fa-700f-4c3c-9f00-726ca3b6fd20} + + + {22bc43b5-627c-42c1-b088-4cd88b7aa2f6} + + + {3e517176-2f2f-475d-8fda-e30a0cea2a18} + + + {9b96b31d-1393-4487-8ef9-2754debaf077} + + + {8d4ccd50-6ced-4a6f-bc56-8fbd81c00f9c} + + + {76a96db8-a855-4f45-8d15-ed771883275e} + + + {67b06221-dc72-4b63-82c1-361dc83181e6} + + + {34622542-0005-4858-a43f-c71123bb7d91} + + + {cc9a61d1-1e1b-4409-a5a2-db60b7a6918a} + + + {832ae7f7-f96c-4ec0-9ee7-104a65954067} + + + {0d56dead-52f5-430c-b59e-1fc3af4f4bdc} + + + {55606671-5407-494e-ac25-d2089b148c84} + + + {9a3d91d8-b9a7-4ea3-8879-3ffeacce8856} + + + {dd2fffcc-3f1f-42ec-92bb-8aefc2bb0c32} + + + {3078b617-0157-4765-9e38-b9564362b9f7} + + + {c9304b49-fdcc-4f95-b580-279709ae0b7b} + + + {cca7d0df-5714-47df-b18c-98f466c894d6} + + + {6c9f1cf0-60c3-4030-aaee-e4bb35b28671} + + + {82d75d45-7573-495e-94d0-9d9ec6f6f4c3} + + + {eebdb472-e038-4bf6-9137-adc56864e5f3} + + + {a219499a-5015-42c4-ae18-affbd62cf4fa} + + + {3cd948d4-aea1-4c6d-bd42-5150f8a5d19c} + + + {450e0acf-e4cc-4cd7-a4fd-c4d6d99b9263} + + + {e3011b52-e85f-49f6-b407-34419ee21f5d} + + + + + Source Files + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\writer + + + Source Files\package\writer + + + Source Files\package\writer + + + Source Files\package\writer\extensions\6.01 + + + Source Files\package\writer\extensions\6.0 + + + Source Files\package\writer\extensions\6.11 + + + Source Files\package\writer\extensions\6.20 + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\publisher + + + Source Files\publisher + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\win32 + + + Source Files\publisher\plot + + + Source Files\publisher\data + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\reader + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc\reader + + + Source Files\opc\reader + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + + + Source Files\package\writer + + + Source Files\package\writer\extensions\7.10x + + + Header Files + + + Header Files + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer\extensions\6.01 + + + Header Files\package\writer\extensions\6.0 + + + Header Files\package\writer\extensions\6.11 + + + Header Files\package\writer\extensions\6.20 + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\win32 + + + Header Files\publisher\win32 + + + Header Files\publisher\plot + + + Header Files\publisher\data + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\reader + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc\reader + + + Header Files\opc\reader + + + Header Files\opc\reader + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Resource Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.sln b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.sln new file mode 100644 index 0000000..e61b35f --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W3D Toolkit", "W3DToolkit.vcxproj", "{9415DE9A-E01E-47C1-A159-EB1E1D4E518C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Only DLL)|Win32 = Debug (Read-Only DLL)|Win32 + Debug (Read-Only DLL)|x64 = Debug (Read-Only DLL)|x64 + Debug (Read-Only LIB)|Win32 = Debug (Read-Only LIB)|Win32 + Debug (Read-Only LIB)|x64 = Debug (Read-Only LIB)|x64 + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Only DLL)|Win32 = Release (Read-Only DLL)|Win32 + Release (Read-Only DLL)|x64 = Release (Read-Only DLL)|x64 + Release (Read-Only LIB)|Win32 = Release (Read-Only LIB)|Win32 + Release (Read-Only LIB)|x64 = Release (Read-Only LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj new file mode 100644 index 0000000..9d842bc --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj @@ -0,0 +1,1866 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF W3D Toolkit + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C} + DWF W3D Toolkit) + + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-only/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-only/$(VCVersion)/ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/$(VCVersion)\ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt_ns.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt_ns.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt_ns.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt_ns.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + + + + + + + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj.filters new file mode 100644 index 0000000..f4bf49e --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/W3DToolkit/W3DToolkit.vcxproj.filters @@ -0,0 +1,409 @@ + + + + + {fad20703-7916-48ba-a146-b1bf36caff8d} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {8518ba80-721b-4509-b5ab-6ea2968e438f} + + + {f436e207-675c-46ee-8d34-27a94a2d3ee0} + + + {3960ba50-6b85-4802-a666-eb39407eeaa5} + + + {2df9f4b8-5d39-46f2-9cba-0a1da0271367} + h;hpp;hxx;hm;inl + + + {79bef9f0-30c2-42d0-a2e0-d77327cefcbf} + + + {69f93c62-6e17-4051-a253-2a7c561ac3e8} + + + {cc125ac8-cde0-4679-918f-c1af8f625e80} + + + {6f892325-8ef0-42bf-ba1c-194248aa2b56} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\hoops + + + Header Files\hoops + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + + + Resources + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.sln b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.sln new file mode 100644 index 0000000..282feb1 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W2D (Whip) Toolkit", "WhipToolkit.vcxproj", "{681750CF-B191-4A41-B92C-0F94599B121D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Only DLL)|Win32 = Debug (Read-Only DLL)|Win32 + Debug (Read-Only DLL)|x64 = Debug (Read-Only DLL)|x64 + Debug (Read-Only LIB)|Win32 = Debug (Read-Only LIB)|Win32 + Debug (Read-Only LIB)|x64 = Debug (Read-Only LIB)|x64 + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Only DLL)|Win32 = Release (Read-Only DLL)|Win32 + Release (Read-Only DLL)|x64 = Release (Read-Only DLL)|x64 + Release (Read-Only LIB)|Win32 = Release (Read-Only LIB)|Win32 + Release (Read-Only LIB)|x64 = Release (Read-Only LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj new file mode 100644 index 0000000..b3a6d3f --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj @@ -0,0 +1,2117 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF W2D (Whip) Toolkit + {681750CF-B191-4A41-B92C-0F94599B121D} + DWF W2D (Whip) Toolkit + + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + DynamicLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + StaticLibrary + false + Unicode + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write/$(VCVersion)\ + false + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write/$(VCVersion)\ + false + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-only/$(VCVersion)\ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-only/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + false + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt_ns.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt_ns.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;..\..\..\..\..\..\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt_ns.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;_SECURE_SCL_DISABLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt_ns.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj.filters new file mode 100644 index 0000000..5812218 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/WhipToolkit/WhipToolkit.vcxproj.filters @@ -0,0 +1,708 @@ + + + + + {f95ba5b5-845c-4922-acc9-ec8873b9d09d} + ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe + + + {aff19361-4ea8-4803-a102-c9b25aa1adc5} + + + {4b327a1e-ca9c-4c43-9bc8-574be14f551c} + + + + + Resource Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.sln b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.sln new file mode 100644 index 0000000..6c091d1 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF XAML (Whip) Toolkit", "XAML.vcxproj", "{337A987F-97AE-46FF-98AF-6C6B9B81E3B2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj new file mode 100644 index 0000000..f2fb62b --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj @@ -0,0 +1,852 @@ + + + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF XAML (Whip) Toolkit + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2} + xaml_merged + Win32Proj + + + + DynamicLibrary + Unicode + false + v120 + + + DynamicLibrary + Unicode + false + v120 + + + DynamicLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + false + v120 + + + DynamicLibrary + Unicode + false + v120 + + + DynamicLibrary + Unicode + false + v120 + + + DynamicLibrary + Unicode + v120 + + + StaticLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + v120 + + + StaticLibrary + Unicode + false + v120 + + + StaticLibrary + Unicode + v120 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt_ns.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt_ns.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + false + Use + XAML/pch.h + $(IntDir)pch.pch + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + false + Use + XAML/pch.h + $(IntDir)pch.pch + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + /MACHINE:X64 %(AdditionalOptions) + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + true + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/shared/debug/$(VCVersion)/;%(AdditionalLibraryDirectories) + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt_ns.$(XAMLToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt_ns.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj.filters b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj.filters new file mode 100644 index 0000000..4eaa272 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 12.0/XAML/XAML.vcxproj.filters @@ -0,0 +1,515 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {4a1172f3-984b-4e8c-b781-f9f721f01265} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {86f7a8ca-7e9d-4d1d-bcc7-5f5e9d89376e} + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\win32 + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\win32 + + + + + Resource Files + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.sln b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.sln new file mode 100644 index 0000000..8c7cee9 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.sln @@ -0,0 +1,80 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF Core Library", "DWFCore.vcxproj", "{8BECE007-1749-4300-87D8-267B613AAE6B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB Static)|Win32 = Debug (Read-Write LIB Static)|Win32 + Debug (Read-Write LIB Static)|x64 = Debug (Read-Write LIB Static)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB Static)|Win32 = Release (Read-Write LIB Static)|Win32 + Release (Read-Write LIB Static)|x64 = Release (Read-Write LIB Static)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.ActiveCfg = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|Win32.Build.0 = Debug (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.ActiveCfg = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB Static)|x64.Build.0 = Debug (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.ActiveCfg = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|Win32.Build.0 = Release (Read-Write LIB Static)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.ActiveCfg = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB Static)|x64.Build.0 = Release (Read-Write LIB Static)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {8BECE007-1749-4300-87D8-267B613AAE6B}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj new file mode 100644 index 0000000..815d3ff --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj @@ -0,0 +1,2002 @@ + + + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB Static) + Win32 + + + Debug (Read-Write LIB Static) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB Static) + Win32 + + + Release (Read-Write LIB Static) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF Core Library + {8BECE007-1749-4300-87D8-267B613AAE6B} + DWF Core Library + Win32Proj + + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v100 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + DynamicLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + v140 + + + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write/$(VCVersion)/ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/ + ./obj/shared/release/read-write/$(VCVersion)/ + false + ../../../bin/x64/release/$(VCVersion)/ + ./obj/x64/shared/release/read-write/$(VCVersion)/ + false + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write-wt/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write-wt/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write-wt/$(VCVersion)/ + ../../../lib/static/debug/$(VCVersion)/ + ./obj/static/debug/read-write-st/$(VCVersion)/ + ../../../lib/x64/static/debug/$(VCVersion)/ + ./obj/x64/static/debug/read-write-st/$(VCVersion)/ + ../../../lib/static/release/$(VCVersion)/ + ./obj/static/release/read-write-st/$(VCVersion)/ + ../../../lib/x64/static/release/$(VCVersion)/ + ./obj/x64/static/release/read-write-st/$(VCVersion)/ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/ + ./obj/shared/release/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/release/$(VCVersion)/ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt_ns.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_st.$(DWFCoreVersion) + dwfcore.$(DWFCoreVersion) + dwfcore_wt_ns.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + dwfcore_wt.$(DWFCoreVersion) + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + false + + + true + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebug + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebug + true + true + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + MinSpace + AnySuitable + true + Size + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreaded + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + X64 + + + MinSpace + AnySuitable + true + Size + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + Default + false + MultiThreaded + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + 4290;%(DisableSpecificWarnings) + DWFCORE_EXPORT_API;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_st.$(DWFCoreVersion).lib + + + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + false + + + true + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + $(OutDir)$(TargetName).pdb + + + true + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + true + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt_ns.$(DWFCoreVersion).dll + + + true + + + true + true + false + + + true + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ../../../src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFCORE_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_ENABLE_MEMORY_BASE;DWFCORE_USE_DEFAULT_MEMORY_BASE_IMPL;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + Default + false + MultiThreadedDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + Default + 4290;%(DisableSpecificWarnings) + DWFCORE_STATIC;%(UndefinePreprocessorDefinitions) + + + rpcrt4.lib;%(AdditionalDependencies) + $(OutDir)dwfcore_wt_ns.$(DWFCoreVersion).dll + + + + + true + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.obj + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + + + + + + + + + + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + 4244;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + Level3 + + + + + + + + + + + + + + + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + + + + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + 4510;4512;4610;%(DisableSpecificWarnings) + + + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + TurnOffAllWarnings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + true + ..\..\..\src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj.filters b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj.filters new file mode 100644 index 0000000..e818b78 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFCore/DWFCore.vcxproj.filters @@ -0,0 +1,772 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {96051ce0-1480-4475-9a03-77b65e0330e9} + + + {35b1c2fe-97be-4d68-9388-244d769c7b4b} + + + {670b39d7-66ba-4da7-9b0e-d78e61fc14d5} + + + {f2fd61ae-e5b1-4333-b94b-7b5b2d7a4e98} + + + {5be3657c-194b-4912-a4c5-9d75716665f2} + + + {38e7e75a-07af-4050-adb1-2d38a67d9c2d} + + + {3d30ebe2-864c-4bef-9e04-382cc493d112} + + + {e8c44988-b2bb-4536-b727-88d9fc2dd272} + + + {721fcc53-df46-46e1-bbcf-1a628a2e22f1} + + + {380727b0-9556-44d1-800f-206efb266c98} + + + {ad490938-2b42-432e-b4f3-b78589d544a8} + + + {55932975-1ae6-4114-a946-51696cb76001} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {5a39e348-cd69-4e6b-80d9-8b9c568c62c7} + + + {62720135-0f4d-45a6-bcfc-99cb38f0784e} + + + {10d0cc53-b79e-4bd5-86ca-b83b5c25436d} + + + {3ae7d627-91c8-45da-88ac-0658c8563d29} + + + {9a6cc8ce-01d2-4a6a-91f4-9acba916a71c} + + + {b2849ee6-b7c2-4a0f-b225-04c746933412} + + + {e985095b-85b5-41f9-85fa-0978871aaf27} + + + {73b9896f-d5a6-4430-a2cf-d4795427d6ad} + + + {8f60970f-cec6-419f-a096-ff05d33cb679} + + + {4a6cdba6-85cc-4bd6-99e6-42ca11eef8a9} + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {2de8997a-7ef5-4578-aae5-674913f37f1e} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\ansi + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\win32 + + + Source Files\x86 + + + Source Files\x86 + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zlib + + + Source Files\zip + + + Source Files\zip + + + Source Files\zip + + + Source Files\zip + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\crypto + + + Source Files\digest + + + Source Files\digest + + + Source Files\x64 + + + Source Files\x64 + + + Source Files\expat + + + Source Files\expat + + + Source Files\expat + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\paging + + + Source Files\paging + + + Source Files\paging + + + Source Files\paging + + + Source Files\sqlite + + + Test Suite + + + Test Suite + + + Test Suite + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\win32 + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\ansi + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zlib + + + Header Files\zip + + + Header Files\zip + + + Header Files\zip + + + Header Files\digest + + + Header Files\digest + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\crypto + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\expat + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\paging + + + Header Files\sqlite + + + Test Suite + + + Test Suite + + + Test Suite + + + + + Resource Files + + + + + Header Files\win32 + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj new file mode 100644 index 0000000..d517bc3 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj @@ -0,0 +1,2554 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + {2D22C637-6219-4096-8399-EEA4BBD142AA} + DWFToolkit + MakeFileProj + + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-only/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-only/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt_ns.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk_ro.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk.$(DWFToolkitVersion) + dwftk_wt_ns.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + dwftk_wt.$(DWFToolkitVersion) + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_BUILD_WRITE_CODE;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_BUILD_WRITE_CODE;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_ro.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk.$(W2DToolkitVersion).lib;w3dtk.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + false + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + false + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_READ_ONLY;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;whiptk_ro.$(W2DToolkitVersion).lib;w3dtk_ro.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_ro.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + false + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + %(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;_CRT_SECURE_NO_DEPRECATE;WIN32;DWFTK_STATIC;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + NDEBUG;_CRT_SECURE_NO_DEPRECATE;WIN32;WIN64;DWFTK_STATIC;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + $(OutDir)dwftk_wt.$(DWFToolkitVersion).lib + false + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + Neither + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;w3dtk_wt.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;w3dtk_wt_ns.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt_ns.$(DWFToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_EXPAT;EXPAT_COMPILED_FROM_DSP;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + true + true + + + + + + + $(IntDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + CompileAsCpp + 4290;4571;%(DisableSpecificWarnings) + DWFTK_STATIC;%(UndefinePreprocessorDefinitions) + + + ..\..\src;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;w3dtk_wt_ns.$(W3DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)dwftk_wt_ns.$(DWFToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + + + + + + + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + $(IntDir)%(Filename)2.obj + $(IntDir)%(Filename)2.xdc + + + + + + + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + $(IntDir)%(Filename)3.obj + $(IntDir)%(Filename)3.xdc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + ..\..\..\src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.filters new file mode 100644 index 0000000..bc80111 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.filters @@ -0,0 +1,1067 @@ + + + + + {4b7caf79-c822-45df-bd43-8bd5e0cb0bad} + + + {79d2d9cd-7051-46e8-9c1b-4ffcde21f735} + + + {bd0c0035-7a04-481d-bcac-695f11f633ac} + + + {ca60b6c8-e64a-4b28-97ea-4be26c6e3034} + + + {4dd05c63-f2ff-4b50-b741-84b34639c064} + + + {026c4aed-8570-4b21-ad19-be9a41eb0399} + + + {f74dbabd-b0c0-4c19-bffe-b2ad9b161559} + + + {f72bd082-96ce-401b-ada6-e92412714e41} + + + {699a3e67-9815-49c9-bac6-053187e47b77} + + + {ce370931-484e-41a6-8332-120f5ad9a642} + + + {8c387bf9-c8c4-43af-8d99-20c0b32d44ad} + + + {ea4be653-bbcc-467b-a0cb-0c5d5f71b14a} + + + {c6679763-aa83-4215-91c0-a7149e124e4c} + + + {f9be8833-facb-422f-acff-c7d8c3ae71fb} + + + {4ccfebe0-63b7-4455-86e4-cbd6132ed3d0} + + + {b385decb-f09e-4908-8990-b6a106735664} + + + {40d3d92d-561e-42b0-9bce-684978849aa4} + + + {83d9db5f-ec2d-4e75-a6b1-1c80d5e76d2a} + + + {6bd5aa2b-db02-4c2f-b278-9d2d5152e43f} + + + {8fddf869-1804-455f-a260-9aa4f29719e9} + + + {3c387120-5084-4faa-a113-5a728f476ef9} + + + {98a6b2f5-8ad9-488c-a915-a28fe94ba9ec} + + + {71032899-573e-47f3-bf78-f687a0b6147b} + + + {34751ba1-2e37-4f3b-a8b0-355e64da7361} + + + {aff958a9-22c4-4a95-801e-21e32b5a401f} + + + {da5f0fac-e670-4cbe-876f-c81c42dad4d2} + + + {5a5559fa-700f-4c3c-9f00-726ca3b6fd20} + + + {22bc43b5-627c-42c1-b088-4cd88b7aa2f6} + + + {3e517176-2f2f-475d-8fda-e30a0cea2a18} + + + {9b96b31d-1393-4487-8ef9-2754debaf077} + + + {8d4ccd50-6ced-4a6f-bc56-8fbd81c00f9c} + + + {76a96db8-a855-4f45-8d15-ed771883275e} + + + {67b06221-dc72-4b63-82c1-361dc83181e6} + + + {34622542-0005-4858-a43f-c71123bb7d91} + + + {cc9a61d1-1e1b-4409-a5a2-db60b7a6918a} + + + {832ae7f7-f96c-4ec0-9ee7-104a65954067} + + + {0d56dead-52f5-430c-b59e-1fc3af4f4bdc} + + + {55606671-5407-494e-ac25-d2089b148c84} + + + {9a3d91d8-b9a7-4ea3-8879-3ffeacce8856} + + + {dd2fffcc-3f1f-42ec-92bb-8aefc2bb0c32} + + + {3078b617-0157-4765-9e38-b9564362b9f7} + + + {c9304b49-fdcc-4f95-b580-279709ae0b7b} + + + {cca7d0df-5714-47df-b18c-98f466c894d6} + + + {6c9f1cf0-60c3-4030-aaee-e4bb35b28671} + + + {82d75d45-7573-495e-94d0-9d9ec6f6f4c3} + + + {eebdb472-e038-4bf6-9137-adc56864e5f3} + + + {a219499a-5015-42c4-ae18-affbd62cf4fa} + + + {3cd948d4-aea1-4c6d-bd42-5150f8a5d19c} + + + {450e0acf-e4cc-4cd7-a4fd-c4d6d99b9263} + + + {e3011b52-e85f-49f6-b407-34419ee21f5d} + + + + + Source Files + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\reader + + + Source Files\package\writer + + + Source Files\package\writer + + + Source Files\package\writer + + + Source Files\package\writer\extensions\6.01 + + + Source Files\package\writer\extensions\6.0 + + + Source Files\package\writer\extensions\6.11 + + + Source Files\package\writer\extensions\6.20 + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\package\utility + + + Source Files\publisher + + + Source Files\publisher + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\impl + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\model + + + Source Files\publisher\win32 + + + Source Files\publisher\plot + + + Source Files\publisher\data + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\utility + + + Source Files\presentation\reader + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc + + + Source Files\opc\reader + + + Source Files\opc\reader + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\xps + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + Source Files\dwfx\reader + + + + + Source Files\package\writer + + + Source Files\package\writer\extensions\7.10x + + + Header Files + + + Header Files + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\reader + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer + + + Header Files\package\writer\extensions\6.01 + + + Header Files\package\writer\extensions\6.0 + + + Header Files\package\writer\extensions\6.11 + + + Header Files\package\writer\extensions\6.20 + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\package\utility + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\impl + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\model + + + Header Files\publisher\win32 + + + Header Files\publisher\win32 + + + Header Files\publisher\plot + + + Header Files\publisher\data + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\utility + + + Header Files\presentation\reader + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc + + + Header Files\opc\reader + + + Header Files\opc\reader + + + Header Files\opc\reader + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\xps + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Header Files\dwfx\reader + + + Resource Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.user b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/DWFToolkit/DWFToolkit.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.sln b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.sln new file mode 100644 index 0000000..e61b35f --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W3D Toolkit", "W3DToolkit.vcxproj", "{9415DE9A-E01E-47C1-A159-EB1E1D4E518C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Only DLL)|Win32 = Debug (Read-Only DLL)|Win32 + Debug (Read-Only DLL)|x64 = Debug (Read-Only DLL)|x64 + Debug (Read-Only LIB)|Win32 = Debug (Read-Only LIB)|Win32 + Debug (Read-Only LIB)|x64 = Debug (Read-Only LIB)|x64 + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Only DLL)|Win32 = Release (Read-Only DLL)|Win32 + Release (Read-Only DLL)|x64 = Release (Read-Only DLL)|x64 + Release (Read-Only LIB)|Win32 = Release (Read-Only LIB)|Win32 + Release (Read-Only LIB)|x64 = Release (Read-Only LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj new file mode 100644 index 0000000..52b7898 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj @@ -0,0 +1,1866 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF W3D Toolkit + {9415DE9A-E01E-47C1-A159-EB1E1D4E518C} + DWF W3D Toolkit) + + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-only/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-only/$(VCVersion)/ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/$(VCVersion)\ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt_ns.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk_ro.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk.$(W3DToolkitVersion) + w3dtk_wt_ns.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + w3dtk_wt.$(W3DToolkitVersion) + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_ro.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + false + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + Disabled + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;_DEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt_ns.$(W3DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src;%(AdditionalIncludeDirectories) + WIN32;WIN64;NDEBUG;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_BUILD_JPEG;DWFCORE_BUILD_ZLIB;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + false + MultiThreadedDLL + false + true + true + + + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290; 4127;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)w3dtk_wt_ns.$(W3DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + + + + + + + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + 4324;%(DisableSpecificWarnings) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + ../../../src;%(AdditionalIncludeDirectories) + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj.filters new file mode 100644 index 0000000..f4bf49e --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/W3DToolkit/W3DToolkit.vcxproj.filters @@ -0,0 +1,409 @@ + + + + + {fad20703-7916-48ba-a146-b1bf36caff8d} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {8518ba80-721b-4509-b5ab-6ea2968e438f} + + + {f436e207-675c-46ee-8d34-27a94a2d3ee0} + + + {3960ba50-6b85-4802-a666-eb39407eeaa5} + + + {2df9f4b8-5d39-46f2-9cba-0a1da0271367} + h;hpp;hxx;hm;inl + + + {79bef9f0-30c2-42d0-a2e0-d77327cefcbf} + + + {69f93c62-6e17-4051-a253-2a7c561ac3e8} + + + {cc125ac8-cde0-4679-918f-c1af8f625e80} + + + {6f892325-8ef0-42bf-ba1c-194248aa2b56} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\jpeg + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\utility + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + Source Files\hoops + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\utility + + + Header Files\hoops + + + Header Files\hoops + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + Header Files\jpeg + + + + + Resources + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.sln b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.sln new file mode 100644 index 0000000..282feb1 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.sln @@ -0,0 +1,92 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF W2D (Whip) Toolkit", "WhipToolkit.vcxproj", "{681750CF-B191-4A41-B92C-0F94599B121D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Only DLL)|Win32 = Debug (Read-Only DLL)|Win32 + Debug (Read-Only DLL)|x64 = Debug (Read-Only DLL)|x64 + Debug (Read-Only LIB)|Win32 = Debug (Read-Only LIB)|Win32 + Debug (Read-Only LIB)|x64 = Debug (Read-Only LIB)|x64 + Debug (Read-Write DLL)|Win32 = Debug (Read-Write DLL)|Win32 + Debug (Read-Write DLL)|x64 = Debug (Read-Write DLL)|x64 + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Only DLL)|Win32 = Release (Read-Only DLL)|Win32 + Release (Read-Only DLL)|x64 = Release (Read-Only DLL)|x64 + Release (Read-Only LIB)|Win32 = Release (Read-Only LIB)|Win32 + Release (Read-Only LIB)|x64 = Release (Read-Only LIB)|x64 + Release (Read-Write DLL)|Win32 = Release (Read-Write DLL)|Win32 + Release (Read-Write DLL)|x64 = Release (Read-Write DLL)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.ActiveCfg = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|Win32.Build.0 = Debug (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.ActiveCfg = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only DLL)|x64.Build.0 = Debug (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.ActiveCfg = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|Win32.Build.0 = Debug (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.ActiveCfg = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Only LIB)|x64.Build.0 = Debug (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.ActiveCfg = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|Win32.Build.0 = Debug (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.ActiveCfg = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write DLL)|x64.Build.0 = Debug (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.ActiveCfg = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|Win32.Build.0 = Release (Read-Only DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.ActiveCfg = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only DLL)|x64.Build.0 = Release (Read-Only DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.ActiveCfg = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|Win32.Build.0 = Release (Read-Only LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.ActiveCfg = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Only LIB)|x64.Build.0 = Release (Read-Only LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.ActiveCfg = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|Win32.Build.0 = Release (Read-Write DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.ActiveCfg = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write DLL)|x64.Build.0 = Release (Read-Write DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {681750CF-B191-4A41-B92C-0F94599B121D}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj new file mode 100644 index 0000000..0968769 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj @@ -0,0 +1,2117 @@ + + + + + Debug (Read-Only DLL) + Win32 + + + Debug (Read-Only DLL) + x64 + + + Debug (Read-Only LIB) + Win32 + + + Debug (Read-Only LIB) + x64 + + + Debug (Read-Write DLL) + Win32 + + + Debug (Read-Write DLL) + x64 + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Only DLL) + Win32 + + + Release (Read-Only DLL) + x64 + + + Release (Read-Only LIB) + Win32 + + + Release (Read-Only LIB) + x64 + + + Release (Read-Write DLL) + Win32 + + + Release (Read-Write DLL) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF W2D (Whip) Toolkit + {681750CF-B191-4A41-B92C-0F94599B121D} + DWF W2D (Whip) Toolkit + + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + DynamicLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + StaticLibrary + false + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write/$(VCVersion)\ + false + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write/$(VCVersion)\ + false + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-only/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-only/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-only/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-only/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)\ + ./obj/shared/debug/read-only/$(VCVersion)\ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-only/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-only/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-only/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/x64/debug/$(VCVersion)/ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)/ + false + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + false + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + false + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + false + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt_ns.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk_ro.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk.$(W2DToolkitVersion) + whiptk_wt_ns.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + whiptk_wt.$(W2DToolkitVersion) + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_ro.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\x64\shared\debug/$(VCVersion);%(AdditionalLibraryDirectories) + true + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName).pdb + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFTK_READ_ONLY;DWFCORE_BUILD_ZLIB;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + false + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_ro.$(W2DToolkitVersion).dll + ..\..\..\lib\x64\shared\release/$(VCVersion);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName).pdb + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + true + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + $(OutDir)whiptk_wt.$(W2DToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + Disabled + ..\..\..\src\;..\..\..\src\dwf;..\..\..\..\..\..\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + EnableFastChecks + false + MultiThreadedDebugDLL + true + true + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + Windows + true + true + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_CRT_SECURE_NO_DEPRECATE;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + /MACHINE:I386 %(AdditionalOptions) + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt_ns.$(W2DToolkitVersion).dll + true + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\bin\Debug/whiptool.tlb + + + MaxSpeed + AnySuitable + true + Speed + true + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFTK_EXPORT_API;DWFCORE_BUILD_ZLIB;WHIP_USE_WCHAR_STRINGS;_SECURE_SCL_DISABLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + Default + false + MultiThreadedDLL + false + false + true + false + Use + whiptk/pch.h + $(IntDir)pch.pch + $(IntDir)$(TargetName).pdb + Level4 + true + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + ..\..\..\src\;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;%(AdditionalDependencies) + $(OutDir)whiptk_wt_ns.$(W2DToolkitVersion).dll + true + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + %(IgnoreSpecificDefaultLibraries) + true + $(OutDir)$(TargetName).pdb + NotSet + true + true + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + true + ..\..\..\src; ..\..\..\src\dwf;%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + Create + Create + whiptk/pch.h + $(IntDir)pch.pch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj.filters b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj.filters new file mode 100644 index 0000000..5812218 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/WhipToolkit/WhipToolkit.vcxproj.filters @@ -0,0 +1,708 @@ + + + + + {f95ba5b5-845c-4922-acc9-ec8873b9d09d} + ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe + + + {aff19361-4ea8-4803-a102-c9b25aa1adc5} + + + {4b327a1e-ca9c-4c43-9bc8-574be14f551c} + + + + + Resource Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.sln b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.sln new file mode 100644 index 0000000..6c091d1 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DWF XAML (Whip) Toolkit", "XAML.vcxproj", "{337A987F-97AE-46FF-98AF-6C6B9B81E3B2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Read-Write LIB)|Win32 = Debug (Read-Write LIB)|Win32 + Debug (Read-Write LIB)|x64 = Debug (Read-Write LIB)|x64 + Debug (Read-Write WChar DLL)|Win32 = Debug (Read-Write WChar DLL)|Win32 + Debug (Read-Write WChar DLL)|x64 = Debug (Read-Write WChar DLL)|x64 + Debug (Read-Write WChar LIB)|Win32 = Debug (Read-Write WChar LIB)|Win32 + Debug (Read-Write WChar LIB)|x64 = Debug (Read-Write WChar LIB)|x64 + Release (Read-Write LIB)|Win32 = Release (Read-Write LIB)|Win32 + Release (Read-Write LIB)|x64 = Release (Read-Write LIB)|x64 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + Release (Read-Write WChar DLL)|Win32 = Release (Read-Write WChar DLL)|Win32 + Release (Read-Write WChar DLL)|x64 = Release (Read-Write WChar DLL)|x64 + Release (Read-Write WChar LIB)|Win32 = Release (Read-Write WChar LIB)|Win32 + Release (Read-Write WChar LIB)|x64 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.ActiveCfg = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|Win32.Build.0 = Debug (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.ActiveCfg = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write LIB)|x64.Build.0 = Debug (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.ActiveCfg = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|Win32.Build.0 = Debug (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.ActiveCfg = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar DLL)|x64.Build.0 = Debug (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.ActiveCfg = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|Win32.Build.0 = Debug (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.ActiveCfg = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Debug (Read-Write WChar LIB)|x64.Build.0 = Debug (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.ActiveCfg = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|Win32.Build.0 = Release (Read-Write LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.ActiveCfg = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write LIB)|x64.Build.0 = Release (Read-Write LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.ActiveCfg = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64.Build.0 = Release (Read-Write WChar DLL SECURE_SCL_DISABLED)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.ActiveCfg = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|Win32.Build.0 = Release (Read-Write WChar DLL)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.ActiveCfg = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar DLL)|x64.Build.0 = Release (Read-Write WChar DLL)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.ActiveCfg = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|Win32.Build.0 = Release (Read-Write WChar LIB)|Win32 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.ActiveCfg = Release (Read-Write WChar LIB)|x64 + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2}.Release (Read-Write WChar LIB)|x64.Build.0 = Release (Read-Write WChar LIB)|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj new file mode 100644 index 0000000..f7b5f46 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj @@ -0,0 +1,852 @@ + + + + + Debug (Read-Write LIB) + Win32 + + + Debug (Read-Write LIB) + x64 + + + Debug (Read-Write WChar DLL) + Win32 + + + Debug (Read-Write WChar DLL) + x64 + + + Debug (Read-Write WChar LIB) + Win32 + + + Debug (Read-Write WChar LIB) + x64 + + + Release (Read-Write LIB) + Win32 + + + Release (Read-Write LIB) + x64 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + Win32 + + + Release (Read-Write WChar DLL SECURE_SCL_DISABLED) + x64 + + + Release (Read-Write WChar DLL) + Win32 + + + Release (Read-Write WChar DLL) + x64 + + + Release (Read-Write WChar LIB) + Win32 + + + Release (Read-Write WChar LIB) + x64 + + + + DWF XAML (Whip) Toolkit + {337A987F-97AE-46FF-98AF-6C6B9B81E3B2} + xaml_merged + Win32Proj + + + + DynamicLibrary + Unicode + false + v140 + + + DynamicLibrary + Unicode + false + v140 + + + DynamicLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + false + v140 + + + DynamicLibrary + Unicode + false + v140 + + + DynamicLibrary + Unicode + false + v140 + + + DynamicLibrary + Unicode + v140 + + + StaticLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + v140 + + + StaticLibrary + Unicode + false + v140 + + + StaticLibrary + Unicode + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write/$(VCVersion)\ + ../../../lib/static/debug/$(VCVersion)\ + ./obj/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/debug/$(VCVersion)\ + ./obj/x64/static/debug/read-write-wt/$(VCVersion)\ + ../../../lib/static/release/$(VCVersion)\ + ./obj/static/release/read-write-wt/$(VCVersion)\ + ../../../lib/x64/static/release/$(VCVersion)\ + ./obj/x64/static/release/read-write-wt/$(VCVersion)\ + ../../../bin/debug/$(VCVersion)/ + ./obj/shared/debug/read-write-wt/$(VCVersion)/ + ../../../bin/x64/debug/$(VCVersion)\ + ./obj/x64/shared/debug/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)\ + ./obj/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/x64/release/$(VCVersion)\ + ./obj/x64/shared/release/read-write-wt/$(VCVersion)\ + ../../../bin/release/$(VCVersion)/\ + ./obj/shared/release/read-write-wt-ns/$(VCVersion)/\ + ../../../bin/x64/release/$(VCVersion)/\ + ./obj/x64/shared/release/read-write-wt-ns/$(VCVersion)/\ + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt_ns.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml.$(XAMLToolkitVersion) + xaml_wt_ns.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + xaml_wt.$(XAMLToolkitVersion) + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + false + Use + XAML/pch.h + $(IntDir)pch.pch + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + false + Use + XAML/pch.h + $(IntDir)pch.pch + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + /MACHINE:X64 %(AdditionalOptions) + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X86 %(AdditionalOptions) + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_STATIC;DWFTK_STATIC;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + $(OutDir)xaml_wt.$(XAMLToolkitVersion).lib + dwfcore.$(DWFCoreVersion).lib;%(IgnoreSpecificDefaultLibraries) + /MACHINE:X64 %(AdditionalOptions) + + + + + Disabled + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + true + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/shared/debug/$(VCVersion)/;%(AdditionalLibraryDirectories) + true + false + + + ../../../lib/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX86 + + + + + X64 + + + Disabled + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + false + EnableFastChecks + MultiThreadedDebugDLL + true + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/debug/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/debug/$(VCVersion)/$(TargetName).lib + MachineX64 + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt.$(DWFCoreVersion).lib;whiptk_wt.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + false + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt_ns.$(XAMLToolkitVersion).dll + ../../../lib/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/shared/release/$(VCVersion)/$(TargetName).lib + MachineX86 + true + + + + + X64 + + + ..\..\..\src;..\..\..\src\dwf;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;WIN64;DWFCORE_BUILD_ZLIB;DWFCORE_BUILD_EXPAT;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_DEPRECATE;WHIP_USE_WCHAR_STRINGS;WHIPTOOL_CLIENT;_SECURE_SCL_DISABLE;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + false + Use + XAML/pch.h + $(IntDir)pch.pch + $(OutDir)$(TargetName).pdb + Level4 + true + ProgramDatabase + Default + 4290;%(DisableSpecificWarnings) + + + dwfcore_wt_ns.$(DWFCoreVersion).lib;whiptk_wt_ns.$(W2DToolkitVersion).lib;%(AdditionalDependencies) + $(OutDir)xaml_wt_ns.$(XAMLToolkitVersion).dll + ../../../lib/x64/shared/release/$(VCVersion);%(AdditionalLibraryDirectories) + false + + + ../../../lib/x64/shared/release/$(VCVersion)/$(TargetName).lib + MachineX64 + true + + + + + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj.filters b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj.filters new file mode 100644 index 0000000..4eaa272 --- /dev/null +++ b/Whiptk770/develop/global/build/VC 14.0/XAML/XAML.vcxproj.filters @@ -0,0 +1,515 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {4a1172f3-984b-4e8c-b781-f9f721f01265} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {86f7a8ca-7e9d-4d1d-bcc7-5f5e9d89376e} + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\win32 + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files\win32 + + + + + Resource Files + + + + + + \ No newline at end of file diff --git a/Whiptk770/whiptk/ellipse.cpp b/Whiptk770/develop/global/src/dwf/whiptk/ellipse.cpp similarity index 100% rename from Whiptk770/whiptk/ellipse.cpp rename to Whiptk770/develop/global/src/dwf/whiptk/ellipse.cpp diff --git a/Whiptk770/whiptk/font_options.cpp b/Whiptk770/develop/global/src/dwf/whiptk/font_options.cpp similarity index 100% rename from Whiptk770/whiptk/font_options.cpp rename to Whiptk770/develop/global/src/dwf/whiptk/font_options.cpp diff --git a/Whiptk770/whiptk/logical_point.cpp b/Whiptk770/develop/global/src/dwf/whiptk/logical_point.cpp similarity index 100% rename from Whiptk770/whiptk/logical_point.cpp rename to Whiptk770/develop/global/src/dwf/whiptk/logical_point.cpp diff --git a/Whiptk770/whiptk/text.cpp b/Whiptk770/develop/global/src/dwf/whiptk/text.cpp similarity index 100% rename from Whiptk770/whiptk/text.cpp rename to Whiptk770/develop/global/src/dwf/whiptk/text.cpp diff --git a/Whiptk770/whiptk/transform.h b/Whiptk770/develop/global/src/dwf/whiptk/transform.h similarity index 100% rename from Whiptk770/whiptk/transform.h rename to Whiptk770/develop/global/src/dwf/whiptk/transform.h diff --git a/Whiptk770/dwfcore/win32/Core.cpp b/Whiptk770/develop/global/src/dwfcore/win32/Core.cpp similarity index 100% rename from Whiptk770/dwfcore/win32/Core.cpp rename to Whiptk770/develop/global/src/dwfcore/win32/Core.cpp diff --git a/WincmdContent/WincmdContent.cpp b/WincmdContent/WincmdContent.cpp index b9c400e..4874de0 100644 --- a/WincmdContent/WincmdContent.cpp +++ b/WincmdContent/WincmdContent.cpp @@ -27,19 +27,9 @@ BOOL APIENTRY DllMain( HANDLE hModule, return TRUE; } -char* strlcpy(char* p,const char* p2,int maxlen) -{ - if ((int)strlen(p2)>=maxlen) { - strncpy(p,p2,maxlen); - p[maxlen]=0; - } else - strcpy(p,p2); - return p; -} - int __stdcall ContentGetDetectString(char* DetectString,int maxlen) { - strlcpy(DetectString,_detectstring,maxlen); + strcpy_s(DetectString, maxlen, "EXT=\"DWF\"|EXT=\"W2D\""); return 0; } @@ -47,8 +37,8 @@ int __stdcall ContentGetSupportedField(int FieldIndex,char* FieldName,char* Unit { if (FieldIndex<0 || FieldIndex>=fieldcount) return ft_nomorefields; - strlcpy(FieldName,fieldnames[FieldIndex],maxlen-1); - strlcpy(Units,fieldunits_and_multiplechoicestrings[FieldIndex],maxlen-1); + strcpy_s(FieldName, maxlen-1, fieldnames[FieldIndex]); + strcpy_s(Units, maxlen - 1, fieldunits_and_multiplechoicestrings[FieldIndex]); return fieldtypes[FieldIndex]; } @@ -74,7 +64,7 @@ int __stdcall ContentGetValue(char* FileName,int FieldIndex,int UnitIndex,void* { CString s; s.Format("%02d.%02d", m_iDWFFile.m_tInfo.nVersion / 100, m_iDWFFile.m_tInfo.nVersion % 100); - strlcpy((char*)FieldValue,s,maxlen-1); + strcpy_s((char*)FieldValue, maxlen - 1, s); break; } case 1: // "Sections" @@ -92,7 +82,7 @@ int __stdcall ContentGetValue(char* FileName,int FieldIndex,int UnitIndex,void* } catch (CString &ee) { - strlcpy((char*)FieldValue,"Kweenie",maxlen-1); + strcpy_s((char*)FieldValue, maxlen - 1, ee); return ft_string; } // } else diff --git a/WincmdContent/filesys.vcxproj b/WincmdContent/filesys.vcxproj index e275044..3bd7825 100644 --- a/WincmdContent/filesys.vcxproj +++ b/WincmdContent/filesys.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -30,55 +22,36 @@ WincmdContent {2F492A95-A23D-45C9-BBD9-E5B9325B22C1} filesys + 8.1 - - DynamicLibrary - false - MultiByte - v120 - - - DynamicLibrary - false - MultiByte - v120 - DynamicLibrary false MultiByte - v120 + v140 DynamicLibrary false MultiByte - v120 + v140 DynamicLibrary false MultiByte - v120 + v140 DynamicLibrary false MultiByte - v120 + v140 - - - - - - - - @@ -98,24 +71,13 @@ <_ProjectFileVersion>10.0.40219.1 - .\Release\ - .\Release\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ false false - .\Debug\ - .\Debug\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ true true - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false + + + .wdx64 @@ -130,8 +92,8 @@ MaxSpeed OnlyExplicitInline - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL true @@ -173,20 +135,14 @@ - MaxSpeed - OnlyExplicitInline - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true + $(WTL);.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) MultiThreadedDLL - true Use stdafx.h $(IntDir)$(TargetName).pch - $(IntDir) - $(IntDir)vc80.pdb Level3 true @@ -195,12 +151,11 @@ 0x0807 - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wdx + SLNKDWFStaticRO.lib;w3dtk.1.7.1555.lib;%(AdditionalDependencies) true .\WincmdContent.def $(OutDir)$(TargetName).pdb - .\Release/filesys.lib + $(DWFTKPATH)\lib\x64\static\release\vc14.0;..\lib\x64\release\;$(OutDir) true @@ -219,8 +174,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) true Default MultiThreadedDebugDLL @@ -264,8 +219,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) Default MultiThreadedDebugDLL Use @@ -296,104 +251,12 @@ .\Debug/filesys.bsc - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/filesys.tlb - - - - - MaxSpeed - OnlyExplicitInline - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\Release/filesys.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0807 - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wdx - true - .\WincmdContent.def - $(OutDir)$(TargetName).pdb - .\Release/filesys.lib - MachineX86 - - - true - .\Release/filesys.bsc - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - .\Release/filesys.tlb - - - - - MaxSpeed - OnlyExplicitInline - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\Release/filesys.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0807 - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wdx - true - .\WincmdContent.def - $(OutDir)$(TargetName).pdb - .\Release/filesys.lib - - - true - .\Release/filesys.bsc - - %(PreprocessorDefinitions) %(PreprocessorDefinitions) Create Create - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - Create - Create %(PreprocessorDefinitions) %(PreprocessorDefinitions) Create @@ -402,8 +265,6 @@ %(PreprocessorDefinitions) %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) %(PreprocessorDefinitions) %(PreprocessorDefinitions) diff --git a/WincmdPacker/WincmdPacker.cpp b/WincmdPacker/WincmdPacker.cpp index f8e70eb..59a2256 100644 --- a/WincmdPacker/WincmdPacker.cpp +++ b/WincmdPacker/WincmdPacker.cpp @@ -53,7 +53,7 @@ int __stdcall ReadHeader (HANDLE hArcData, tHeaderData *HeaderData) { char drive[_MAX_DRIVE], dir[_MAX_DIR]; char fname[_MAX_FNAME], ext[_MAX_EXT]; - _splitpath( arch->m_FullName, drive, dir, fname, ext ); + _splitpath_s( arch->m_FullName, drive, dir, fname, ext ); CString s = CString(fname) + ".ascii" + ext; // Wel een geldige filenaam van maken @@ -64,7 +64,7 @@ int __stdcall ReadHeader (HANDLE hArcData, tHeaderData *HeaderData) sVer.Format("DWF v%02d_%02d", arch->m_iDWFFile.m_tInfo.nVersion / 100, arch->m_iDWFFile.m_tInfo.nVersion % 100); - strncpy(HeaderData->FileName, sVer + "\\"+s, sizeof(HeaderData->FileName)-1); + strcpy_s(HeaderData->FileName, sVer + "\\" + s); arch->m_AtPage ++; // We blijven AtAscii return 0; } @@ -89,7 +89,7 @@ int __stdcall ReadHeader (HANDLE hArcData, tHeaderData *HeaderData) for (size_t i = 0; i < strlen(strX); i++) s.Replace(strX[i], '_'); s = s + "\\" + s + (arch->AtAscii?".ascii":"") + ".W2D"; - strncpy(HeaderData->FileName, s, sizeof(HeaderData->FileName)-1); + strcpy_s(HeaderData->FileName, s); piEPlotSection->Open(false); const DWFProperty *dp; // = piEPlotSection->findProperty(DWFXML::kzAttribute_ModificationTime); @@ -101,10 +101,10 @@ int __stdcall ReadHeader (HANDLE hArcData, tHeaderData *HeaderData) CString modTime = (const wchar_t*)dp->value();// "2006-05-04T19:31:38.000+01:00" int year,month,day; int hour,minute,second; - sscanf(modTime,"%4d-%2d-%2dT%2d:%2d:%2d.", &year,&month,&day,&hour,&minute,&second); + sscanf_s(modTime,"%4d-%2d-%2dT%2d:%2d:%2d.", &year,&month,&day,&hour,&minute,&second); HeaderData->FileTime = (year - 1980) << 25 | month << 21 | day << 16 | hour << 11 | minute << 5 | second/2; // Merk op dat de ASCII afmeting niet van tevoren bekend is - HeaderData->UnpSize = HeaderData->PackSize = piEPlotSection->size(); + HeaderData->UnpSize = HeaderData->PackSize = (int)piEPlotSection->size(); } piEPlotSection->Close(); } diff --git a/WincmdPacker/WincmdPacker.vcxproj b/WincmdPacker/WincmdPacker.vcxproj index 491dbc4..a0c8290 100644 --- a/WincmdPacker/WincmdPacker.vcxproj +++ b/WincmdPacker/WincmdPacker.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -29,57 +21,38 @@ {18EC7157-E263-458C-A41C-52E9538A642F} filesys + 8.1 - - DynamicLibrary - false - MultiByte - v120 - - - DynamicLibrary - false - MultiByte - v120 - DynamicLibrary false Static MultiByte - v120 + v140 DynamicLibrary false Static MultiByte - v120 + v140 DynamicLibrary false MultiByte - v120 + v140 DynamicLibrary false MultiByte - v120 + v140 - - - - - - - - @@ -99,24 +72,13 @@ <_ProjectFileVersion>10.0.40219.1 - .\Release\ - .\Release\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ false false - .\Debug\ - .\Debug\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ true true - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false + + + .wcx64 @@ -131,8 +93,8 @@ MaxSpeed OnlyExplicitInline - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL true @@ -175,21 +137,14 @@ - MaxSpeed - OnlyExplicitInline - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true + $(WTL);.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;%(PreprocessorDefinitions) MultiThreadedDLL - true - false Use stdafx.h $(IntDir)$(TargetName).pch - $(IntDir) - $(IntDir)vc80.pdb Level3 true @@ -198,12 +153,11 @@ 0x0807 - ..\SlnkdwfImpl\ReleaseRW\SLNKDWFStaticRW.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wcx + SLNKDWFStaticRW.lib;w3dtk.1.7.1555.lib;%(AdditionalDependencies) true WincmdPacker.def $(OutDir)$(TargetName).pdb - .\Release/filesys.lib + $(DWFTKPATH)\lib\x64\static\release\vc14.0;..\lib\x64\release\;$(OutDir) true @@ -222,8 +176,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true Default MultiThreadedDebugDLL @@ -268,8 +222,8 @@ Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) Default MultiThreadedDebugDLL false @@ -301,96 +255,6 @@ .\Debug/filesys.bsc - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/filesys.tlb - - - - - MaxSpeed - OnlyExplicitInline - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - false - Use - stdafx.h - $(IntDir)$(TargetName).pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0807 - - - ..\SlnkdwfImpl\ReleaseRW\SLNKDWFStaticRW.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wcx - true - WincmdPacker.def - $(OutDir)$(TargetName).pdb - .\Release/filesys.lib - MachineX86 - - - true - .\Release/filesys.bsc - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - .\Release/filesys.tlb - - - - - MaxSpeed - OnlyExplicitInline - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;FILESYS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - false - Use - stdafx.h - $(IntDir)$(TargetName).pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - - - NDEBUG;%(PreprocessorDefinitions) - 0x0807 - - - ..\SlnkdwfImpl\ReleaseRW\SLNKDWFStaticRW.lib;%(AdditionalDependencies) - .\Release/Slnkdwf.wcx - true - WincmdPacker.def - $(OutDir)$(TargetName).pdb - .\Release/filesys.lib - - - true - .\Release/filesys.bsc - - %(PreprocessorDefinitions) @@ -399,12 +263,6 @@ Create $(IntDir)$(TargetName).pch $(IntDir)$(TargetName).pch - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - Create - Create - $(IntDir)$(TargetName).pch - $(IntDir)$(TargetName).pch %(PreprocessorDefinitions) %(PreprocessorDefinitions) Create @@ -431,16 +289,6 @@ $(IntDir) $(IntDir) $(IntDir) - $(IntDir)$(TargetName).pch - $(IntDir)$(TargetName).pch - - - - - $(IntDir) - $(IntDir) - $(IntDir) - $(IntDir) $(IntDir)$(TargetName).pch $(IntDir)$(TargetName).pch diff --git a/WincmdViewer/WINCDMDWF.vcxproj b/WincmdViewer/WINCDMDWF.vcxproj index 125b0d8..536ad7d 100644 --- a/WincmdViewer/WINCDMDWF.vcxproj +++ b/WincmdViewer/WINCDMDWF.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -9,14 +9,6 @@ Debug x64 - - Release MT - Win32 - - - Release MT - x64 - Release Win32 @@ -30,49 +22,32 @@ WincmdViewer {92F5EB69-069C-43EA-97E7-2F6507AA5873} WINCDMDWF + 8.1 - - DynamicLibrary - false - v120 - - - DynamicLibrary - false - v120 - DynamicLibrary false - v120 + v140 DynamicLibrary false - v120 + v140 DynamicLibrary MultiByte - v120 + v140 DynamicLibrary MultiByte - v120 + v140 - - - - - - - - @@ -92,32 +67,24 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(TEMP)\Slnkdwf\$(ProjectName)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ + + + .wlx64 + false /Zm118 %(AdditionalOptions) Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL false Use EditAndContinue - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) ..\SlnkDWFImpl\DebugRO\SLNKDWFStaticRO.lib;..\debug\Viewer.lib;%(AdditionalDependencies) @@ -133,15 +100,15 @@ /Zm118 %(AdditionalOptions) Disabled - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) - _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions) MultiThreadedDebugDLL false Use ProgramDatabase - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) ..\SlnkDWFImpl\DebugRO\SLNKDWFStaticRO.lib;..\debug\Viewer.lib;%(AdditionalDependencies) @@ -156,8 +123,8 @@ /Zm118 %(AdditionalOptions) - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) MultiThreadedDLL false Use @@ -165,7 +132,7 @@ - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) @@ -182,91 +149,35 @@ /Zm118 %(AdditionalOptions) - ..\Wtl81\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + $(WTL);.\CxImage\Zlib;%(AdditionalIncludeDirectories) + WIN32;%(PreprocessorDefinitions) MultiThreadedDLL - false Use - ..\Wtl81\include;%(AdditionalIncludeDirectories) + $(WTL);%(AdditionalIncludeDirectories) - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) - $(OutDir)$(ProjectName).wlx - %(AdditionalLibraryDirectories) - .\WincmdViewer.def - %(DelayLoadDLLs) - - - - - - - - - /Zm118 %(AdditionalOptions) - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - false - - - - - d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) - $(OutDir)$(ProjectName).wlx - %(AdditionalLibraryDirectories) - .\WincmdViewer.def - %(DelayLoadDLLs) - - - - - - - - - /Zm118 %(AdditionalOptions) - d:\Library\Wtl80\include;$(DWFTKPATH)\src\dwf;$(DWFTKPATH)\src\;.\CxImage\Zlib;%(AdditionalIncludeDirectories) - WIN32;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) - MultiThreadedDLL - false - - - - - d:\Library\Wtl80\include;%(AdditionalIncludeDirectories) - - - ..\SlnkdwfImpl\ReleaseRO\SLNKDWFStaticRO.lib;..\Release\Viewer.lib;%(AdditionalDependencies) - $(OutDir)$(ProjectName).wlx - %(AdditionalLibraryDirectories) - .\WincmdViewer.def + SLNKDWFStaticRO.lib;w3dtk.1.7.1555.lib;Viewer.lib;%(AdditionalDependencies) %(DelayLoadDLLs) + $(DWFTKPATH)\lib\x64\static\release\vc14.0;..\lib\x64\release\;$(OutDir) + WincmdViewer.def Create Create - Create - Create Create Create - Use - Use Use Use diff --git a/WincmdViewer/WincmdViewer.cpp b/WincmdViewer/WincmdViewer.cpp index d54dc97..9132a0b 100644 --- a/WincmdViewer/WincmdViewer.cpp +++ b/WincmdViewer/WincmdViewer.cpp @@ -61,7 +61,7 @@ HWND __stdcall ListLoad(HWND ParentWin, char* FileToLoad, int ShowFlags) void __stdcall ListGetDetectString(char* DetectString,int maxlen) { - strncpy(DetectString, "EXT=\"DWF\"|EXT=\"W2D\"|([0]=\"(\"&[1]=\"W\"&[2]=\"2\"&[3]=\"D\")", maxlen); + strcpy_s(DetectString, maxlen, "EXT=\"DWF\"|EXT=\"W2D\"|([0]=\"(\"&[1]=\"W\"&[2]=\"2\"&[3]=\"D\")"); } // Note: op termijn moeten we hier natuurlijk bij voorkeur de ingebakken bitmap gebruiken